Spécifiez la configuration du volume Amazon EBS lors du déploiement d'Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Spécifiez la configuration du volume Amazon EBS lors du déploiement d'Amazon ECS

Après avoir enregistré une définition de tâche dont le configuredAtLaunch paramètre est défini surtrue, vous pouvez configurer un volume Amazon EBS lors du déploiement, lorsque vous exécutez une tâche autonome, ou lorsque vous créez ou mettez à jour un service.

Pour configurer un volume, vous pouvez utiliser Amazon ECS APIs ou transmettre un fichier JSON en entrée pour les AWS CLI commandes suivantes :

  • run-taskpour exécuter une tâche ECS autonome.

  • start-taskpour exécuter une tâche ECS autonome dans une instance de conteneur spécifique. Cette commande ne s'applique pas aux tâches de type lancement Fargate.

  • create-servicepour créer un nouveau service ECS.

  • update-servicepour mettre à jour un service existant.

Note

Pour qu'un conteneur de votre tâche puisse écrire sur le volume Amazon EBS monté, vous devez exécuter le conteneur en tant qu'utilisateur root.

Vous pouvez également configurer un volume Amazon EBS à l'aide du AWS Management Console. Pour plus d’informations, consultez Exécution d'une application en tant que tâche Amazon ECS, Création d'un déploiement de mises à jour continues Amazon ECS et Mettre à jour un service Amazon ECS.

L'extrait de code JSON suivant montre tous les paramètres d'un volume Amazon EBS qui peuvent être configurés lors du déploiement. Pour utiliser ces paramètres pour la configuration des volumes, user input placeholders remplacez-les par vos propres informations. Pour plus d'informations sur ces paramètres, consultez la section Configurations des volumes.

"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" } } ]
Important

Assurez-vous que ce que volumeName vous spécifiez dans la configuration est identique à celui que volumeName vous spécifiez dans votre définition de tâche.

Pour plus d'informations sur la vérification de l'état de la connexion au volume, consultezRésolution des problèmes liés aux pièces jointes de volumes Amazon EBS aux tâches Amazon ECS . Pour plus d'informations sur le rôle d'infrastructure Amazon ECS AWS Identity and Access Management (IAM) nécessaire à l'attachement d'un volume EBS, consultez. Rôle IAM dans l'infrastructure Amazon ECS

Voici des exemples d'extraits de code JSON illustrant la configuration des volumes Amazon EBS. Ces exemples peuvent être utilisés en enregistrant les extraits dans des fichiers JSON et en transmettant les fichiers en tant que paramètres (en utilisant le --cli-input-json file://filename paramètre) pour AWS CLI les commandes. Remplacez user input placeholders par vos propres informations.

Configuration d'un volume pour une tâche autonome

L'extrait suivant montre la syntaxe permettant de configurer les volumes Amazon EBS pour les associer à une tâche autonome. L'extrait de code JSON suivant montre la syntaxe de configuration des paramètresvolumeType, sizeInGiBencrypted, etkmsKeyId. La configuration spécifiée dans le fichier JSON est utilisée pour créer et associer un volume EBS à la tâche autonome.

{ "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" } } ] }

Configuration d'un volume lors de la création du service

L'extrait suivant montre la syntaxe permettant de configurer les volumes Amazon EBS pour les associer à des tâches gérées par un service. Les volumes proviennent de l'instantané spécifié à l'aide du snapshotId paramètre à un débit de 200 Mbits/s. La configuration spécifiée dans le fichier JSON est utilisée pour créer et associer un volume EBS à chaque tâche gérée par le service.

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

Configuration d'un volume lors de la mise à jour du service

L'extrait de code JSON suivant montre la syntaxe de mise à jour d'un service pour lequel aucun volume Amazon EBS n'était auparavant configuré pour être rattaché à des tâches. Vous devez fournir l'ARN d'une révision de définition de tâche configuredAtLaunch définie surtrue. L'extrait de code JSON suivant montre la syntaxe permettant de configurer les paramètres volumeType sizeInGiBthroughput,iops, etfilesystemType. Cette configuration est utilisée pour créer et associer un volume EBS à chaque tâche gérée par le service.

{ "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" } } ] }

Configurer un service pour ne plus utiliser les volumes Amazon EBS

L'extrait de code JSON suivant montre la syntaxe permettant de mettre à jour un service afin qu'il n'utilise plus les volumes Amazon EBS. Vous devez fournir l'ARN d'une définition de tâche configuredAtLaunch définie sur ou false d'une définition de tâche sans le configuredAtLaunch paramètre. Vous devez également fournir un volumeConfigurations objet vide.

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

Politique de résiliation pour les volumes Amazon EBS

Lorsqu'une tâche Amazon ECS prend fin, Amazon ECS utilise la deleteOnTermination valeur pour déterminer si le volume Amazon EBS associé à la tâche terminée doit être supprimé. Par défaut, les volumes EBS attachés à des tâches sont supprimés lorsque la tâche est arrêtée. Pour les tâches autonomes, vous pouvez modifier ce paramètre afin de préserver le volume à la fin de la tâche.

Note

Les volumes attachés à des tâches gérées par un service ne sont pas conservés et sont toujours supprimés à la fin de la tâche.

Étiqueter les volumes Amazon EBS

Vous pouvez baliser les volumes Amazon EBS à l'aide de l'tagSpecificationsobjet. À l'aide de l'objet, vous pouvez fournir vos propres balises et définir la propagation des balises à partir de la définition de la tâche ou du service, selon que le volume est attaché à une tâche autonome ou à une tâche d'un service. Le nombre maximum de balises pouvant être attachées à un volume est de 50.

Important

Amazon ECS attache automatiquement les balises AmazonECSCreated et les balises AmazonECSManaged réservées à un volume Amazon EBS. Cela signifie que vous pouvez contrôler l'attachement d'un maximum de 48 balises supplémentaires à un volume. Ces balises supplémentaires peuvent être définies par l'utilisateur, gérées par ECS ou propagées.

Si vous souhaitez ajouter des balises gérées par Amazon ECS à votre volume, vous devez les enableECSManagedTags définir true dans votre UpdateServiceCreateService, RunTask ou StartTask appeler. Si vous activez les balises gérées par Amazon ECS, Amazon ECS balisera automatiquement le volume avec des informations sur le cluster et le service (aws:ecs:clusterNameetaws:ecs:serviceName). Pour plus d'informations sur le balisage des ressources Amazon ECS, consultez la section Marquage de vos ressources Amazon ECS.

L'extrait de code JSON suivant montre la syntaxe permettant de baliser chaque volume Amazon EBS associé à chaque tâche d'un service avec une balise définie par l'utilisateur. Pour utiliser cet exemple pour créer un service, remplacez-le user input placeholders par vos propres informations.

{ "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" } } ] }
Important

Vous devez spécifier un type de volume ressource pour étiqueter les volumes Amazon EBS.