View a markdown version of this page

Überlegungen zum Design Ihrer Elastic Beanstalk-Anwendungen - 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.

Überlegungen zum Design Ihrer Elastic Beanstalk-Anwendungen

Da Anwendungen, die mithilfe von AWS Cloud Ressourcen bereitgestellt werden, auf Ressourcen AWS Elastic Beanstalk ausgeführt werden, sollten Sie bei der Optimierung Ihrer Anwendungen mehrere Konfigurationsfaktoren berücksichtigen: Skalierbarkeit, Sicherheit, persistenter Speicher, Fehlertoleranz, Inhaltsbereitstellung, Softwareupdates und Patches sowie Konnektivität. Jeder dieser Aspekte wird in diesem Thema separat behandelt. Eine umfassende Liste technischer AWS Whitepapers zu Themen wie Architektur sowie Sicherheit und Wirtschaftlichkeit finden AWS Sie in den Cloud Computing-Whitepapers.

Skalierbarkeit

Wenn Sie in einer physischen Hardware-Umgebung arbeiten, können Sie im Gegensatz zu einer Cloud-Umgebung die Skalierbarkeit auf zwei Arten angehen. Entweder können Sie durch vertikale Skalierung hochskalieren oder durch horizontale Skalierung aufskalieren. Der Hochskalierungsansatz erfordert, dass Sie in leistungsstarke Hardware investieren, die die steigenden Anforderungen Ihres Unternehmens unterstützen kann. Der Aufskalierungsansatz setzt voraus, dass Sie einem verteilten Anlagemodell folgen. Daher können Ihre Hardware- und Anwendungsakquisitionen gezielter sein, Ihre Datensätze werden verbunden und Ihr Design ist serviceorientiert. Das Hochskalierungsansatz kann sehr teuer sein und es besteht weiterhin das Risiko, dass Ihr Bedarf Ihre Kapazität übersteigt. In dieser Hinsicht ist der Aufskalierungsansatz normalerweise effektiver. Wenn Sie ihn verwenden, müssen Sie jedoch in der Lage sein, den Bedarf in regelmäßigen Abständen vorherzusagen und Infrastruktur in Teilen bereitzustellen, um diesen Bedarf zu decken. Dieser Ansatz führt oftmals zu nicht genutzten Kapazitäten und erfordert eine sorgfältige Überwachung.

Durch die Migration in die Cloud können Sie Ihre Infrastruktur durch Ausnutzen der Elastizität der Cloud anpassen. Elastizität hilft, die Erfassung und Freigabe von Ressourcen zu rationalisieren. Mit ihr kann Ihre Infrastruktur rasch mit schwankendem Bedarf aufskaliert werden. Sie können mit Ihren Auto-Scaling-Einstellungen nach oben oder unten skalieren, basierend auf Metriken der Ressourcen in Ihrer Umgebung. Sie können beispielsweise Messwerte wie Serverauslastung oder Netzwerk festlegen. I/O Sie können Auto Scaling verwenden, damit Rechenkapazität automatisch hinzugefügt wird, wenn die Nutzung steigt, und dass sie entfernt wird, wenn die Nutzung sinkt. Sie können Systemkennzahlen (z. B. CPU, Arbeitsspeicher I/O, Festplatte und Netzwerk I/O) bei Amazon veröffentlichen CloudWatch. Anschließend können Sie Alarme konfigurieren, CloudWatch um Auto Scaling-Aktionen auszulösen oder Benachrichtigungen auf der Grundlage dieser Metriken zu senden. Weitere Informationen zur Konfiguration von Auto Scaling finden Sie unter Automatische Skalierung Ihrer Elastic Beanstalk-Umgebungsinstanzen.

Elastic-Beanstalk-Anwendungen sollten darüber hinaus möglichst zustandslos sein, dank lose gekoppelter, fehlertoleranter Komponenten, die bei Bedarf aufskaliert werden können. Weitere Informationen zum Entwerfen skalierbarer Anwendungsarchitekturen für AWS finden Sie unter AWS Well-Architected Framework .

Sicherheit

Security On AWS ist eine gemeinsame Verantwortung. Amazon Web Services schützt die physischen Ressourcen in Ihrer Umgebung und stellt sicher, dass die Cloud ein sicherer Ort zum Ausführen von Anwendungen ist. Sie sind für die Sicherheit von Daten in und aus Ihrer Elastic-Beanstalk-Umgebung und die Sicherheit Ihrer Anwendung verantwortlich.

Konfigurieren Sie SSL, um Informationen zu schützen, die zwischen Ihrer Anwendung und den Clients fließen. Dazu benötigen Sie ein kostenloses Zertifikat von AWS Certificate Manager (ACM). Wenn Sie bereits ein Zertifikat einer externen Zertifizierungsstelle (CA) besitzen, können Sie ACM verwenden, um dieses Zertifikat zu importieren. Andernfalls können Sie es mit dem importieren AWS CLI.

Wenn ACM in Ihrem nicht verfügbar ist AWS-Region, können Sie ein Zertifikat von einer externen Zertifizierungsstelle wie VeriSign oder Entrust erwerben. Verwenden Sie dann AWS Command Line Interface (AWS CLI), um ein Drittanbieter- oder selbstsigniertes Zertifikat und einen privaten Schlüssel auf AWS Identity and Access Management (IAM) hochzuladen. Der öffentliche Schlüssel des Zertifikats authentifiziert Ihren Server gegenüber dem Browser. Außerdem dient er als Grundlage für die Erstellung des gemeinsamen Sitzungsschlüssels, der die Daten in beide Richtungen verschlüsselt. Weitere Anweisungen zum Erstellen, Hochladen und Zuweisen eines SSL-Zertifikats zu Ihrer Umgebung finden Sie unter Konfigurieren von HTTPS für Elastic Beanstalk-Umgebung.

Wenn Sie ein SSL-Zertifikat für Ihre Umgebung konfigurieren, werden Ihre Daten zwischen dem Client und der Elastic-Load-Balancing-Lastenverteilung verschlüsselt. Standardmäßig wird die Verschlüsselung beim Load Balancer beendet und Datenverkehr zwischen dem Load Balancer und Amazon EC2-Instances ist nicht verschlüsselt.

Persistenter Speicher

Elastic Beanstalk-Anwendungen werden auf Amazon EC2-Instances ausgeführt, die keine persistenten lokalen Speicher haben. Dies gilt sowohl für Beanstalk Standard als auch für Beanstalk Cluster, in denen Amazon EC2-Instances unter einem Amazon EKS-Cluster ausgeführt werden. Wenn die Amazon-EC2-Instances beendet werden, wird das lokale Dateisystem nicht gespeichert. Neue Amazon-EC2-Instances starten mit einem Standard-Dateisystem. Wir empfehlen Ihnen, Ihre Anwendung zum Speichern von Daten in einer persistenten Datenquelle zu konfigurieren. AWS bietet eine Reihe von persistenten Speicherservices, von denen Sie Gebrauch machen können. In der folgende Tabelle sind sie aufgelistet.

Anmerkung

Elastic Beanstalk Standard erstellt einen Webapp-Benutzer, den Sie als Eigentümer von Anwendungsverzeichnissen auf EC2-Instances einrichten können. Für Amazon-Linux-2-Plattformversionen, die am 3. Februar 2022 oder danach veröffentlicht werden, weist Elastic Beanstalk dem webapp-Benutzer eine UID (Benutzer-ID) und einen gid-Wert (Gruppen-ID-Wert) von 900 für neue Umgebungen zu. Dasselbe geschieht für vorhandene Umgebungen nach einem Plattformversionsupdate. Dieser Ansatz behält eine konsistente Zugriffsberechtigung für den webapp-Benutzer auf den permanenten Dateisystemspeicher bei.

In dem unwahrscheinlichen Fall, dass ein anderer Benutzer oder Prozess bereits 900 verwendet, setzt das Betriebssystem die uid und gid des webapp-Benutzers auf einen anderen Wert zurück. Führen Sie den Linux-Befehl id webapp auf Ihren EC2-Instances aus, um die uid- und gid-Werte zu überprüfen, die dem webapp-Benutzer zugewiesen sind.

Fehlertoleranz

In der Regel sollten Sie pessimistisch bei der Entwicklung einer Architektur für die Cloud sein. Nutzen Sie die Elastizität, die dadurch ermöglicht wird. Berücksichtigen Sie beim Design, der Implementierung und Bereitstellung immer eine automatische Wiederherstellung nach einem Ausfall. Verwenden Sie mehrere Availability Zones für Ihre Rechen- und Speicherressourcen. Availability Zonen basieren auf dem gleichen Konzept wie logische Rechenzentren. Verwenden Sie Amazon CloudWatch , um mehr Einblick in den Zustand Ihrer Elastic Beanstalk-Anwendung zu erhalten und im Falle eines Hardwareausfalls oder einer Leistungsverschlechterung geeignete Maßnahmen zu ergreifen. Konfigurieren Sie mit Beanstalk Standard Ihre Auto Scaling-Einstellungen, um Ihre Flotte von Amazon EC2-Instances so zu verwalten, dass fehlerhafte Instances durch neue ersetzt werden. Mit Beanstalk Cluster plant Amazon EKS Ihre Workloads von fehlerhaften Knoten weg und ersetzt sie automatisch. Wenn Sie Amazon RDS verwenden, richten Sie den Aufbewahrungszeitraum für Backups ein, damit Amazon RDS automatisch Backups erstellen kann.

Bereitstellung von Inhalten

Wenn Benutzer eine Verbindung mit Ihrer Website herstellen, werden ihre Anforderungen über eine Reihe einzelner Netzwerke geleitet. Daher kann es sein, dass Anwender eine schlechtere Leistung durch hohe Latenz bemerken. Amazon CloudFront kann Ihnen helfen, Latenzprobleme zu beheben, indem es Ihre Webinhalte wie Bilder und Videos über ein Netzwerk von Edge-Standorten auf der ganzen Welt verteilt. Die Anfragen der Nutzer werden an den nächstgelegenen Edge-Standort weitergeleitet, sodass Inhalte mit der bestmöglichen Leistung bereitgestellt werden. CloudFront arbeitet nahtlos mit Amazon S3 zusammen, das die endgültigen Originalversionen Ihrer Dateien dauerhaft speichert. Weitere Informationen zu Amazon CloudFront finden Sie im Amazon CloudFront Developer Guide.

Software-Aktualisierungen und Patches

Elastic Beanstalk Standard veröffentlicht regelmäßig Plattform-Updates, um Fixes, Software-Updates und neue Funktionen bereitzustellen. Elastic Beanstalk bietet mehrere Optionen zur Handhabung von Plattformupdates. Mit verwalteten Plattformupdates wird Ihre Umgebung während eines geplanten Wartungsfensters automatisch auf die neueste Version einer Plattform aktualisiert, während Ihre Anwendung in Betrieb bleibt. In Umgebungen, die am 25. November 2019 oder später mit der Elastic-Beanstalk-Konsole erstellt wurden, werden verwaltete Updates standardmäßig aktiviert (sofern möglich). Sie können Updates auch manuell mit der Elastic Beanstalk-Konsole oder der EB CLI starten.

Elastic Beanstalk Cluster aktualisiert automatisch Amazon EKS-Cluster und Kubernetes-Add-Ons, die in diesen Clustern ausgeführt werden, um Fixes, Software-Updates und neue Funktionen bereitzustellen.

Konnektivität

Elastic Beanstalk muss eine Verbindung zu den Instances in Ihrer Umgebung herstellen können, um Bereitstellungen abzuschließen. Wenn Sie eine Elastic Beanstalk-Anwendung in einer Amazon VPC bereitstellen, hängt die Konfiguration für die Konnektivität, die Sie erstellen, vom Typ der Amazon VPC-Umgebung ab, die Sie erstellen:

  • Für Standard-Single-Instance-Umgebungen ist keine zusätzliche Konfiguration erforderlich. Der Grund hierfür ist, dass Elastic Beanstalk jeder Amazon-EC2-Instance einer öffentliche Elastic-IP-Adresse zuweist, über die die Instance direkt mit dem Internet kommunizieren kann.

  • Für skalierbare Umgebungen mit Lastausgleich in einer Amazon VPC mit öffentlichen und privaten Subnetzen müssen Sie die folgenden Schritte ausführen:

    • Erstellen Sie eine Lastenverteilung im öffentlichen Subnetz, um den eingehenden Datenverkehr des Internets an die Amazon-EC2-Instances weiterzuleiten.

    • Erstellen Sie ein NAT-Gerät (Network Address Translation), um ausgehenden Datenverkehr von den Amazon-EC2-Instances in privaten Subnetzen in das Internet weiterzuleiten.

    • Erstellen Sie Routing-Regeln für ein- und ausgehenden Datenverkehr für die Amazon EC2-Instances im privaten Subnetz.

    • Wenn Sie eine NAT-Instance verwenden, konfigurieren Sie die Sicherheitsgruppen für die NAT-Instance und Amazon-EC2-Instances, um Internet-Kommunikation zu ermöglichen.

  • Für eine skalierbare Umgebung mit Lastenverteilung in einer Amazon VPC mit einem öffentlichen Subnetz ist keine zusätzliche Konfiguration erforderlich. Dies liegt daran, dass Ihre Amazon-EC2-Instances in dieser Umgebung mit einer öffentlichen IP-Adresse konfiguriert sind, über die die Instances mit dem Internet kommunizieren können.

Weitere Informationen zum Verwenden von Elastic Beanstalk mit Amazon VPC finden Sie unter Verwenden von Elastic Beanstalk mit Amazon VPC.