Die Amazon-EBS-Volume-Konfiguration bei der Amazon-ECS-Bereitstellung angeben - 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.

Die Amazon-EBS-Volume-Konfiguration bei der Amazon-ECS-Bereitstellung angeben

Nachdem Sie eine Aufgabendefinition mit dem configuredAtLaunch-Parameter auf true registriert haben, können Sie ein Amazon-EBS-Volume bei der Bereitstellung konfigurieren, wenn Sie eine eigenständige Aufgabe ausführen oder wenn Sie einen Service erstellen oder aktualisieren. Weitere Informationen zum Verschieben der Volume-Konfiguration auf die Startzeit mithilfe des configuredAtLaunch-Parameters finden Sie unter Die Volume-Konfiguration auf die Startzeit in einer Amazon-ECS-Aufgabendefinition verschieben.

Um ein Volume zu konfigurieren, können Sie Amazon ECS APIs verwenden oder eine JSON-Datei als Eingabe für die folgenden AWS CLI Befehle übergeben:

  • run-task, um eine eigenständige ECS-Aufgabe auszuführen.

  • start-task, um eine eigenständige ECS-Aufgabe in einer bestimmten Container-Instance auszuführen. Dieser Befehl gilt nicht für Fargate-Aufgaben.

  • create-service, um einen neuen ECS-Service zu erstellen.

  • update-service, um einen bestehenden Service zu aktualisieren.

Anmerkung

Damit ein Container in Ihrer Aufgabe auf das bereitgestellte Amazon EBS-Volume schreiben kann, muss der Container über die entsprechenden Dateisystemberechtigungen verfügen. Wenn Sie in Ihrer Container-Definition einen Nicht-Root-Benutzer angeben, konfiguriert Amazon ECS das Volume automatisch mit gruppenbasierten Berechtigungen, die es dem angegebenen Benutzer ermöglichen, auf das Volume zu lesen und zu schreiben. Wenn kein Benutzer angegeben ist, wird der Container als Root ausgeführt und hat vollen Zugriff auf das Volume.

Sie können ein Amazon-EBS-Volume auch mit der AWS-Managementkonsole konfigurieren. Weitere Informationen finden Sie unter Ausführen einer Anwendung als Amazon-ECS-Aufgabe, Erstellung einer Amazon-ECS-Bereitstellung mit fortlaufender Aktualisierung und Aktualisierung eines Amazon ECS-Service.

Der folgende JSON-Ausschnitt zeigt alle Parameter eines Amazon-EBS-Volumes, die bei der Bereitstellung konfiguriert werden können. Um diese Parameter für die Volume-Konfiguration zu verwenden, ersetzen Sie user input placeholders durch Ihre eigenen Informationen. Weitere Informationen zu diesen Parametern finden Sie unter Volume-Konfigurationen.

"volumeConfigurations": [ { "name": "ebs-volume", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "volumeType": "gp3", "sizeInGiB": 10, "snapshotId": "snap-12345", "volumeInitializationRate":100, "iops": 3000, "throughput": 125, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "key1", "value": "value1" } ], "propagateTags": "NONE" } ], "roleArn": "arn:aws:iam::1111222333:role/ecsInfrastructureRole", "terminationPolicy": { "deleteOnTermination": true//can't be configured for service-managed tasks, always true }, "filesystemType": "ext4" } } ]
Wichtig

Stellen Sie sicher, dass der volumeName, den Sie in der Konfiguration angeben, derselbe ist, wie der volumeName, den Sie in Ihrer Aufgabendefinition angeben.

Weitere Informationen zum Überprüfen des Statuss eines Volume-Anhangs finden Sie unter Fehlerbehebung bei Amazon-EBS-Volume-Anhängen an Amazon-ECS-Aufgaben . Informationen zur Amazon ECS-Infrastrukturrolle AWS Identity and Access Management (IAM), die für das Anhängen von EBS-Volumes erforderlich ist, finden Sie unter. IAM-Rolle für die Amazon ECS-Infrastruktur

Im Folgenden finden Sie Beispiele für JSON-Ausschnitte, die die Konfiguration von Amazon-EBS-Volumes zeigen. Diese Beispiele können verwendet werden, indem die Codefragmente in JSON-Dateien gespeichert und die Dateien als Parameter (unter Verwendung des --cli-input-json file://filename Parameters) für Befehle übergeben werden. AWS CLI Ersetzen Sie user input placeholders durch Ihre Informationen.

Ein Volume für eine eigenständige Aufgabe konfigurieren

Der folgende Ausschnitt zeigt die Syntax für die Konfiguration von Amazon-EBS-Volumes für den Anhang an eine eigenständige Aufgabe. Der folgende JSON-Ausschnitt zeigt die Syntax für die Konfiguration der Einstellungen volumeType, sizeInGiB, encrypted und kmsKeyId. Die in der JSON-Datei angegebene Konfiguration wird verwendet, um ein EBS-Volume zu erstellen und an die eigenständige Aufgabe anzuhängen.

{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "volumeConfigurations": [ { "name": "datadir", "managedEBSVolume": { "volumeType": "gp3", "sizeInGiB": 100, "roleArn":"arn:aws:iam::1111222333:role/ecsInfrastructureRole", "encrypted": true, "kmsKeyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } ] }

Ein Volume bei der Service-Erstellung konfigurieren

Der folgende Ausschnitt zeigt die Syntax für die Konfiguration von Amazon-EBS-Volumes für den Anhang an Aufgaben, die von einem Service verwaltet werden. Die Volumes stammen aus dem mit dem snapshotId-Parameter angegebenen Snapshot mit einer Geschwindigkeit von 200 MiB/s. Die in der JSON-Datei angegebene Konfiguration wird verwendet, um ein EBS-Volume zu erstellen und an jede Aufgabe anzuhängen, die vom Service verwaltet wird.

{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "serviceName": "mysvc", "desiredCount": 2, "volumeConfigurations": [ { "name": "myEbsVolume", "managedEBSVolume": { "roleArn":"arn:aws:iam::1111222333:role/ecsInfrastructureRole", "snapshotId": "snap-12345", "volumeInitializationRate": 200 } } ] }

Ein Volume bei der Service-Aktualisierung konfigurieren

Der folgende JSON-Ausschnitt zeigt die Syntax für die Aktualisierung eines Services, für den zuvor keine Amazon-EBS-Volumes für das Anhängen an Aufgaben konfiguriert waren. Sie müssen den ARN einer Aufgabendefinitionsrevision angeben, bei dem configuredAtLaunch auf true gestellt ist. Der folgende JSON-Ausschnitt zeigt die Syntax für die Konfiguration der Einstellungen volumeType, sizeInGiB, throughput, iops und filesystemType. Diese Konfiguration wird verwendet, um ein EBS-Volume zu erstellen und an jede vom Service verwaltete Aufgabe anzuhängen.

{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "service": "mysvc", "desiredCount": 2, "volumeConfigurations": [ { "name": "myEbsVolume", "managedEBSVolume": { "roleArn":"arn:aws:iam::1111222333:role/ecsInfrastructureRole", "volumeType": "gp3", "sizeInGiB": 100, "iops": 3000, "throughput": 125, "filesystemType": "ext4" } } ] }

Einen Service so konfigurieren, dass er Amazon-EBS-Volumes nicht mehr nutzt

Der folgende JSON-Ausschnitt zeigt die Syntax für die Aktualisierung eines Service, sodass er keine Amazon-EBS-Volumes mehr verwendet. Sie müssen den ARN einer Aufgabendefinition mit configuredAtLaunch auf false gestellt oder eine Aufgabendefinition ohne den configuredAtLaunch-Parameter angeben. Sie müssen auch ein leeres volumeConfigurations-Objekt angeben.

{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "service": "mysvc", "desiredCount": 2, "volumeConfigurations": [] }

Beendigungsrichtlinie für Amazon-EBS-Volumes

Wenn eine Amazon-ECS-Aufgabe beendet wird, bestimmt Amazon ECS anhand des deleteOnTermination-Werts, ob das Amazon-EBS-Volume, das der beendeten Aufgabe zugeordnet ist, gelöscht werden soll. Standardmäßig werden EBS-Volumes, die an Aufgaben angehängt sind, gelöscht, wenn die Aufgabe beendet wird. Bei eigenständigen Aufgaben können Sie diese Einstellung ändern, sodass das Volume beim Beenden der Aufgabe erhalten bleibt.

Anmerkung

Volumes, die an Aufgaben angehängt sind, die von einem Service verwaltet werden, bleiben nicht erhalten und werden bei Beendigung der Aufgabe immer gelöscht.

Markieren von Amazon-EBS-Volumes

Sie können Amazon-EBS-Volumes mithilfe des tagSpecifications-Objekts markieren. Mithilfe des Objekts können Sie Ihre eigenen Tags angeben und die Weitergabe von Tags aus der Aufgabendefinition oder dem Service festlegen, je nachdem, ob das Volume an eine eigenständige Aufgabe oder eine Aufgabe in einem Service angehängt ist. Die maximale Anzahl von Tags, die an ein Volume angehängt werden können, ist 50.

Wichtig

Amazon ECS hängt die Tags AmazonECSCreated und die AmazonECSManaged reservierten Tags automatisch an ein Amazon EBS-Volume an. Das bedeutet, dass Sie das Anhängen von maximal 48 zusätzlichen Tags an ein Volume steuern können. Bei diesen zusätzlichen Tags kann es sich um benutzerdefinierte, von ECS verwaltete oder weitergegebene Tags handeln.

Wenn Sie Ihrem Volume Amazon ECS Managed Tags hinzufügen möchten, müssen Sie enableECSManagedTags in IhremUpdateService-, CreateService-, RunTask- oder StartTask-Aufruf auf true einstellen. Wenn Sie Amazon ECS Managed Tags aktivieren, markiert Amazon ECS das Volume automatisch mit Cluster- und Serviceinformationen (aws:ecs:clusterName und aws:ecs:serviceName). Weitere Informationen zum Markieren von Amazon-ECS-Ressourcen finden Sie unter Markieren von Amazon-ECS-Ressourcen mit Tags.

Der folgende JSON-Ausschnitt zeigt die Syntax für die Markierung jedes Amazon-EBS-Volumes, das an jede Aufgabe in einem Service angehängt ist, mit einem benutzerdefinierten Tag. Um dieses Beispiel zum Erstellen eines Services zu verwenden, ersetzen Sie user input placeholders durch Ihre eigenen Informationen.

{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "serviceName": "mysvc", "desiredCount": 2, "enableECSManagedTags": true, "volumeConfigurations": [ { "name": "datadir", "managedEBSVolume": { "volumeType": "gp3", "sizeInGiB": 100, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "key1", "value": "value1" } ], "propagateTags": "NONE" } ], "roleArn":"arn:aws:iam:1111222333:role/ecsInfrastructureRole", "encrypted": true, "kmsKeyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } ] }
Wichtig

Sie müssen einen volume-Ressourcentyp angeben, um Amazon-EBS-Volumes zu markieren.