web-dev-qa-db-fra.com

Amazon ELB pour les instances EC2 dans un sous-réseau privé dans VPC

J'utilise Amazon EC2 et je souhaite placer un ELB (équilibreur de charge) Internet vers 2 instances sur un sous-réseau privé. J'utilise VPC avec des sous-réseaux publics et privés.

  • Si je viens d'ajouter le sous-réseau privé à l'ELB, il n'obtiendra aucune connexion.
  • Si j'attache les deux sous-réseaux à l'ELB, il pourra accéder aux instances, mais il y aura souvent des délais d'expiration. (Voir capture d'écran 1)
  • Si je me connecte uniquement à un sous-réseau public, alors mon instance liée à ELB obtient OutOfService car je n'ai aucune instance dans le sous-réseau public, le nombre d'instances indique 0. (voir la capture d'écran 2)

Capture d'écran 1: Les deux sous-réseaux connectés Both subnets attached

Capture d'écran 2: Seul sous-réseau public connecté Only public subnet attached

Ma question est en fait une extension de cette question . Après avoir suivi toutes les 6 étapes mentionnées dans la réponse acceptée, je suis toujours en train d'être frappé, mon instance attachée à ELB obtient OutOfService. J'ai même essayé d'autoriser les ports dans les groupes de sécurité pour les instances EC2 et ELB, mais cela n'a pas aidé. 

S'il vous plaît, aidez-moi, je me casse la tête avec ça. 

40
manish_s

L’autre SO question à laquelle vous avez fait référence est exacte. Double/Triple vérifier les points suivants

  • Vous devez attacher uniquement des sous-réseaux publics à votre ELB, en vous assurant que les zones de disponibilité de ces sous-réseaux sont alignées sur les zones de disponibilité des sous-réseaux privés dans lesquels se trouvent vos instances. 
  • Assurez-vous que le groupe de sécurité de vos instances autorise l'accès à partir du groupe de sécurité de votre équilibreur de charge.
  • Assurez-vous que votre bilan de santé fonctionne localement sur l'instance. Par exemple, si votre vérification de l'état de santé dans l'ELB est HTTP:8080/health_check, vous pouvez utiliser curl x.x.x.x:8080/health_check (où x.x.x.x est l'adresse IP privée de l'instance) et obtenir un code de réponse de 200. 
  • La table de routage de sous-réseau public devrait acheminer 0.0.0.0/0 vers la passerelle Internet connectée à votre VPC.
  • La table de routage de sous-réseau privé doit router 0.0.0.0/0 vers une instance ou une passerelle NAT dans un sous-réseau public
66
Ben Whaley

L'autre SO question m'a également aidé. Pour moi, je ne cessais d'oublier que je devais installer un logiciel sur un serveur (c'est-à-dire Apache) et si vous ne créez pas un NAT GW ou une autre méthode pour permettre l'installation d'un logiciel, cela échouera. Si vous voulez essayer un mode automatisé sans trop de soucis, vous pouvez essayer un script:

https://github.com/jouellnyc/AWS/tree/master/create_aws_vpc3

Notez qu'il y a déjà beaucoup de bonnes documentations et discussions mais:

Les codes HTTP que j'ai reçus de l'ELB:

  • 504 - Probablement des groupes de sécurité - autorisent l'accès au port 80 des instances
  • 503 - Probablement une mauvaise configuration de groupe cible
  • 502 - Probablement Apache/Server n’exécute pas b/c il n’est pas installé car il n’existe pas de méthode ou de méthode pour installer un logiciel.
0
jouell