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écification de la configuration du volume Amazon EBS lors du déploiement Amazon ECS
Après avoir enregistré une définition de tâche dont le paramètre configuredAtLaunch est défini sur true, 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 plus d’informations sur le report de la configuration du volume au moment du lancement à l’aide du paramètre configuredAtLaunch, consultez la section Report de la configuration du volume au moment du lancement dans une définition de tâche Amazon ECS.
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 Fargate. -
create-servicepour créer un 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é, il doit disposer des autorisations de système de fichiers appropriées. Lorsque vous spécifiez un utilisateur non root dans votre définition de conteneur, Amazon ECS configure automatiquement le volume avec des autorisations basées sur le groupe qui permettent à l'utilisateur spécifié de lire et d'écrire sur le volume. Si aucun utilisateur n'est spécifié, le conteneur s'exécute en tant que root et dispose d'un accès complet au volume.
Vous pouvez également configurer un volume Amazon EBS à l’aide de l’ 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 mise à jour propagée Amazon ECS et Mettre à jour un service Amazon ECS.
L’extrait de code JSON suivant présente tous les paramètres d’un volume Amazon EBS pouvant être configurés lors du déploiement. Pour utiliser ces paramètres pour configurer des volumes, remplacez par vos propres informations. Pour plus d’informations sur ces paramètres, consultez la section Configurations de volume.user input placeholders
"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 le volumeName que vous spécifiez dans la configuration est identique au volumeName que vous spécifiez dans votre définition de tâche.
Pour plus d’informations sur la vérification de l’état de connexion du volume, consultez la section Résolution des problèmes liés à l’attachement 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:// paramètre) pour AWS CLI les commandes. Remplacez filename par vos propres informations.user input placeholders
Configuration d’un volume pour une tâche autonome
L’extrait de code suivant présente la syntaxe permettant de configurer des volumes Amazon EBS à rattacher à une tâche autonome. L’extrait de code JSON suivant présente la syntaxe de configuration des paramètres volumeType, sizeInGiB, encrypted et kmsKeyId. 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 de code suivant présente la syntaxe permettant de configurer des volumes Amazon EBS à rattacher à des tâches gérées par un service. Les volumes sont extraits de l’instantané spécifié à l’aide du paramètre snapshotId à un débit de 200 Mio/s. La configuration spécifiée dans le fichier JSON est utilisée pour créer et attacher 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 d’un service
L’extrait de code JSON suivant présente la syntaxe permettant de mettre à jour un service qui ne disposait pas auparavant de volumes Amazon EBS configurés pour être rattachés à des tâches. Vous devez fournir l’ARN d’une révision de définition de tâche pour laquelle configuredAtLaunch est défini sur true. L’extrait de code JSON suivant présente la syntaxe de configuration des paramètres volumeType, sizeInGiB, throughput, iops et filesystemType. Cette configuration est utilisée pour créer et rattacher 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" } } ] }
Configuration d’un service pour qu’il n’utilise plus les volumes Amazon EBS
L’extrait de code JSON suivant présente 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 pour laquelle configuredAtLaunch est défini sur false ou d’une définition de tâche qui ne comporte pas le paramètre configuredAtLaunch. Vous devez également fournir un objet volumeConfigurations vide.
{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "service": "mysvc", "desiredCount":2, "volumeConfigurations": [] }
Stratégie de résiliation pour les volumes Amazon EBS
Lorsqu’une tâche Amazon ECS est résiliée, Amazon ECS utilise la valeur deleteOnTermination pour déterminer si le volume Amazon EBS associé à la tâche résiliée doit être supprimé. Par défaut, les volumes EBS rattachés à des tâches sont supprimés lorsque la tâche est résilié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 rattachés à des tâches gérées par un service ne sont pas conservés et sont toujours supprimés lorsque la tâche est résiliée.
Étiquetage des volumes Amazon EBS
Vous pouvez étiqueter les volumes Amazon EBS à l’aide de l’objet tagSpecifications. À l’aide de cet objet, vous pouvez fournir vos propres balises et définir la propagation des balises à partir de la définition de tâche ou de service, selon que le volume est associé à une tâche autonome ou à une tâche dans un service. Le nombre maximal de balises pouvant être attachées à un volume est 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 définir enableECSManagedTags sur true dans vos appels à UpdateService, CreateService, RunTask ou StartTask. Si vous activez les balises gérées par Amazon ECS, celui-ci balisera automatiquement le volume avec les informations relatives au cluster et au service (aws:ecs: et clusterNameaws:ecs:). Pour plus d’informations sur l’étiquetage de vos ressources Amazon ECS, consultez Étiquetage de vos ressources Amazon EC2.serviceName
L’extrait de code JSON suivant montre la syntaxe permettant d’étiqueter 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 chaque par vos propres informations.user input
placeholders
{ "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 ressource de volume pour étiqueter les volumes Amazon EBS.