Erhöhung der Netzwerkschnittstellen für Linux-Container-Instances von Amazon ECS - 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.

Erhöhung der Netzwerkschnittstellen für Linux-Container-Instances von Amazon ECS

Anmerkung

Dieses Feature ist nicht auf Fargate verfügbar.

Jede Aufgabe, die den awsvpc-Netzwerkmodus verwendet, erhält eine eigene Elastic-Network-Schnittstelle (ENI), die an die Container-Instance angehängt wird, die sie hostet. Es gibt ein Standardlimit für die Anzahl der Netzwerkschnittstellen, die an eine EC2 Amazon-Instance angehängt werden können, und die primäre Netzwerkschnittstelle zählt als eine. Beispielsweise können einer c5.large Instance standardmäßig bis zu drei ENIs zugeordnet sein. Die primäre Netzwerkschnittstelle für die Instance zählt als eine, sodass Sie der Instance zwei ENIs weitere hinzufügen können. 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.

Amazon ECS unterstützt das Starten von Container-Instances mit erhöhter ENI Dichte unter Verwendung unterstützter EC2 Amazon-Instance-Typen. Wenn Sie diese Instance-Typen verwenden und die awsvpcTrunking Kontoeinstellungen aktivieren, ENIs sind weitere für neu gestartete Container-Instances verfügbar. Diese Konfiguration gibt Ihnen die Möglichkeit, mehrere Aufgaben auf den einzelnen Container-Instances zu platzieren. Informationen zum Aktivieren des Features mithilfe der Konsole finden Sie unter Ändern der Amazon-ECS-Kontoeinstellungen. Informationen zur AWS CLI Aktivierung der Funktion finden Sie unterVerwaltung der Amazon ECS-Kontoeinstellungen mit dem AWS CLI.

Beispielsweise hat eine c5.large-Instance mit awsvpcTrunking ein erhöhtes ENI-Limit von zwölf. Die Container-Instance verfügt über die primäre Netzwerkschnittstelle und Amazon ECS erstellt und fügt eine "Stamm"-Netzwerkschnittstelle an die Container-Instance an. Mit dieser Konfiguration können Sie also zehn Aufgaben anstelle der aktuellen zwei Aufgaben auf der Container-Instance starten.

Die Stamm-Netzwerkschnittstelle wird vollständig von Amazon ECS verwaltet. Sie wird gelöscht, wenn Sie Ihre Container-Instance beenden oder die Registrierung auf dem Cluster aufheben. Weitere Informationen finden Sie unter Netzwerkoptionen für Amazon ECS-Aufgaben für EC2.

Überlegungen

Beachten Sie Folgendes, wenn Sie das ENI-Trunking-Feature verwenden.

  • Nur Linux-Varianten des Amazon-ECS-optimierten AMI oder andere Amazon-Linux-Varianten mit Version 1.28.1 oder höher des Container-Agenten und Version 1.28.1-2 oder höher des ecs-init-Pakets unterstützen die erhöhten ENI-Limits. Wenn Sie die neueste Linux-Variante des Amazon-ECS-optimierten AMI verwenden, sind diese Anforderungen erfüllt. Windows-Container werden derzeit nicht unterstützt.

  • Nur neue EC2 Amazon-Instances, die nach der Aktivierung gestartet werden, awsvpcTrunking erhalten die erhöhten ENI Limits und die Trunk-Netzwerkschnittstelle. Zuvor gestarteten Instances erhalten keine dieser Features, unabhängig von den durchgeführten Aktionen.

  • Amazon EC2 Amazon-Instances müssen ressourcenbasierte IPv4 DNS-Anfragen deaktiviert sein. Um diese Option zu deaktivieren, deaktivieren Sie die Option Ressourcenbasierte DNS-Anfragen IPV4 (A-Datensatz) aktivieren, wenn Sie eine neue Instance in der EC2 Amazon-Konsole erstellen. Verwenden Sie den folgenden Befehl AWS CLI, um diese Option mit dem zu deaktivieren.

    aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
  • EC2 Amazon-Instances in gemeinsam genutzten Subnetzen werden nicht unterstützt. Sie können sich nicht bei einem Cluster registrieren, wenn sie verwendet werden.

  • Ihre Aufgaben müssen den awsvpc Netzwerkmodus und den EC2 verwenden. Aufgaben, die Fargate verwenden, erhalten immer eine dedizierte ENI, unabhängig davon, wie viele gestartet werden. Somit ist dieses Feature nicht erforderlich.

  • Ihre Aufgaben müssen in derselben Amazon VPC wie Ihre Container-Instance gestartet werden. Beim Starten Ihrer Aufgaben kommt es zu einem Attributfehler, wenn sich die Aufgaben nicht in derselben VPC befinden.

  • Beim Starten einer neuen Container-Instance wechselt die Instance in den Status REGISTERING und die Stamm-ENI wird für die Instance bereitgestellt. Wenn die Registrierung fehlschlägt, wechselt die Instance in den Status REGISTRATION_FAILED. Sie können Probleme bei einer fehlgeschlagenen Registrierung beheben, indem Sie die Container-Instance beschreiben, um das Feld statusReason einzusehen, welches den Grund für den Fehler beschreibt. Die Container-Instance kann dann manuell abgemeldet oder beendet werden. Sobald die Container-Instance erfolgreich abgemeldet oder beendet wurde, löscht Amazon ECS den Trunk-ENI.

    Anmerkung

    Amazon ECS sendet Statusänderungsereignisse für Container-Instances aus, die Sie für Instances überwachen können, die zu einem REGISTRATION_FAILED-Zustand übergehen. Weitere Informationen finden Sie unter Statussänderungs-Ereignisse für Amazon-ECS-Container-Instances.

  • Sobald die Container-Instance beendet wird, wechselt die Instance in den Status DEREGISTERING und die Bereitstellung der Stamm-ENI wird aufgehoben. Die Instance wechselt dann in einen INACTIVE-Status.

  • Wenn eine Container-Instance in einem öffentlichen Subnetz mit den erhöhten ENI-Limits angehalten und dann neu gestartet wird, verliert die Instance ihre öffentliche IP-Adresse und der Container-Agent verliert die Verbindung.

  • Wenn Sie awsvpcTrunking aktivieren, erhalten Container-Instances eine zusätzliche ENI, die die Standard-Sicherheitsgruppe der VPC verwendet und von Amazon ECS verwaltet wird.

    Eine Standard-VPC umfasst ein öffentliches Subnetz in jeder Availability Zone, ein Internet-Gateway und Einstellungen zum Aktivieren der DNS-Auflösung. Das Subnetz ist ein öffentliches Subnetz, da die Haupt-Routing-Tabelle den Datenverkehr des Subnetzes in das Internet über das Internet-Gateway sendet. Sie können ein Standardsubnetz zu einem privaten Subnetz machen, indem Sie die Route vom Ziel 0.0.0.0/0 zum Internet-Gateway verschieben. Wenn Sie so vorgehen, können Container-Instances diesem Subnetz jedoch nicht mehr auf das Internet zugreifen. Sie können Sicherheitsgruppenregeln hinzufügen oder löschen, um den Datenverkehr in und aus Ihren Subnetzen zu kontrollieren. Weitere Informationen finden Sie unter Sicherheitsgruppenregeln im Benutzerhandbuch für Amazon Virtual Private Cloud.

Voraussetzungen

Bevor Sie eine Container-Instance mit den erhöhten ENI-Limits starten, müssen die folgenden Voraussetzungen erfüllt sein.

  • Die serviceverknüpfte Rolle für Amazon ECS muss erstellt werden. Die serviceverknüpfte Amazon ECS-Rolle gibt Amazon ECS die Erlaubnis, in Ihrem Namen Anrufe an andere AWS Services zu tätigen. Diese Rolle wird automatisch für Sie erstellt, wenn Sie einen Cluster erstellen oder wenn Sie einen Service in der AWS-Managementkonsole 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
  • Die IAM-Rolle Ihres Kontos oder Ihrer Container-Instance muss die awsvpcTrunking-Kontoeinstellung aktivieren. Wir empfehlen, dass Sie zwei Container-Instance-Rollen (ecsInstanceRole) erstellen. Sie können dann die awsvpcTrunking-Kontoeinstellung für eine Rolle aktivieren und diese Rolle für Aufgaben verwenden, die ENI-Trunking erfordern. Weitere Informationen über die Container-Instance-Rolle finden Sie unter IAM-Rolle für Amazon-ECS-Container-Instance.

Sobald die Voraussetzungen erfüllt sind, können Sie eine neue Container-Instance mit einem der unterstützten EC2 Amazon-Instance-Typen starten. Für die Instance gelten dann die erhöhten ENI Limits. Eine Liste mit unterstützten Instance-Typen finden Sie unter Unterstützte Instances für mehr Amazon-ECS-Container-Netzwerkschnittstellen. Die Container-Instance muss Version 1.28.1 oder höher des Container-Agenten haben sowie Version 1.28.1-2 oder höher des ecs-Init-Pakets. Wenn Sie die neueste Linux-Variante des Amazon-ECS-optimierten AMI verwenden, sind diese Anforderungen erfüllt. Weitere Informationen finden Sie unter Starten einer Amazon ECS Linux-Container-Instance.

Wichtig

Amazon EC2 Amazon-Instances müssen ressourcenbasierte IPv4 DNS-Anfragen deaktiviert sein. Um diese Option zu deaktivieren, stellen Sie sicher, dass die Option Ressourcenbasierte DNS-Anfragen IPV4 (A-Datensatz) aktivieren deaktiviert ist, wenn Sie eine neue Instance mit der Amazon-Konsole erstellen. EC2 Verwenden Sie den folgenden Befehl AWS CLI, um diese Option mit dem zu deaktivieren.

aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
Um Ihre Container-Instances mit erhöhten ENI Limits anzuzeigen, verwenden Sie den AWS CLI

Jede Container-Instance verfügt über eine standardmäßige Netzwerkschnittstelle, die als Stamm-Netzwerkschnittstelle bezeichnet wird. Verwenden Sie den folgenden Befehl, um Ihre Container-Instances mit erhöhten ENI-Limits aufzulisten, indem das Attribut ecs.awsvpc-trunk-id abgefragt wird. Dieses Attribut gibt an, dass eine Trunk-Netzerkschnittstelle vorhanden ist.

  • list-attributes (AWS CLI)

    aws ecs list-attributes \ --target-type container-instance \ --attribute-name ecs.awsvpc-trunk-id \ --cluster cluster_name \ --region us-east-1
  • Get- ECSAttribute Liste (AWS Tools for Windows PowerShell)

    Get-ECSAttributeList -TargetType container-instance -AttributeName ecs.awsvpc-trunk-id -Region us-east-1