Mon coéquipier et moi venons de mettre en œuvre ELB dans un VPC avec deux sous-réseaux privés dans différentes zones de disponibilité. La raison pour laquelle vous obtenez des délais d'attente est que pour chaque sous-réseau que vous ajoutez à l'équilibreur de charge, il obtient une adresse IP externe. (essayez 'dig elb-dns-name-here' et vous verrez plusieurs adresses IP). Si l'une de ces adresses IP correspond à un sous-réseau privé, le délai d'attente est dépassé. L'adresse IP qui correspond à votre sous-réseau public fonctionnera. Comme le DNS peut vous donner n'importe laquelle des adresses IP, parfois cela fonctionne, parfois il y a un délai d'attente.
Après quelques échanges avec amazon, nous avons découvert que l'ELB ne devait être placé que dans les sous-réseaux "publics", c'est-à-dire les sous-réseaux qui ont une route vers la passerelle Internet. Nous voulions garder nos serveurs web dans nos sous-réseaux privés mais permettre à l'ELB de communiquer avec eux. Pour résoudre ce problème, nous avons dû nous assurer que nous avions un sous-réseau public correspondant à chaque zone de disponibilité dans laquelle nous avions des sous-réseaux privés. Nous avons ensuite ajouté à l'ELB, les sous-réseaux publics pour chaque zone de disponibilité.
Au début, cela ne semblait pas fonctionner, mais après avoir tout essayé, nous avons recréé l'ELB et tout a fonctionné comme prévu. Je pense qu'il s'agit d'un bogue, ou que l'ELB était simplement dans un état bizarre à cause de tant de changements.
Voici plus ou moins ce que nous avons fait :
- WebServer-1 est exécuté dans PrivateSubnet-1 dans la zone de disponibilité us-east-1b avec un groupe de sécurité appelé web-server.
- WebServer-2 est exécuté dans PrivateSubnet-2 dans la zone de disponibilité us-east-1c avec un groupe de sécurité appelé web-server.
- Création d'un sous-réseau public dans la zone us-east-1b, nous l'appellerons PublicSubnet-1. Nous avons veillé à associer la table de routage qui comprend la route vers la passerelle Internet (ig-xxxxx) à ce nouveau sous-réseau. (Si vous avez utilisé l'assistant pour créer un VPC public/privé, cette route existe déjà).
- Création d'un sous-réseau public dans la zone us-east-1c, nous l'appellerons PublicSubnet-2. Nous avons veillé à associer à ce nouveau sous-réseau la table de routage qui comprend la route vers la passerelle Internet (ig-xxxxx). (Si vous avez utilisé l'assistant pour créer un VPC public/privé, cette route existe déjà).
- Création d'une nouvelle ELB, en y ajoutant PublicSubnet-1 et PublicSubnet-2 (pas le PrivateSubnet-X). Choisissez également les instances à exécuter dans l'ELB, dans ce cas WebServer-1 et WebServer-2. Assurez-vous d'assigner un groupe de sécurité qui autorise les ports entrants 80 et 443. Appelons ce groupe elb-group.
- Dans le groupe web-server, autorisez le trafic des ports 80 et 443 du groupe elb.
J'espère que cela vous aidera !