Zuweisen einer Netzwerkschnittstelle für eine Amazon ECS-Aufgabe - 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.

Zuweisen einer Netzwerkschnittstelle für eine Amazon ECS-Aufgabe

Die Aufgabenvernetzungsfeatures, die durch den Netzwerkmodus awsvpc bereitgestellt werden, geben Amazon-ECS-Aufgaben dieselben Netzwerkeigenschaften wie Amazon-EC2-Instances. Die Verwendung des awsvpc Netzwerkmodus vereinfacht Container-Netzwerke, da Sie mehr Kontrolle darüber haben, wie Ihre Anwendungen miteinander und mit anderen Diensten innerhalb Ihrer VPCs kommunizieren. Der awsvpc Netzwerkmodus bietet auch mehr Sicherheit für Ihre Container, da Sie innerhalb Ihrer Aufgaben Sicherheitsgruppen und Netzwerküberwachungstools auf einer detaillierteren Ebene verwenden können. Sie können auch andere Amazon EC2 EC2-Netzwerkfunktionen wie VPC Flow Logs verwenden, um den Verkehr zu und von Ihren Aufgaben zu überwachen. Außerdem können Container, die zur selben Aufgabe gehören, über die Schnittstelle localhostkommunizieren.

Das Task elastic network interface (ENI) ist eine vollständig verwaltete Funktion von Amazon ECS. Amazon ECS erstellt die ENI und hängt sie an die Amazon EC2 Host-Instance mit der angegebenen Sicherheitsgruppe an. Die Aufgabe sendet und empfängt Netzwerkverkehr über die ENI auf dieselbe Weise wie Amazon-EC2-Instances mit ihren primären Netzwerkschnittstellen. Jeder Aufgaben-ENI wird standardmäßig eine private IPv4-Adresse zugewiesen. Wenn Ihre VPC für den Dual-Stack-Modus aktiviert ist und Sie ein Subnetz mit einem IPv6-CIDR-Block verwenden, erhält die Aufgaben-ENI auch eine IPv6-Adresse. Jede Aufgabe kann nur eine ENI haben.

Diese ENIs sind in der Amazon EC2 EC2-Konsole für Ihr Konto sichtbar. Ihr Konto kann die ENIs nicht trennen oder ändern. Auf diese Weise wird ein versehentliches Löschen einer ENI, die der aktuell ausgeführten Aufgabe zugeordnet wird, verhindert. Sie können die ENI-Anhangsinformationen für Aufgaben in der Amazon ECS-Konsole oder bei der DescribeTasksAPI-Operation anzeigen. Wenn die Aufgabe angehalten oder der Service herunterskaliert wird, wird die Aufgaben-ENI getrennt und gelöscht.

Wenn Sie eine höhere ENI-Dichte benötigen, verwenden Sie die awsvpcTrunking Kontoeinstellungen. Amazon ECS erstellt auch eine „Trunk“ -Netzwerkschnittstelle für Ihre Container-Instance und fügt sie an. Das Stamm-Netzwerk wird vollständig von Amazon ECS verwaltet. Die Stamm-ENI wird gelöscht, wenn Sie Ihre Container-Instance beenden oder die Registrierung auf dem Amazon-ECS-Cluster aufheben. Weitere Informationen zur awsvpcTrunking Kontoeinstellung finden Sie unterVoraussetzungen.

Sie geben awsvpc im networkMode Parameter der Aufgabendefinition an. Weitere Informationen finden Sie unter Netzwerkmodus.

Wenn Sie dann eine Aufgabe ausführen oder einen Dienst erstellen, verwenden Sie den networkConfiguration Parameter, der ein oder mehrere Subnetze zum Platzieren Ihrer Aufgaben und eine oder mehrere Sicherheitsgruppen zum Anhängen an eine ENI enthält. Weitere Informationen finden Sie unter Netzwerkkonfiguration. Die Aufgaben werden auf vereinbaren Amazon-EC2-Instances in denselben Availability Zones wie solche Subnetze platziert und die angegebenen Sicherheitsgruppen werden der ENI zugeordnet, die für die Aufgabe bereitgestellt wird.

Überlegungen zu Linux

Beachten Sie Folgendes, wenn Sie das Linux-Betriebssystem verwenden.

  • Wenn Sie eine p5.48xlarge-Instance im awsvpc Modus verwenden, können Sie nicht mehr als eine Aufgabe auf der Instance ausführen.

  • Für Aufgaben und Dienste, die den awsvpc Netzwerkmodus verwenden, ist die mit dem Service verknüpfte Amazon ECS-Rolle erforderlich, um Amazon ECS die Berechtigungen zu erteilen, in Ihrem Namen Anrufe an andere AWS Dienste zu tätigen. Diese Rolle wird automatisch für Sie erstellt, wenn Sie einen Cluster erstellen oder wenn Sie einen Service in der AWS Management Console erstellen oder aktualisieren. Weitere Informationen finden Sie unter Verwendung von serviceverknüpften Rollen für Amazon ECS. Sie können die serviceverknüpfte Rolle auch mit dem folgenden AWS CLI Befehl erstellen:

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • Für Ihre Amazon EC2 Linux-Instance ist eine Version 1.15.0 oder höher des Container-Agents erforderlich, um Tasks auszuführen, die den awsvpcNetzwerkmodus verwenden. Wenn Sie das Amazon-ECS-optimierte AMI verwenden, benötigt Ihre Instance mindestens Version 1.15.0-4 des ecs-init-Pakets.

  • Amazon ECS füllt den Hostnamen der Aufgabe mit einem von Amazon bereitgestellten (internen) DNS-Hostnamen auf, wenn sowohl die Option enableDnsHostnames als auch die Option enableDnsSupport auf Ihrer VPC aktiviert sind. Wenn diese Optionen nicht aktiviert sind, ist der DNS-Hostname der Aufgabe ein zufälliger Hostname. Weitere Informationen zu den DNS-Einstellungen für eine ECS finden Sie unter Verwenden von DNS in Ihrer VPC im Amazon-VPC-Benutzerhandbuch.

  • Jede Amazon-ECS-Aufgabe, die den Netzwerkmodus awsvpc verwendet, erhält eine eigene Elastic-Network-Schnittstelle (ENI), die an die Amazon-EC2-Instance angehängt wird, die sie hostet. Es gibt ein Standardkontingent für die Anzahl der Netzwerkschnittstellen, die an eine Amazon-EC2-Linux-Instance angehängt werden können. Dabei zählt die primäre Netzwerkschnittstelle als eine Einheit. Beispiel: Standardmäßig können an eine c5.large-Instance nur bis zu drei ENIs angehängt werden. Die primäre Netzwerkschnittstelle für die Instance zählt dazu. Sie können zwei zusätzliche ENIs zu der Instance anhängen. Da jede Aufgabe, die den Netzwerkmodus awsvpc verwendet, eine ENI benötigt, können Sie nur zwei solcher Aufgaben auf diesem Instance-Typ ausführen. Weitere Informationen zu den standardmäßigen ENI-Grenzwerten für jeden Instance-Typ finden Sie unter IP-Adressen pro Netzwerkschnittstelle pro Instance-Typ im Amazon EC2 EC2-Benutzerhandbuch.

  • Amazon ECS unterstützt das Starten von Amazon-EC2-Linux-Instances mit unterstützten Instance-Typen mit erhöhter ENI-Dichte. Wenn Sie sich bei der awsvpcTrunking-Kontoeinstellung anmelden und Amazon EC2 Linux-Instances mit diesen Instance-Typen in Ihrem Cluster registrieren, haben diese Instances ein höheres ENI-Kontingent. Wenn Sie diese Instances mit diesem höheren Kontingent verwenden, können Sie mehr Aufgaben auf jeder Amazon-EC2-Linux-Instance platzieren. Um die erhöhte ENI-Dichte mit dem Trunking-Feature zu nutzen, benötigen Ihre Amazon EC2-Instances mindestens Version 1.28.1 des Container-Agenten. Wenn Sie das Amazon-ECS-optimierte AMI verwenden, benötigt Ihre Instance mindestens Version 1.28.1-2 des ecs-init-Pakets. Weitere Informationen zum Aktivieren der awsvpcTrunking-Kontoeinstellung finden Sie unter Greifen Sie mit Kontoeinstellungen auf Amazon ECS-Funktionen zu. Weitere Informationen zum ENI-Trunking finden Sie unter Zunehmende Netzwerkschnittstellen für Amazon ECS Linux-Container-Instances.

  • Beim Hosten von Aufgaben, die den awsvpc-Netzwerkmodus auf Amazon EC2 Linux-Instances verwenden, erhalten Ihre Aufgaben-ENIs keine öffentlichen IP-Adressen. Um auf das Internet zuzugreifen, müssen Aufgaben in einem privaten Subnetz gestartet werden, das für die Verwendung eines NAT-Gateways konfiguriert ist. Weitere Informationen finden Sie unter NAT-Gateways im Amazon VPC-Benutzerhandbuch. Der eingehende Netzwerkzugriff muss innerhalb einer VPC mithilfe der privaten IP-Adresse oder über einen Load Balancer innerhalb der VPC weitergeleitet werden. Aufgaben, die in öffentlichen Subnetzen gestartet werden, haben keinen Zugriff auf das Internet.

  • Amazon ECS erkennt nur die ENIs, die an Ihre Amazon-EC2-Linux-Instances angehängt wurden. Wenn Sie ENIs manuell an Ihre Instances angefügt haben, könnte Amazon ECS versuchen, eine Aufgabe einer Instance hinzuzufügen, die nicht über genügend Netzwerkadapter verfügt. Das kann zu einem Timout bei der Aufgabe führen, sodass diese in den Status der Aufhebung der Bereitstellung übergeht und dann gestoppt wird. Wir empfehlen Ihnen, keine ENIs manuell an Ihre Instances anzufügen.

  • Amazon EC2 Linux-Instances müssen mit der ecs.capability.task-eni-Fähigkeit registriert werden, um für die Platzierung von Aufgaben im Netzwerkmodus awsvpc berücksichtigt zu werden. Instances, die Version 1.15.0-4 oder höher von ecs-init ausführen, werden automatisch mit diesem Attribut registriert.

  • Die ENIs, die an Ihre Amazon EC2 Linux-Instances angefügt wurden und auch damit erstellt wurden, können nicht manuell getrennt oder über Ihr Konto geändert werden. Auf diese Weise wird ein versehentliches Löschen einer ENI, die einer aktuell ausgeführten Aufgabe zugeordnet wird, verhindert. Wenn Sie die ENIs für eine Aufgabe freigeben möchten, stoppen Sie die Aufgabe.

  • Es gilt eine Beschränkung von 16 Subnetzen und 5 Sicherheitsgruppen, die in awsVpcConfiguration angegeben werden können, wenn eine Aufgabe ausgeführt oder ein Service erstellt wird, der den awsvpc-Netzwerkmodus verwendet. Weitere Informationen finden Sie AwsVpcConfigurationin der Amazon Elastic Container Service API-Referenz.

  • Wenn eine Aufgabe mit dem Netzwerkmodus awsvpc gestartet wird, erstellt der Amazon-ECS-Containeragent einen zusätzlichen pause-Container für jede Aufgabe, bevor er die Container in der Aufgabendefinition startet. Anschließend konfiguriert es den Netzwerk-Namespace des pause Containers, indem es die amazon-ecs-cni-plugins CNI-Plugins ausführt. Dann startet der Agent die restlichen Container in der Aufgabe, sodass sie den Netzwerk-Stack des pause-Containers gemeinsam verwenden. Das bedeutet, dass alle Container in der Aufgabe über IP-Adressen der Elastic-Network-Schnittstelle angesprochen werden und miteinander über die localhost-Schnittstelle kommunizieren können.

  • Services mit Aufgaben, die denawsvpc-Netzwerkmodus verwenden, unterstützen nur Application Load Balancer und Network Load Balancer. Wenn Sie eine beliebige Zielgruppe für diese Services erstellen, müssen Sie zudem ip als Zieltyp auswählen. Verwenden Sie nicht instance. Dies liegt daran, dass Aufgaben, die den Netzwerkmodus awsvpc verwenden, einer ENI zugeordnet sind, nicht einer Amazon EC2 Linux-Instance. Weitere Informationen finden Sie unter Verwenden Sie Load Balancing, um den Amazon ECS-Serviceverkehr zu verteilen.

  • Wenn Ihre VPC aktualisiert wird, um die eingestellten DHCP-Optionen zu ändern, können Sie diese Änderungen nicht für vorhandene Aufgaben übernehmen. Starten Sie neue Aufgaben, für die diese Änderungen übernommen wurden. Überprüfen Sie, ob sie ordnungsgemäß funktionieren, und beenden Sie dann die vorhandenen Aufgaben, um diese Netzwerkkonfigurationen sicher zu ändern.

Überlegungen zu Windows

Beachten Sie Folgendes, wenn Sie das Windows-Betriebssystem verwenden:

  • Container-Instances, die das für Amazon ECS optimierte Windows Server 2016-AMI verwenden, können keine Aufgaben hosten, die den Netzwerkmodus awsvpc verwenden. Wenn Sie über einen Cluster verfügen, der Amazon-ECS-optimierte Windows Server 2016-AMIs und Windows-AMIs enthält, die den awsvpc-Netzwerkmodus unterstützen, werden Aufgaben, die den awsvpc-Netzwerkmodus verwenden werden nicht auf den Windows 2016 Server-Instances gestartet. Vielmehr werden sie auf Instances gestartet, die den awsvpc-Netzwerkmodus unterstützen.

  • Ihre Amazon EC2 Windows-Instance benötigt Version 1.57.1 oder höher des Container-Agenten, um CloudWatch Metriken für Windows-Container zu verwenden, die den awsvpc Netzwerkmodus verwenden.

  • Für Aufgaben und Dienste, die den awsvpc Netzwerkmodus verwenden, ist die mit dem Service verknüpfte Amazon ECS-Rolle erforderlich, um Amazon ECS die Berechtigungen zu erteilen, in Ihrem Namen Anrufe an andere AWS Dienste zu tätigen. Diese Rolle wird automatisch für Sie erstellt, wenn Sie einen Cluster erstellen oder wenn Sie einen Service in AWS Management Console erstellen oder aktualisieren. Weitere Informationen finden Sie unter Verwendung von serviceverknüpften Rollen für Amazon ECS. Sie können die serviceverknüpfte Rolle auch mit dem folgenden AWS CLI Befehl erstellen.

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • Für Ihre Amazon EC2 Windows-Instance ist eine Version 1.54.0 des Container-Agents oder höher erforderlich, um Tasks auszuführen, die den awsvpc-Netzwerkmodus verwenden. Wenn Sie auf der Instance ein Bootstrap ausführen, müssen Sie die Optionen konfigurieren, die für den awsvpc-Netzwerkmodus erforderlich sind. Weitere Informationen finden Sie unter Bootstrapping von Amazon ECS-Windows-Container-Instances zur Datenübergabe.

  • Amazon ECS füllt den Hostnamen der Aufgabe mit einem von Amazon bereitgestellten (internen) DNS-Hostnamen auf, wenn sowohl die Option enableDnsHostnames als auch die Option enableDnsSupport auf Ihrer VPC aktiviert sind. Wenn diese Optionen nicht aktiviert sind, ist der DNS-Hostname der Aufgabe ein zufälliger Hostname. Weitere Informationen zu den DNS-Einstellungen für eine ECS finden Sie unter Verwenden von DNS in Ihrer VPC im Amazon-VPC-Benutzerhandbuch.

  • Jede Amazon-ECS-Aufgabe, die den Netzwerkmodus awsvpc verwendet, erhält eine eigene Elastic-Network-Schnittstelle (ENI), die an die Amazon-EC2-Windows-Instance angehängt wird, die sie hostet. Es gibt ein Standardkontingent für die Anzahl der Netzwerkschnittstellen, die an eine Amazon-EC2-Windows-Instance angehängt werden können. Dabei zählt die primäre Netzwerkschnittstelle als eine Einheit. Beispiel: Standardmäßig können an eine c5.large-Instance nur bis zu drei ENIs angehängt werden. Die primäre Netzwerkschnittstelle für die Instance zählt dazu. Sie können zwei zusätzliche ENIs zu der Instance anhängen. Da jede Aufgabe, die den Netzwerkmodus awsvpc verwendet, eine ENI benötigt, können Sie nur zwei solcher Aufgaben auf diesem Instance-Typ ausführen. Weitere Informationen zu den standardmäßigen ENI-Grenzwerten für jeden Instance-Typ finden Sie unter IP-Adressen pro Netzwerkschnittstelle pro Instance-Typ im Amazon EC2 EC2-Benutzerhandbuch.

  • Beim Hosten von Aufgaben, die den awsvpc-Netzwerkmodus auf Amazon EC2 Windows-Instances verwenden, erhalten Ihre Aufgaben-ENIs keine öffentlichen IP-Adressen. Um auf das Internet zuzugreifen, starten Sie Aufgaben in einem privaten Subnetz, das für die Verwendung eines NAT-Gateways konfiguriert ist. Weitere Informationen finden Sie unter NAT-Gateways im Amazon VPC-Benutzerhandbuch. Der eingehende Netzwerkzugriff muss innerhalb der VPC mithilfe der privaten IP-Adresse oder über einen Load Balancer innerhalb der VPC weitergeleitet werden. Aufgaben, die in öffentlichen Subnetzen gestartet werden, haben keinen Zugriff auf das Internet.

  • Amazon ECS erkennt nur die ENIs, die an Ihre Amazon EC2 Windows-Instances angehängt wurden. Wenn Sie ENIs manuell an Ihre Instances angefügt haben, könnte Amazon ECS versuchen, eine Aufgabe einer Instance hinzuzufügen, die nicht über genügend Netzwerkadapter verfügt. Das kann zu einem Timout bei der Aufgabe führen, sodass diese in den Status der Aufhebung der Bereitstellung übergeht und dann gestoppt wird. Wir empfehlen Ihnen, keine ENIs manuell an Ihre Instances anzufügen.

  • Amazon EC2-Windows-Instances müssen mit der ecs.capability.task-eni-Fähigkeit registriert werden, um für die Platzierung von Aufgaben im Netzwerkmodus awsvpc berücksichtigt zu werden.

  • Sie können ENIs, die an Ihre Amazon EC2-Windows-Instances angefügt wurden und auch damit erstellt wurden, nicht manuell trennen oder ändern. Auf diese Weise wird ein versehentliches Löschen einer ENI, die der aktuell ausgeführten Aufgabe zugeordnet wird, verhindert. Wenn Sie die ENIs für eine Aufgabe freigeben möchten, stoppen Sie die Aufgabe.

  • Sie können nur bis zu 16 Subnetze und 5 Sicherheitsgruppen in awsVpcConfiguration angeben, wenn Sie Aufgaben ausführen oder Services erstellen, die den awsvpc-Netzwerkmodus verwenden. Weitere Informationen finden Sie AwsVpcConfigurationin der Amazon Elastic Container Service API-Referenz.

  • Wenn eine Aufgabe mit dem Netzwerkmodus awsvpc gestartet wird, erstellt der Amazon-ECS-Containeragent einen zusätzlichen pause-Container für jede Aufgabe, bevor er die Container in der Aufgabendefinition startet. Anschließend konfiguriert es den Netzwerk-Namespace des pause Containers, indem es die amazon-ecs-cni-plugins CNI-Plugins ausführt. Dann startet der Agent die restlichen Container in der Aufgabe, sodass sie den Netzwerk-Stack des pause-Containers gemeinsam verwenden. Das bedeutet, dass alle Container in der Aufgabe über IP-Adressen der Elastic-Network-Schnittstelle angesprochen werden und miteinander über die localhost-Schnittstelle kommunizieren können.

  • Services mit Aufgaben, die denawsvpc-Netzwerkmodus verwenden, unterstützen nur Application Load Balancer und Network Load Balancer. Wenn Sie eine beliebige Zielgruppe für diese Services erstellen, müssen Sie ip als Zieltyp auswählen, und nicht instance. Dies liegt daran, dass Aufgaben, die den Netzwerkmodus awsvpc verwenden, einer ENI zugeordnet sind, nicht einer Amazon EC2 Windows-Instance. Weitere Informationen finden Sie unter Verwenden Sie Load Balancing, um den Amazon ECS-Serviceverkehr zu verteilen.

  • Wenn Ihre VPC aktualisiert wird, um die eingestellten DHCP-Optionen zu ändern, können Sie diese Änderungen nicht für vorhandene Aufgaben übernehmen. Starten Sie neue Aufgaben, für die diese Änderungen übernommen wurden. Überprüfen Sie, ob sie ordnungsgemäß funktionieren, und beenden Sie dann die vorhandenen Aufgaben, um diese Netzwerkkonfigurationen sicher zu ändern.

  • Die folgenden Punkte werden nicht unterstützt, wenn Sie den Netzwerkmodus awsvpc in einer EC2-Windows-Konfiguration verwenden:

    • Dual-Stack-Konfiguration

    • IPv6

    • ENI Trunking

Verwenden einer VPC im Dual-Stack-Modus

Wenn Sie eine VPC im Dual-Stack-Modus verwenden, können Ihre Aufgaben über IPv4 oder IPv6 oder beides kommunizieren. IPv4- und IPv6-Adressen sind unabhängig voneinander. Daher müssen Sie Routing und Sicherheit in Ihrer VPC separat für IPv4 und IPv6 konfigurieren. Weitere Informationen zum Konfigurieren der VPC für den Dual-Stack-Modus finden Sie unter Migrieren zu IPv6 im Amazon-VPC-Benutzerhandbuch.

Wenn Sie Ihre Virtual Private Cloud (VPC) mit einem Internet-Gateway oder einem reinen Outbound-Internet-Gateway konfiguriert haben, können Sie Ihre VPC im Dual-Stack-Modus verwenden. So können Aufgaben, denen eine IPv6-Adresse zugewiesen ist, über ein Internet-Gateway oder ein reines Internet-Gateway auf das Internet zugreifen. NAT-Gateways sind optional. Weitere Informationen finden Sie unter Internet-Gateways und Internet-Gateways nur für Egress im Amazon VPC-Benutzerhandbuch.

Amazon-ECS-Aufgaben werden eine IPv6-Adresse zugewiesen, wenn die folgenden Bedingungen erfüllt sind: