Configuration des fournisseurs de capacité Amazon ECS pour l’arrêt des instances en toute sécurité - 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.

Configuration des fournisseurs de capacité Amazon ECS pour l’arrêt des instances en toute sécurité

Vous pouvez activer le drainage d’instance gérée lorsque vous créez ou mettez à jour les fournisseurs de capacité de votre groupe Auto Scaling à l’aide de la console et AWS CLI Amazon ECS.

Note

Le drainage d’instance gérée est activé par défaut lorsque vous créez un fournisseur de capacité.

Voici des exemples d'utilisation du AWS CLI pour créer un fournisseur de capacité avec le drainage d'instance géré activé et pour activer le drainage d'instance géré pour le fournisseur de capacité existant d'un cluster.

Création d’un fournisseur de capacité avec le drainage d’instance gérée

Pour créer un fournisseur de capacité avec le drainage d’instance gérée activé, utilisez la commande create-capacity-provider. Définissez le paramètre managedDraining sur ENABLED.

aws ecs create-capacity-provider \ --name capacity-provider \ --auto-scaling-group-provider '{ "autoScalingGroupArn": "asg-arn", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 1 }, "managedDraining": "ENABLED", "managedTerminationProtection": "ENABLED", }'

Réponse :

{ "capacityProvider": { "capacityProviderArn": "capacity-provider-arn", "name": "capacity-provider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "asg-arn", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 1 }, "managedTerminationProtection": "ENABLED" "managedDraining": "ENABLED" } } }
Activation du drainage d’instance gérée pour le fournisseur de capacité existant d’un cluster

Activez le drainage d’instance gérée pour le fournisseur de capacité existant d’un cluster à l’aide de la commande update-capacity-provider. Vous voyez que managedDraining a pour valeur actuelle DISABLED et que updateStatus a pour valeur actuelle UPDATE_IN_PROGRESS.

aws ecs update-capacity-provider \ --name cp-draining \ --auto-scaling-group-provider '{ "managedDraining": "ENABLED" }

Réponse :

{ "capacityProvider": { "capacityProviderArn": "cp-draining-arn", "name": "cp-draining", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "asg-draining-arn", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 1, "instanceWarmupPeriod": 300 }, "managedTerminationProtection": "DISABLED", "managedDraining": "DISABLED" // before update }, "updateStatus": "UPDATE_IN_PROGRESS", // in progress and need describe again to find out the result "tags": [ ] } }

Utilisez la commande describe-clusters et incluez l’option ATTACHMENTS. Le status de l’attachement du drainage d’instance gérée est PRECREATED, et le attachmentsStatus global est UPDATING.

aws ecs describe-clusters --clusters cluster-name --include ATTACHMENTS

Réponse :

{ "clusters": [ { ... "capacityProviders": [ "cp-draining" ], "defaultCapacityProviderStrategy": [], "attachments": [ # new precreated managed draining attachment { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "type": "managed_draining", "status": "PRECREATED", "details": [ { "name": "capacityProviderName", "value": "cp-draining" }, { "name": "autoScalingLifecycleHookName", "value": "ecs-managed-draining-termination-hook" } ] }, ... ], "attachmentsStatus": "UPDATING" } ], "failures": [] }

Lorsque la mise à jour est terminée, utilisez describe-capacity-providers, et vous verrez que managedDraining a maintenant pour valeur ENABLED.

aws ecs describe-capacity-providers --capacity-providers cp-draining

Réponse :

{ "capacityProviders": [ { "capacityProviderArn": "cp-draining-arn", "name": "cp-draining", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "asg-draning-arn", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 1, "instanceWarmupPeriod": 300 }, "managedTerminationProtection": "DISABLED", "managedDraining": "ENABLED" // successfully update }, "updateStatus": "UPDATE_COMPLETE", "tags": [] } ] }