Direkt zum Inhalt

Wie behebe ich die Fehlermeldung „failed to communicate“, die ich erhalte, wenn meine EC2-Instances nicht mit Elastic Beanstalk kommunizieren können?

Lesedauer: 4 Minute
0

Wenn ich versuche, eine AWS Elastic Beanstalk-Umgebung zu erstellen, erhalte ich die Fehlermeldung „failed to communicate“.

Kurzbeschreibung

Du musst deine Amazon Elastic Compute Cloud (Amazon EC2)-Instances so konfigurieren, dass sie ausgehende Verbindungen zu Elastic Beanstalk und anderen Service-Endpunkten initiieren.

Wenn du versuchst, eine Elastic Beanstalk-Umgebung ohne ausgehende Verbindung zu erstellen, erhältst du die folgende Fehlermeldung:

„The EC2 instances failed to communicate with AWS Elastic Beanstalk, either because of configuration problems with the VPC or a failed EC2 instance. Check your VPC configuration and try launching the environment again.“

Um diesen Fehler zu beheben, vergewissere dich, dass du deine EC2-Instances so konfiguriert hast, dass sie ausgehende Verbindungen über einen der folgenden Endpunkte initiieren:

Lösung

Für in einem öffentlichen Subnetz konfigurierte EC2-Instances

Wenn deine Instances das Internet nicht erreichen können, überprüfe, ob du dein Internet-Gateway an die VPC angehängt hast. Überprüfe außerdem, ob du deine Routing-Tabelle so konfiguriert hast, dass sie eine Route für 0.0.0.0/0 aufweist, die auf das Internet-Gateway verweist.

Stelle sicher, dass du deine öffentlichen Subnetze mit der korrekten Routing-Tabelle verknüpft hast, die über diese Standardroute verfügt.

Du musst deine Instances so konfigurieren, dass sie über ausgehenden HTTPS- (443) und HTTP-Zugriff (80) verfügen, um mit AWS-Services kommunizieren und Pakete herunterladen zu können. Stelle sicher, dass deine Sicherheitsgruppen ausgehenden Datenverkehr auf den Ports an 0.0.0.0/0 zulassen. Für eingehenden Datenverkehr musst du zulassen, dass dein Load Balancer Instances auf den Anwendungsports erreicht.

Wenn du benutzerdefinierte Netzwerk-Zugriffssteuerungslisten (Netzwerk-ACLs) verwendest, stelle sicher, dass du ausgehenden Datenverkehr auf den Ports 80 und 443 zulässt und dass eingehender Rückverkehr auf kurzlebigen Ports (1024-65535) zulässig ist. Es empfiehlt sich, die Standard-Netzwerk-ACL zu verwenden, da sie sämtlichen Datenverkehr zulässt.

Für in einem privaten Subnetz konfigurierte EC2-Instances

Du musst dein NAT-Gateway in einem öffentlichen Subnetz mit einer angehängten Elastic IP-Adresse bereitstellen. Stelle sicher, dass du in der Routing-Tabelle des privaten Subnetzes die Route 0.0.0.0/0 auf das NAT-Gateway und im öffentlichen Subnetz (in dem sich das NAT-Gateway befindet) die Route 0.0.0.0/0 auf das Internet-Gateway verweisen lässt. Weitere Informationen findest du unter Troubleshoot NAT gateways (Problembehandlung bei NAT-Gateways).

Wenn du fehlende oder falsche Routen hast, können Verbindungsfehler auftreten. Um dieses Problem zu beheben, vergewissere dich, dass deine privaten Subnetze 0.0.0.0/0-Datenverkehr an das NAT-Gateway weiterleiten und die Route für das öffentliche Subnetz des NAT-Gateways 0.0.0.0/0-Datenverkehr an das Internet-Gateway weiterleitet.

Du musst ausgehenden Zugriff auf den Ports 80 und 443 für deine privaten Instances konfigurieren, um AWS-Services zu erreichen und Pakete herunterzuladen. Wenn du eine NAT-Instance anstelle eines NAT-Gateways verwendest, stelle sicher, dass du die Sicherheitsgruppe der NAT-Instance so konfiguriert hast, dass sie eingehenden Datenverkehr aus privaten Subnetzen und ausgehenden Datenverkehr zum Internet zulässt.

Instances können AWS-Service-Endpunkte ohne korrekte DNS-Konfiguration nicht auflösen, selbst wenn das Routing korrekt ist. Um dieses Problem zu beheben, aktiviere DNS-Auflösung und DNS-Hostnamen.

Für EC2-Instances, die über VPC-Endpunkte konfiguriert wurden

Stelle sicher, dass du die folgenden VPC-Endpunkte einrichtest, um deine Umgebung korrekt zu starten:

  • Amazon Simple Queue Service (Amazon SQS)
  • AWS CloudFormation
  • Elastic Beanstalk (elasticbeanstalk.region.amazonaws.com)
  • Elastic Beanstalk Health (elasticbeanstalk-health.region.amazonaws.com)
  • Amazon Simple Storage Service (Amazon S3) Gateway-Endpunkt

Hinweis: Wenn deine Umgebung mit anderen AWS-Services interagieren muss, erstelle die VPC-Endpunkte für diese Dienste.

VPC-Endpunkte müssen über Sicherheitsgruppen verfügen, die HTTPS (443)-Datenverkehr aus den Subnetzen deiner Instance zulassen. Stelle sicher, dass du eine Sicherheitsgruppe für VPC-Endpunkte erstellst, mit Regeln für eingehenden Datenverkehr, die Port 443 aus deinen privaten Subnetz-CIDR-Blöcken oder Instance-Sicherheitsgruppen zulassen.

Aktiviere privates DNS auf Schnittstellenendpunkten und stelle sicher, dass du DNS-Auflösung und DNS-Hostnamen für deine VPC aktiviert hast.

Weitere Informationen

Warum kann ich NAT nicht verwenden, um meine EC2-Instance in einem privaten Subnetz mit dem Internet zu verbinden?

AWS OFFICIALAktualisiert vor 7 Monaten