Perché il numero delle attività in esecuzione è cambiato nel mio servizio Amazon ECS?

Ultimo aggiornamento: 04/04/2022

Il numero di attività in esecuzione nel mio servizio Amazon Elastic Container Service (Amazon ECS) è aumentato o diminuito.

Breve descrizione

Il numero di attività in esecuzione per il tuo servizio Amazon ECS potrebbe aumentare o diminuire per diversi motivi. Alcune delle cause più comuni sono le seguenti:

  • Le tue attività Amazon ECS non superano i controlli dell’integrità..
  • AWS CloudFormation o il Kit di sviluppo per il cloud AWS hanno aggiornato il numero desiderato nel servizio ECS.
  • Hai aggiornato manualmente il numero desiderato per il tuo servizio ECS.
  • Il servizio Amazon ECS scalabilità automatica ha aggiornato il numero di attività in base alla policy di dimensionamento.
  • È stato aggiornato il numero minimo o massimo nell’applicazione scalabilità automatica utilizzando l'API RegisterScalableTarget.
  • La configurazione di implementazione del servizio ECS ha modificato il numero di attività in esecuzione durante l’implementazione.

Risoluzione

Le attività ECS non superano i controlli dell’integrità

CloudFormation o AWS CDK hanno aggiornato il numero desiderato nel servizio ECS

Se hai creato il tuo servizio ECS con CloudFormation o CDK senza specificare il campo DesiredCount, il numero desiderato viene impostato di default sul valore 1. Tuttavia, quando lo stesso servizio viene aggiornato tramite CloudFormation o CDK senza specificare il campo DesiredCount, il numero desiderato esistente nell'implementazione corrente viene utilizzato per la nuova implementazione.

Per risolvere questo problema, consulta gli eventi di AWS CloudTrail per verificare se la chiamata API UpdateService è stata effettuata da CloudFormation. È possibile verificare anche controllando che il campo userAgent nella sezione Registro eventi specifichi quanto segue:

"userAgent": "cloudformation.amazonaws.com"

Per risolvere questo problema, rimuovere il parametro desiredCount dal codice CloudFormation o CDK durante l'aggiornamento.

È stato aggiornato manualmente il numero desiderato per il servizio ECS

Se è stato aggiornato manualmente il servizio ECS utilizzando l'API UpdateService, la console Amazon ECS o AWS Command Line Interface (AWS CLI), aggiornare nuovamente il servizio per modificare il numero desiderato con un valore appropriato. Per ulteriori informazioni, vedi Aggiornamento di un servizio eupdate-service.

Per risolvere questo problema, consulta gli eventi CloudTrail per controllare se la chiamata API UpdateService è stata effettuata dalla console Amazon ECS o AWS CLI. È possibile visualizzare queste informazioni nel campo userAgent nel registro CloudTrail.

Esempio:

"userAgent": "console.amazonaws.com"

Il servizio Amazon ECS scalabilità automatica ha aggiornato il numero di attività in base alla policy di dimensionamento

Il servizio Amazon ECS scalabilità automatica potrebbe aver aumentato o diminuito il numero desiderato in base alla policy di dimensionamento. Consulta il servizio e controlla la presenza di eventuali attività di dimensionamento recenti.

Per visualizzare le attività di dimensionamento, esegui le seguenti operazioni:

  1. Apri la console di Amazon ECS.
  2. Nel pannello di navigazione, scegli Cluster.
  3. Scegli il cluster che vuoi controllare.
  4. Scegli la scheda Servizi.
  5. Scegli il ruolo che vuoi controllare.
  6. Scegli la scheda Eventi.

Se si è verificato un evento di dimensionamento, è possibile visualizzare messaggi informativi, come quelli seguenti, nella colonna Messaggio:

Successfully set desired count to 1. Change successfully fulfilled by ecs. Cause: monitor alarm TargetTracking-service/service-autoscaling/sample-webapp-AlarmLow-fcd80aef-5161-4890-aeb4-35dde11ff42c in state ALARM triggered policy TargetTrackingPolicy.

Se le attività vengono interrotte a causa di un'attività di dimensionamento, consulta il monitoraggio degli obiettivi o le policy delle fasi di dimensionamento. Quindi, aggiorna il numero desiderato in base ai requisiti della tua applicazione.

Per visualizzare la configurazione dell’applicazione di scalabilità automatica, esegui le seguenti operazioni:

  1. Apri la console di Amazon ECS.
  2. Nel pannello di navigazione, scegli Cluster.
  3. Scegli il cluster che vuoi controllare.
  4. Scegli la scheda Servizi.
  5. Scegli il ruolo che vuoi controllare.
  6. Scegli la scheda Scalabilità automatica.
    Nota: se utilizzi la nuova console di Amazon ECS, scegli Configurazione e attività, quindi visualizza le informazioni in Configurazione del servizio.

È stato aggiornato il numero minimo e massimo nell’applicazione di scalabilità automatica utilizzando l'API RegisterScalableTarget

Se è stata utilizzata l'API RegisterScalableTarget per aggiornare l’obiettivo scalabile, allora controllare il valore della proprietà MinCapacity specificato nell'API. Se è stato specificato un nuovo valore minimo, l’applicazione di scalabilità automatica utilizza questo valore come nuovo valore minimo a cui è possibile ridurre le attività.

Nota: l’applicazione di scalabilità automatica non riduce il numero desiderato a un valore inferiore del valore minimo specificato.

La configurazione di implementazione del servizio ECS ha modificato il numero di attività in esecuzione durante l’implementazione

Consulta gli eventi CloudTrail per controllare se l'API UpdateService è stata chiamata di recente. È possibile visualizzare la configurazione di implementazione del servizio ECS controllando il parametro di richiesta deploymentConfigration nell'API UpdateService.

-oppure-

Consulta la configurazione di implementazione del servizio ECS nella console di Amazon ECS procedendo come segue:

  1. Apri la console di Amazon ECS.
  2. Nel pannello di navigazione, scegli Cluster.
  3. Scegli il cluster che vuoi controllare.
  4. Scegli la scheda Servizi.
  5. Scegli il ruolo che vuoi controllare.
  6. Scegli la scheda Implementazioni.

I parametri di configurazione dell’implementazione controllano il numero di attività eseguite durante un’implementazione e la sequenza di attività di arresto e avvio. Se la configurazione dell’implementazione è impostata in modo errato, il numero di attività in esecuzione durante l’implementazione viene ridotto. Pertanto, è consigliabile configurare il valore del parametro minimumHealthyPercent su un valore superiore allo 0%.

Il parametro minimumHealthyPercent rappresenta il valore limite inferiore per ciascuno dei seguenti come una percentuale del numero di attività desiderato per il servizio:

  • Numero di attività che devono essere in esecuzione per un servizio durante un’implementazione
  • Numero di attività che devono essere eseguite quando un'istanza di container si sta esaurendo.

Il valore di questo parametro è arrotondato per eccesso. Ad esempio, se minimumHealthyPercent è pari al 50% e il numero desiderato di attività è quattro, il pianificatore può interrompere due attività esistenti prima di iniziare due nuove attività. Se minimumHealthyPercent è 75% e il numero desiderato di attività è due, il pianificatore non può interrompere alcuna attività perché il valore risultante è anch’esso due.

Il parametro maximumPercent rappresenta il valore limite superiore di una delle seguenti operazioni come una percentuale del numero desiderato di attività per un servizio:

  • Numero di attività che devono essere in esecuzione per un servizio durante un’implementazione
  • Numero di attività che devono essere eseguite quando un'istanza di container si sta esaurendo.

Il valore di questo parametro è arrotondato per difetto. Ad esempio, se maximumPercent è del 200% e il numero desiderato di attività è quattro, il pianificatore può avviare quattro nuove attività prima di interrompere quattro attività esistenti. Se maximumPercent è 125% e il numero desiderato di attività è tre, il pianificatore non può avviare alcuna attività perché il valore risultante è anch’esso tre.

Per maggiori informazioni, vedi Aggiornamento in sequenza.