Configuración de los proveedores de capacidad de Amazon ECS para cerrar las instancias de forma segura - Amazon Elastic Container Service

Configuración de los proveedores de capacidad de Amazon ECS para cerrar las instancias de forma segura

Puede habilitar el drenaje de instancias administradas al crear o actualizar los proveedores de capacidad del grupo de escalado automático mediante la consola de Amazon ECS y la AWS CLI.

nota

El drenaje de instancias administradas está activado de manera predeterminada al crear un proveedor de capacidad.

A continuación, se muestran ejemplos en los que se usa la AWS CLI para crear un proveedor de capacidad con el drenaje de instancias administradas habilitado y para habilitar el drenaje de instancias administradas para el proveedor de capacidad existente de un clúster.

Creación de un proveedor de capacidad con el drenaje de instancias administradas habilitado

Para crear un proveedor de capacidad con el drenaje de instancias administradas habilitado, utilice el comando create-capacity-provider. Establezca el parámetro managedDraining como 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", }'

Respuesta:

{ "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" } } }
Habilitación del drenaje de instancias administradas para el proveedor de capacidad existente de un clúster

Para habilitar el drenaje de instancias administradas para el proveedor de capacidad existente de un clúster, utilice el comando update-capacity-provider. Verá que managedDraining actualmente indica DISABLED y updateStatus indica UPDATE_IN_PROGRESS.

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

Respuesta:

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

Use el comando describe-clusters e incluya ATTACHMENTS. El status del archivo adjunto de drenaje de instancias administradas es PRECREATED, y el attachmentsStatus general es UPDATING.

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

Respuesta:

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

Cuando finalice la actualización, use describe-capacity-providers y verá que managedDraining ahora está en estado ENABLED.

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

Respuesta:

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