Empfangen eingehender Verbindungen aus dem Internet - Amazon Elastic Container Service

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.

Empfangen eingehender Verbindungen aus dem Internet

Wenn Sie einen öffentlichen Dienst ausführen, müssen Sie eingehenden Datenverkehr aus dem Internet akzeptieren. Beispielsweise muss Ihre öffentliche Website eingehende HTTP-Anfragen von Browsern akzeptieren. In diesem Fall müssen andere Hosts im Internet auch eine eingehende Verbindung zum Host Ihrer Anwendung initiieren.

Ein Ansatz für dieses Problem besteht darin, Ihre Container auf Hosts zu starten, die sich in einem öffentlichen Subnetz mit einer öffentlichen IP-Adresse befinden. Wir empfehlen dies jedoch nicht für große Anwendungen. Für diese ist ein besserer Ansatz, eine skalierbare Eingabeschicht zu haben, die zwischen dem Internet und Ihrer Anwendung sitzt. Sie können für diesen Ansatz eine derAWS-Dienste, die in diesem Abschnitt als Eingabe aufgeführt sind.

Application Load Balancer

Ein Application Load Balancer funktioniert auf der Anwendungsebene. Es ist die siebte Ebene der Open Systems Interconnection (OSI) -Modells. Dadurch ist ein Application Load Balancer für öffentliche HTTP-Dienste geeignet. Wenn Sie über eine Website oder eine HTTP-REST-API verfügen, ist ein Application Load Balancer ein geeigneter Load Balancer für diese Arbeitslast. Weitere Informationen finden Sie unterWas ist ein Application Load Balancer?imBenutzerhandbuch für Application Load Balancer.


                    Ein Diagramm, das die Architektur eines Netzwerks mit einem Application Load Balancer zeigt.

Mit dieser Architektur erstellen Sie einen Application Load Balancer in einem öffentlichen Subnetz, sodass er über eine öffentliche IP-Adresse verfügt und eingehende Verbindungen aus dem Internet empfangen kann. Wenn der Application Load Balancer eine eingehende Verbindung oder insbesondere eine HTTP-Anforderung empfängt, öffnet er eine Verbindung mit der Anwendung über seine private IP-Adresse. Dann leitet es die Anforderung über die interne Verbindung weiter.

Ein Application Load Balancer bietet folgende Vorteile.

  • SSL/TLS-Beendigung — Ein Application Load Balancer kann sichere HTTPS-Kommunikation und Zertifikate für die Kommunikation mit Clients aufrechterhalten. Optional kann die SSL-Verbindung auf Load Balancer-Ebene beendet werden, so dass Sie keine Zertifikate in Ihrer eigenen Anwendung verarbeiten müssen.

  • Erweitertes Routing — Ein Application Load Balancer kann mehrere DNS-Hostnamen haben. Es verfügt auch über erweiterte Routing-Funktionen, um eingehende HTTP-Anforderungen an verschiedene Ziele basierend auf Metriken wie dem Hostnamen oder dem Pfad der Anforderung zu senden. Dies bedeutet, dass Sie einen einzelnen Application Load Balancer als Eingabe für viele verschiedene interne Dienste oder sogar Microservices auf verschiedenen Pfaden einer REST-API verwenden können.

  • gRPC Unterstützung und Websockets — Ein Application Load Balancer kann mehr als nur HTTP verarbeiten. Es kann auch gRPC - und Websocket-basierte Dienste mit HTTP/2-Unterstützung ausgleichen.

  • Sicherheit — Ein Application Load Balancer schützt Ihre Anwendung vor bösartigem Datenverkehr. Es enthält Funktionen wie HTTP-De-Sync-Abschwächungen und ist in die AWS Web Application Firewall (AWS WAF) enthalten.AWS WAFkann bösartigen Datenverkehr weiter herausfiltern, der Angriffsmuster wie SQL-Injection oder Cross-Site-Scripting enthalten könnte.

Netzwerk-Load-Balancer

Ein Network Load Balancer arbeitet auf der vierten Ebene der Open Systems Interconnection (OSI) -Modells. Es eignet sich für Nicht-HTTP-Protokolle oder Szenarien, in denen Ende-zu-Ende-Verschlüsselung erforderlich ist, aber nicht über die gleichen HTTP-spezifischen Funktionen eines Application Load Balancer verfügt. Daher eignet sich ein Network Load Balancer am besten für Anwendungen, die kein HTTP verwenden. Weitere Informationen finden Sie unterWas ist ein Network Load Balancer?imBenutzerhandbuch für Network Load Balancer.


                    Diagramm, das die Architektur eines Netzwerks mit einem Network Load Balancer zeigt.

Wenn ein Network Load Balancer als Eingabe verwendet wird, funktioniert er ähnlich wie ein Application Load Balancer. Dies liegt daran, dass es in einem öffentlichen Subnetz erstellt wurde und über eine öffentliche IP-Adresse verfügt, auf die über das Internet zugegriffen werden kann. Der Network Load Balancer öffnet dann eine Verbindung zur privaten IP-Adresse des Hosts, auf dem der Container ausgeführt wird, und sendet die Pakete von der öffentlichen Seite auf die private Seite.

Da der Network Load Balancer auf einer niedrigeren Ebene des Netzwerkstapels arbeitet, verfügt er nicht über die gleichen Features wie Application Load Balancer. Es hat jedoch die folgenden wichtigen Funktionen.

  • Ende-zu-End-Verschlüsselung — Da ein Network Load Balancer auf der vierten Ebene des OSI-Modells arbeitet, liest er den Inhalt von Paketen nicht. Dies macht es geeignet für Load Balancing-Kommunikation, die End-to-End-Verschlüsselung benötigen.

  • TLS-Verschlüsselung — Neben der Ende-zu-End-Verschlüsselung kann der Network Load Balancer auch TLS-Verbindungen beenden. Auf diese Weise müssen Ihre Backend-Anwendungen keine eigenen TLS implementieren.

  • UDP-Unterstützung — Da ein Network Load Balancer auf der vierten Ebene des OSI-Modells arbeitet, ist er für Nicht-HTTP-Workloads und Protokolle außer TCP geeignet.

Amazon API Gateway HTTP-API

Amazon API Gateway HTTP API ist ein Server weniger Ingress, der für HTTP-Anwendungen mit plötzlichen Bursts in Anforderungs-Volumes oder geringen Anforderungsvolumina geeignet ist. Weitere Informationen finden Sie unterWas ist Amazon API Gateway?imEntwicklerhandbuch von API Gateway.


                    Diagramm, das die Architektur eines Netzwerks mit API Gateway anzeigt.

Das Preismodell sowohl für den Application Load Balancer als auch für den Network Load Balancer enthalten einen Stundenpreis, damit die Load Balancer jederzeit für die Annahme eingehender Verbindungen zur Verfügung stehen. Im Gegensatz dazu wird API Gateway für jede Anforderung separat berechnet. Dies hat zur Folge, dass, wenn keine Anfragen eingehen, keine Gebühren anfallen. Bei hohen Verkehrsauslastungen kann ein Application Load Balancer oder Network Load Balancer eine größere Menge an Anforderungen zu einem günstigeren Preis pro Anforderung als API Gateway verarbeiten. Wenn Sie jedoch insgesamt eine geringe Anzahl von Anforderungen haben oder Zeiträume mit geringem Datenverkehr haben, sollte der kumulative Preis für die Verwendung des API Gateway kostengünstiger sein als die Zahlung einer stündlichen Gebühr für die Aufrechterhaltung eines Load Balancer, der nicht ausgelastet wird.

API Gateway Funktionen mit einem VPC Link, der dieAWSverwalteten Dienst, um eine Verbindung mit Hosts innerhalb des privaten Subnetzes Ihrer VPC unter Verwendung der privaten IP-Adresse herzustellen. Es kann diese privaten IP-Adressen erkennen, indem sieAWS Cloud MapService-Ermittlungsdatensätze, die von Amazon ECS Service Discovery verwaltet werden.

API Gateway unterstützt die folgenden Funktionen.

  • SSL/TLS-Beendigung

  • Routing verschiedener HTTP-Pfade zu verschiedenen Backend-Microservices

Neben den vorhergehenden Funktionen unterstützt API Gateway auch die Verwendung von benutzerdefinierten Lambda Autorizern, mit denen Sie Ihre API vor unbefugter Nutzung schützen können. Weitere Informationen finden Sie unterHinweise zum Feld: Serverlose container-basierte APIs mit Amazon ECS und Amazon API Gateway.