Salta al contenuto

Come posso configurare il mio provider di capacità per mantenere istanze Amazon EC2 in un gruppo Amazon EC2 Auto Scaling su cui sono in esecuzione attività Amazon ECS?

5 minuti di lettura
0

Il mio cluster Amazon Elastic Container Service (Amazon ECS) utilizza provider di capacità. Desidero mantenere attive le mie istanze Amazon Elastic Compute Cloud (Amazon EC2) in un gruppo Auto Scaling quando hanno attività in esecuzione.

Breve descrizione

Se utilizzi un provider di capacità, devi configurare le impostazioni del cluster Amazon ECS in modo da non arrestare le attività in esecuzione quando si riduce verticalmente. Implementa la protezione delle istanze dalla riduzione orizzontale nel gruppo EC2 Auto Scaling e la protezione da dimensionamento gestito nelle impostazioni del provider di capacità Amazon ECS. Questa configurazione assicura che Amazon ECS mantenga le istanze con attività in esecuzione.

Oppure configura Amazon ECS per svuotare correttamente le attività quando arresti le istanze e proteggere istanze specifiche dall'arresto prematuro.

La configurazione utilizza i seguenti componenti:

  • Provider di capacità: I provider di capacità utilizzano i gruppi Auto Scaling per eseguire il provisioning dinamico delle istanze EC2.
  • Svuotamento di un'istanza: Quando un'istanza EC2 in un gruppo Auto Scaling è contrassegnata per la terminazione, entra nello stato DRAINING e non accetta più nuove attività. Le attività in esecuzione devono terminare o passare a un'altra istanza.
  • Dimensionamento automatico del cluster: Il dimensionamento automatico dei cluster utilizza i provider di capacità per scalare automaticamente i gruppi Auto Scaling in base ai requisiti delle attività.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Assicurati che Amazon ECS o il gruppo Auto Scaling non arresti prematuramente un'istanza durante la riduzione orizzontale

Per utilizzare la protezione da terminazione gestita nel cluster a dimensionamento automatico, devi attivare la protezione da riduzione orizzontale delle istanze nel gruppo Auto Scaling. Questa azione assicura che il gruppo Auto Scaling mantenga le istanze con attività in esecuzione.

Per attivare la protezione da riduzione orizzontale, esegui questo comando AWS CLI update-auto-scaling-group:

aws autoscaling update-auto-scaling-group \
  --auto-scaling-group-name my-asg \
  --new-instances-protected-from-scale-in

Nota: sostituisci my-asg con il nome del tuo gruppo Auto Scaling.

Quindi esegui questo comando put-cluster-capacity-providers per attivare la protezione dalla terminazione gestita in modo da assicurarti che Amazon ECS mantenga le istanze con attività in esecuzione:

aws ecs put-cluster-capacity-providers \
  --cluster my-cluster \
  --capacity-providers my-capacity-provider \
  --enable-managed-scaling \
  --managed-termination-protection ENABLED

Nota: sostituisci my-cluster con il nome del tuo cluster e my-capacity-provider con il nome del tuo provider di capacità.

Configura Amazon ECS per svuotare correttamente le attività quando rimuovi un'istanza

È consigliabile svuotare correttamente le attività quando le rimuovi da un'istanza. Utilizza lo svuotamento gestito delle istanze per consentire ad Amazon ECS di riprogrammare le attività su altre istanze prima della terminazione.

Per attivare lo svuotamento gestito delle istanze, esegui questo comando update-capacity-provider:

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

Nota: sostituisci my-cp con il nome del tuo provider di capacità.

Amazon ECS sposta le attività dell'istanza su altre istanze se la capacità lo consente. Tuttavia, Amazon ECS consente un massimo di 48 ore per svuotare le istanze. Se sono ancora presenti attività nell'istanza una volta trascorso tale lasso di tempo, Amazon ECS termina l'istanza e arresta le attività rimanenti.

Mantieni un'attività critica specifica

Utilizza la protezione delle attività per assicurarti che le azioni di dimensionamento o distribuzione di Amazon ECS non arrestino le attività critiche.

Importante: anche quando attivi la protezione delle attività, Amazon ECS può comunque terminare l'istanza sottostante. La protezione delle attività protegge solo le attività dall'arresto.

Per attivare la protezione delle attività, esegui questo comando update-task-protection:

aws ecs update-task-protection \
--cluster my-cluster \
--tasks my-task-id \
--protection-enabled

Nota: sostituisci my-cluster con il nome del tuo cluster e my-task-id con l'ID della tua attività. Per impostazione predefinita, la protezione dura 2 ore. Per modificare la durata, utilizza l'opzione**--expires-in-minutes**.

Per verificare lo stato della protezione delle attività nel cluster, esegui questo comando get-task-protection:

aws ecs get-task-protection \
--cluster my-cluster \
--tasks my-task-id

Nota: sostituisci my-cluster con il nome del tuo cluster e my-task-id con l'ID della tua attività.

Risolvi ulteriori problemi

Se attivi la protezione per il gruppo Auto Scaling, il provider di capacità e le attività e continui a riscontrare problemi, intraprendi le seguenti azioni:

Informazioni correlate

Proteggi le tue attività di Amazon ECS dall'interruzione a causa di eventi di riduzione orizzontale

GetTaskProtection

UpdateTaskProtection

Amazon Elastic Container Service (Amazon ECS) task protection examples (Esempi di protezione delle attività di Amazon Elastic Container Service (Amazon ECS)) sul sito web di GitHub

AWS UFFICIALEAggiornata 2 anni fa