Come posso risolvere i problemi di dimensionamento automatico in Amazon ECS?

7 minuti di lettura
0

Il dimensionamento automatico che ho configurato per Amazon Elastic Container Service (Amazon ECS) non aumenta né riduce il conteggio delle attività desiderato.

Breve descrizione

Per aggiornare automaticamente il conteggio delle attività desiderato, configura AWS Application Auto Scaling e gli allarmi Amazon CloudWatch per Amazon ECS.

Application Auto Scaling potrebbe non aggiungere o rimuovere attività come previsto per i seguenti motivi:

  • Non hai configurato correttamente le policy di dimensionamento.
  • Hai eliminato o modificato l'allarme CloudWatch che richiama le policy di dimensionamento.
  • Il dimensionamento automatico è sospeso.
  • Hai specificato erroneamente il formato dell'espressione cron nell'operazione pianificata.
  • Hai utilizzato AWS CloudFormation o Kit di sviluppo per il cloud AWS (AWS CDK) per aggiornare manualmente il conteggio delle attività desiderato e hai inserito un valore errato.
  • Il numero di attività desiderato è configurato in modo errato.
  • Il tuo cluster Amazon ECS non dispone di risorse o capacità sufficienti per eseguire nuove attività.
  • Stai riscontrando problemi di rete.

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.

Risolvi i problemi relativi agli allarmi e alle policy di dimensionamento di CloudWatch

Per risolvere i problemi relativi agli allarmi e alle policy di dimensionamento di CloudWatch, completa le seguenti attività in base alla policy di dimensionamento utilizzata.

Destinazione scalabile

Per verificare se il servizio è registrato come destinazione scalabile con Application Auto Scaling, esegui il comando describe-scalable-targets:

aws application-autoscaling describe-scalable-targets --service-namespace ecs --region example-region

Nota: sostituisci a example-region la tua regione.

Se il servizio non è registrato, esegui il comando register-scalable-target per registrare il servizio:

aws application-autoscaling register-scalable-target --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-id service/your-cluster/your-service-name --min-capacity 1 --max-capacity 10 --region example-region

Nota: sostituisci a your-cluster il nome del tuo cluster Amazon ECS, a your-service-name il nome del tuo servizio e a regione di example-region la tua regione.

Nell'output del comando precedente, controlla il valore di DynamicScalingInSuspended, DynamicScalingOutSuspended e ScheduledScalingSuspended. Se DynamicScalingInSuspended o DynamicScalingOutSuspended è impostato su true, Application Auto Scaling non aggiorna la capacità quando avvii una policy di dimensionamento. Se ScheduledScalingSuspended è impostato su true, Application Auto Scaling non avvia le operazioni di dimensionamento di cui hai pianificato l'esecuzione durante il periodo di sospensione. Per ulteriori informazioni su come riprendere il dimensionamento automatico sospeso, consulta Sospendi e riprendi il dimensionamento per Application Auto Scaling.

Dopo aver registrato il servizio, configura le policy di dimensionamento e gli allarmi CloudWatch.

Dimensionamento per fasi

Verifica se CloudWatch sta avviando gli allarmi associati alle policy di dimensionamento. Puoi trovare errori nella cronologia degli allarmi CloudWatch. Se non viene apportata alcuna modifica al delta della violazione, viene visualizzato il seguente errore: "Failed to execute AutoScaling action: No step adjustment found for metric value [xx, xx] and breach delta xx". Per risolvere questo problema, assicurati di aver impostato la soglia, gli adeguamenti di fase e il tipo di adeguamento del dimensionamento nell'allarme CloudWatch. Inoltre, specifica tutti gli adeguamenti di fase nelle policy. Per riduzione orizzontale, inserisci -infinity to 0 e per aumento orizzontale, inserisci 0 to +infinity.

Nota: se utilizzi i provider di capacità Amazon ECS, assicurati che ci siano abbastanza istanze di container su cui eseguire le attività.

Dimensionamento del monitoraggio delle destinazioni

Poiché le policy di dimensionamento del monitoraggio delle destinazioni possono influire sul comportamento di dimensionamento, non modificare né eliminare gli allarmi CloudWatch associati. Se modifichi o elimini questi allarmi, devi ricreare la policy di monitoraggio delle destinazioni.

Quando si configurano più policy di dimensionamento, le policy possono entrare in conflitto e causare attività consecutive di riduzione e aumento orizzontale. Ogni policy deve utilizzare una metrica diversa se desideri avere più policy di dimensionamento del monitoraggio delle destinazioni per un servizio Amazon ECS.

Risolvi i problemi relativi all'espressione cron errata

Assicurati che l'espressione cron nella configurazione delle operazioni pianificate per Application Auto Scaling utilizzi il seguente formato: [Minuti] [Ore] [Giorno_del_Mese] [Mese] [Giorno_della_Settimana] [Anno]. I sei campi devono essere separati da uno spazio vuoto.

Per un esempio di operazione che utilizza l'espressione cron, consulta Crea un'operazione pianificata eseguita a intervalli ricorrenti.

Risolvi i problemi relativi all'aggiornamento del conteggio delle attività desiderato

Quando aggiorni il conteggio delle attività desiderato per un servizio Amazon ECS, potresti invocare un evento di dimensionamento. Per l'aumento orizzontale, Application Auto Scaling porta il conteggio desiderato fino alla capacità minima. Per la riduzione orizzontale, Application Auto Scaling porta il conteggio desiderato fino alla capacità massima. In entrambi i casi, Application Auto Scaling continua a scalare in base alla politica di dimensionamento, ma non modifica il conteggio desiderato.

Se crei il servizio Amazon ECS con CloudFormation o AWS CDK, il valore DesiredCount predefinito è 1. Se aggiorni il servizio Amazon ECS con CloudFormation o AWS CDK, l'applicazione utilizza il valore DesiredCount esistente per le nuove distribuzioni.

Per il valore del conteggio desiderato nello stack CloudFormation o AWS CDK, specifica un valore compreso tra i valori minimo e massimo durante l'aggiornamento del servizio.

Nota: Assicurati che il conteggio desiderato soddisfi le esigenze della configurazione di distribuzione del servizio, in particolare le impostazioni percentuali minima e massima.

Risolvi i problemi di capacità del cluster

Per evitare problemi di capacità, utilizza i provider di capacità Amazon ECS per effettuare il provisioning automatico delle istanze Amazon Elastic Compute Cloud (Amazon EC2).

Per evitare un dimensionamento eccessivo, il dimensionamento automatico utilizza come punto di partenza il conteggio effettivo delle attività in esecuzione in un servizio, non il conteggio desiderato. Se le istanze di container non dispongono di risorse sufficienti per collocare le attività aggiuntive, il dimensionamento automatico non può completare il dimensionamento. Per risolvere questo problema, utilizza provider di capacità per scalare automaticamente la capacità dell'istanza di container. Altrimenti devi aumentare manualmente la capacità dell'istanza di container.

Dopo il tempo di raffreddamento, il dimensionamento automatico continua a scalare le attività. Per le attività di AWS Fargate, utilizza provider di capacità Fargate per gestire la capacità di calcolo.

Il dimensionamento automatico utilizza il conteggio effettivo delle attività in esecuzione, non il conteggio desiderato, come punto di partenza per il dimensionamento. Se le istanze di container non dispongono di risorse sufficienti per collocare le attività aggiuntive, il dimensionamento automatico non può completare l'attività di dimensionamento. Tuttavia, per evitare tentativi di dimensionamento eccessivi che non possono essere soddisfatti, il dimensionamento automatico cerca comunque di scalare il più possibile in base alle risorse disponibili.

Risolvi i problemi di dimensionamento relativi alla rete

Controlla la configurazione delle attività in modalità di rete awsvpc

Quando il dimensionamento automatico aumenta il numero di attività, ogni attività in modalità di rete awsvpc richiede il proprio indirizzo IP. Se le sottoreti del cloud privato virtuale (VPC) non dispongono di un numero sufficiente di indirizzi IP disponibili, il numero di attività non aumenta. Monitora regolarmente l'utilizzo degli indirizzi IP del tuo VPC. Se la configurazione è vicina ai limiti di capacità, utilizza blocchi CIDR più grandi o crea nuove sottoreti.

Le attività Amazon ECS in modalità di rete awsvpc utilizzano interfacce di rete elastiche. Esiste una quota massima per le interfacce di rete totali in ogni tipo di istanza in ogni VPC. Se superi questa quota, le tue attività non vengono avviate. Per verificare l'utilizzo dell'interfaccia di rete, completa i seguenti passaggi:

  1. Apri la console di Amazon EC2.
  2. Nel pannello di navigazione, scegli Interfacce di rete.
  3. Utilizza la colonna ID istanza per visualizzare le istanze a cui è collegata ciascuna interfaccia di rete. Per visualizzare ulteriori informazioni sull'interfaccia di rete, ad esempio indirizzi IP e gruppi di sicurezza, scegli l'interfaccia di rete.

Verifica che la tua configurazione non blocchi il traffico richiesto

I gruppi di sicurezza o le regole della lista di controllo degli accessi alla rete (ACL) possono bloccare il traffico richiesto e causare errori di controllo dell'integrità che portano a eventi di dimensionamento non necessari. Assicurati che i tuoi gruppi di sicurezza consentano il traffico in entrata verso le porte dell'applicazione. Assicurati inoltre che le ACL di rete consentano il traffico in entrata e in uscita tra l'applicazione e Amazon ECS.

Informazioni correlate

Scala automaticamente il tuo servizio Amazon ECS

application-autoscaling

AWS UFFICIALE
AWS UFFICIALEAggiornata 4 mesi fa