Verwenden von Elastic Beanstalk mit Amazon VPC - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Elastic Beanstalk mit Amazon VPC

Sie können eine Amazon Virtual Private Cloud (Amazon VPC) verwenden, um ein sicheres Netzwerk für Ihre Elastic-Beanstalk-Anwendung und verwandte AWS-Ressourcen zu erstellen. Beim Erstellen Ihrer Umgebung wählen Sie VPC, Subnetze und Sicherheitsgruppen für Ihre Anwendungs-Instances und Load Balancer aus. Sie können die VPC-Konfiguration beliebig festlegen, solange sie die folgenden Voraussetzungen erfüllt.

VPC-Anforderungen
  • Internetzugriff – Instances müssen über eine der folgenden Methoden auf das Internet zugreifen können:

    • Öffentliches Subnetz – Instances besitzen eine öffentliche IP-Adresse und verwenden für den Zugriff auf das Internet ein Internet-Gateway.

    • Privates Subnetz – Instances verwenden für den Zugriff auf das Internet ein NAT-Gerät.

    Anmerkung

    Wenn Sie in Ihrer VPC VPC-Endpunkte für die Herstellung von Verbindungen mit elasticbeanstalk und elasticbeanstalk-health konfigurieren, ist der Internetzugriff optional und nur erforderlich, wenn die Anwendung sie spezifisch benötigt. Wenn keine VPC-Endpunkte vorhanden sind, muss Ihre VPC Zugriff auf das Internet haben.

    Die Standard-VPC, die Elastic Beanstalk für Sie einrichtet, stellt einen Internetzugang bereit.

    Elastic Beanstalk unterstützt keine Proxy-Einstellungen wie HTTPS_PROXY für die Konfiguration eines Web-Proxys.

  • NTP – Instances in Ihrer Elastic Beanstalk-Umgebung verwenden das Network Time Protocol (NTP), um die Systemuhr zu synchronisieren. Wenn Instances nicht auf UDP-Port 123 kommunizieren können, ist die Uhr möglicherweise nicht synchron, wodurch Probleme mit den Elastic Beanstalk-Integritätsberichten verursacht werden. Stellen Sie sicher, dass Ihre VPC-Sicherheitsgruppen und Netzwerk-ACLs ein- und ausgehenden UDP-Datenverkehr auf Port 123 zulassen, um diese Probleme zu verhindern.

Das Repository elastic-beanstalk-samples bietet AWS CloudFormation-Vorlagen, mit denen Sie eine VPC für die Verwendung mit Ihren Elastic-Beanstalk-Umgebungen erstellen können.

So erstellen Sie Ressourcen mit einer AWS CloudFormation-Vorlage
  1. Klonen Sie das Beispiel-Repository oder laden Sie über die Links in der README-Datei eine Vorlage herunter.

  2. Öffnen Sie die AWS CloudFormation-Konsole.

  3. Wählen Sie Create stack (Stack erstellen) aus.

  4. Wählen Sie Upload a template to Amazon S3 (Vorlage auf Amazon S3 hochladen) aus.

  5. Wählen Sie Upload file (Datei hochladen) aus und laden Sie die Vorlagendatei von Ihrem lokalen Computer hoch.

  6. Klicken Sie auf Next (Weiter) und befolgen Sie die Anweisungen zum Erstellen eines Stapels mit den Ressourcen in der Vorlage.

Nach Abschluss der Stack-Erstellung werden auf der Registerkarte Outputs (Ausgaben) die VPC-ID und die Subnetz-IDs angezeigt. Verwenden Sie diese zum Konfigurieren der VPC in der neuen Netzwerkkonfigurationskategorie des Umgebungsassistenten.

Öffentliche VPC

AWS CloudFormation-Vorlagevpc-public.yaml

Einstellungen (mit Load Balancing)
  • Load balancer visibility (Load Balancer-Sichtbarkeit) – Öffentlich

  • Load balancer subnets (Load Balancer-Subnetze) – Beide öffentliche Subnetze

  • Instance public IP (Öffentliche IP der Instance) – Aktiviert

  • Instance subnets (Instance-Subnetze) – Beide öffentliche Subnetze

  • Instance security groups (Instance-Sicherheitsgruppen) – Standard-Sicherheitsgruppe hinzufügen

Einstellungen (einzelne Instance)
  • Instance subnets (Instance-Subnetze) – Eines der öffentlichen Subnetze

  • Instance security groups (Instance-Sicherheitsgruppen) – Standard-Sicherheitsgruppe hinzufügen

Ein einfaches rein öffentliches VPC-Layout umfasst mindestens ein öffentliches Subnetz, ein Internet-Gateway und eine Standardsicherheitsgruppe, die den Datenverkehr zwischen den Ressourcen in der VPC zulässt. Wenn Sie in der VPC eine Umgebung erstellen, generiert Elastic Beanstalk zusätzliche Ressourcen, die sich je nach Typ der Umgebung unterscheiden.

VPC-Ressourcen
  • Einzelne Instance – Elastic Beanstalk erstellt eine Sicherheitsgruppe für die Anwendungs-Instance, die Datenverkehr aus dem Internet auf Port 80 zulässt, und weist der Instance eine Elastic IP-Adresse zu, damit sie eine öffentliche IP-Adresse hat. Der Domänenname der Umgebung wird zur öffentlichen IP-Adresse der Instance aufgelöst.

  • Lastausgleich – Elastic Beanstalk erstellt eine Sicherheitsgruppe für den Load Balancer, der Datenverkehr aus dem Internet auf Port 80 zulässt, und eine Sicherheitsgruppe für die Anwendungs-Instances, die Datenverkehr aus der Sicherheitsgruppe für den Load Balancer zulassen. Der Domänenname der Umgebung wird zum öffentlichen Domänennamen für den Load Balancer aufgelöst.

Dies ähnelt der Art und Weise, wie Elastic Beanstalk die Netzwerke verwaltet, wenn Sie die Standard-VPC verwenden. Die Sicherheit in einem öffentlichen Subnetz hängt vom Load Balancer und von den Instance-Sicherheitsgruppen ab, die von Elastic Beanstalk erstellt wurden. Dies ist die kostengünstigste Konfiguration, da kein NAT-Gateway erforderlich ist.

Öffentliche/private VPC

AWS CloudFormation-Vorlagevpc-privatepublic.yaml

Einstellungen (mit Load Balancing)
  • Load balancer visibility (Load Balancer-Sichtbarkeit) – Öffentlich

  • Load balancer subnets (Load Balancer-Subnetze) – Beide öffentliche Subnetze

  • Instance public IP (Öffentliche IP der Instance) – Deaktiviert

  • Instance subnets (Instance-Subnetze) – Beide private Subnetze

  • Instance security groups (Instance-Sicherheitsgruppen) – Standard-Sicherheitsgruppe hinzufügen

Fügen Sie Ihrer VPC zur Erhöhung der Sicherheit private Subnetze hinzu, um ein öffentlich/privat-Layout zu erstellen. Dieses Layout erfordert einen Load Balancer und ein NAT-Gateway in den öffentlichen Subnetzen. Es bietet Ihnen die Möglichkeit, Anwendungs-Instances, Datenbanken und andere Ressourcen in privaten Subnetzen auszuführen. Instances in privaten Subnetzen können nur über den Load Balancer und das NAT-Gateway mit dem Internet kommunizieren.

Private VPC

AWS CloudFormation-Vorlagevpc-private.yaml

Einstellungen (mit Load Balancing)
  • Load balancer visibility (Load Balancer-Sichtbarkeit) – Privat

  • Load balancer subnets (Load Balancer-Subnetze) – Beide private Subnetze

  • Instance public IP (Öffentliche IP der Instance) – Deaktiviert

  • Instance subnets (Instance-Subnetze) – Beide private Subnetze

  • Instance security groups (Instance-Sicherheitsgruppen) – Standard-Sicherheitsgruppe hinzufügen

Im Fall interner Anwendungen, auf die kein Zugriff aus dem Internet möglich sein darf, können Sie alle Vorgänge in privaten Subnetzen ausführen und den Load Balancer so konfigurieren, dass er nur intern verfügbar ist. Hierzu ändern Sie den Wert für Load balancer visibility (Load Balancer-Sichtbarkeit) in Internal (Intern). Diese Vorlage erstellt eine VPC ohne öffentliche Subnetze und ohne Internet-Gateway. Verwenden Sie dieses Layout für Anwendungen, auf die der Zugriff nur über dieselbe VPC oder ein zugehöriges VPN möglich sein soll.

Ausführung einer Elastic Beanstalk-Umgebung in einer privaten VPC

Wenn Sie Ihre Elastic Beanstalk-Umgebung in einer privaten VPC erstellen, hat die Umgebung keinen Zugriff auf das Internet. Ihre Anwendung benötigt möglicherweise Zugriff auf den Elastic Beanstalk-Service oder andere Services. Ihre Umgebung könnte z. B. erweiterte Integritätsberichte verwenden. In diesem Fall senden die Umgebungs-Instances Integritätsdaten an den erweiterten Integritätsservice. Der Elastic-Beanstalk-Code auf den Umgebungs-Instances sendet Datenverkehr an andere AWS-Services und weiteren Datenverkehr an andere als nicht-AWS-Endpunkte (um beispielsweise Abhängigkeitspakete für Ihre Anwendung herunterzuladen). Im Folgenden finden Sie einige Schritte, die Sie in diesem Fall möglicherweise ausführen müssen, um sicherzustellen, dass Ihre Umgebung ordnungsgemäß funktioniert.

  • Konfigurieren von VPC-Endpunkten für Elastic Beanstalk – Elastic Beanstalk und der erweiterte Integritätsservice unterstützen VPC-Endpunkte. Diese stellen sicher, dass der Datenverkehr zu diesen Services ausschließlich innerhalb des Amazon-Netzwerks ausgeführt wird und keinen Internetzugriff erfordert. Weitere Informationen finden Sie unter Verwenden von Elastic Beanstalk mit VPC-Endpunkten.

  • Konfigurieren von VPC-Endpunkten für zusätzliche Services – Elastic-Beanstalk-Instances senden in Ihrem Namen Datenverkehr an mehrere andere AWS-Services: Amazon Simple Storage Service (Amazon S3), Amazon Simple Queue Service (Amazon SQS), AWS CloudFormation und Amazon CloudWatch Logs. Sie müssen auch für diese Services VPC-Endpunkte konfigurieren. Detaillierte Informationen zu VPC-Endpunkten einschließlich Links pro Service finden Sie unter VPC-Endpunkte im Amazon VPC-Benutzerhandbuch.

    Anmerkung

    Einige AWS-Services einschließlich Elastic Beanstalk unterstützen VPC-Endpunkte in einer begrenzten Anzahl von AWS-Regionen. Überprüfen Sie daher während der Erstellung Ihrer privaten VPC-Lösung, ob Elastic Beanstalk und die anderen hier genannten abhängigen Services VPC-Endpunkte in der von Ihnen ausgewählten AWS-Region unterstützen.

  • Bereitstellen eines privaten Docker-Image – In einer Docker-Umgebung könnte Code auf den Umgebungs-Instances versuchen, während der Erstellung der Umgebung das konfigurierte Docker-Image aus dem Internet abzurufen, und fehlschlagen. Um diesen Fehler zu vermeiden, erstellen Sie in Ihrer Umgebung ein benutzerdefiniertes Docker-Image oder verwenden ein in Amazon Elastic Container Registry (Amazon ECR) gespeichertes Docker-Image und konfigurieren einen VPC-Endpunkt für den Amazon ECR-Service.

  • Aktivieren von DNS-Namen – Elastic-Beanstalk-Code auf Umgebungs-Instances sendet an alle AWS-Services Datenverkehr unter Verwendung ihrer öffentlichen Endpunkte. Damit dieser Datenverkehr das Ziel erreicht, wählen Sie während der Konfigurierung der VPC-Schnittstellenendpunkte die Option Enable DNS name (DNS-Name aktivieren) aus. Hierdurch wird ein DNS-Eintrag in Ihrer VPC hinzugefügt, der den Endpunkt für den öffentlichen Service dem VPC-Schnittstellenendpunkt zuordnet.

    Wichtig

    Wenn Ihre VPC nicht privat ist, Zugang zum öffentlichen Internet hat und Enable DNS name (DNS-Name aktivieren) für einen VPC-Endpunkt deaktiviert ist, wird der Datenverkehr zum jeweiligen Dienst über das öffentliche Internet transportiert. Das wird wahrscheinlich nicht von Ihnen gewünscht. Sie können dieses Problem bei einer privaten VPC leicht erkennen, da dies verhindert, dass der Datenverkehr das Ziel erreicht, und Ihnen Fehler angezeigt werden. Bei einer öffentlichen VPC erhalten Sie jedoch keine Hinweise.

  • Einschluss von Anwendungsabhängigkeiten – Wenn Ihre Anwendung Abhängigkeiten wie Sprachlaufzeitpakete besitzt, versucht sie möglicherweise, diese während der Erstellung der Umgebung aus dem Internet herunterzuladen und zu installieren, und schlägt fehl. Um diesen Fehler zu vermeiden, sollten Sie alle Abhängigkeitspakete in das Quellpaket Ihrer Anwendung einschließen.

  • Verwenden einer aktuellen Plattformversion – Stellen Sie sicher, dass Ihre Umgebung eine Plattformversion verwendet, die am 24. Februar 2020 oder später veröffentlicht wurde. Sie sollten insbesondere eine Plattformversion verwenden, die mit oder nach einem der folgenden beiden Updates veröffentlicht wurde: Linux Update 2020-02-28, Windows Update 2020-02-24.

    Anmerkung

    Eine aktuelle Plattformversion ist deswegen notwendig, weil in älteren Versionen ein Problem auftrat, das verhinderte, dass mit der Option Enable DNS name (DNS-Name aktivieren) erstellte DNS-Einträge für Amazon SQS ordnungsgemäß funktionieren.