Ottimizzazione del dimensionamento automatico del cluster Amazon ECS - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottimizzazione del dimensionamento automatico del cluster Amazon ECS

I clienti che eseguono Amazon ECS su Amazon EC2 possono sfruttare il dimensionamento automatico dei cluster per gestire il dimensionamento dei gruppi Amazon EC2 Auto Scaling. Con il dimensionamento automatico dei cluster, puoi configurare Amazon ECS per scalare automaticamente il tuo gruppo Auto Scaling e concentrarti esclusivamente sull'esecuzione delle tue attività. Amazon ECS garantisce che il gruppo Auto Scaling aumenti e si riduca orizzontalmente in base alle necessità senza ulteriori interventi. I provider di capacità Amazon ECS vengono utilizzati per gestire l'infrastruttura nel cluster, garantendo che vi siano istanze di container sufficienti a soddisfare le esigenze dell'applicazione. Per scoprire come funziona il dimensionamento automatico dei cluster, consulta Deep Dive on Amazon ECS Cluster Auto Scaling.

La scalabilità automatica del cluster si basa su un'integrazione CloudWatch basata con il gruppo Auto Scaling per la regolazione della capacità del cluster. Pertanto ha una latenza intrinseca associata a

  • Pubblicazione delle metriche, CloudWatch

  • Il tempo impiegato dalla metrica per CapacityProviderReservation violare gli CloudWatch allarmi (sia alti che bassi)

  • Il tempo necessario per la preparazione di un'istanza Amazon EC2 appena avviata. È possibile eseguire le seguenti azioni per rendere il dimensionamento automatico dei cluster più reattivo e velocizzare le implementazioni:

Scalabilità graduale delle dimensioni del provider di capacità

I fornitori di capacità di Amazon ECS sceglieranno grow/shrink le istanze di container per soddisfare le esigenze della tua applicazione. Il numero minimo di istanze che Amazon ECS avvierà è impostato su 1 per impostazione predefinita. Ciò potrebbe comportare un aumento dei tempi di implementazione, qualora fossero necessarie diverse istanze per l'esecuzione delle attività in sospeso. Puoi aumentare il valore minimumScalingStepSize tramite l'API Amazon ECS per aumentare il numero minimo di istanze che Amazon ECS scala in entrata o in uscita alla volta. Un valore maximumScalingStepSize troppo basso può limitare il numero di istanze di container scalate in entrata o in uscita alla volta, rallentando le implementazioni.

Nota

Questa configurazione è attualmente disponibile solo tramite o. CreateCapacityProviderUpdateCapacityProvider APIs

Periodo di preparazione dell'istanza

Il periodo di riscaldamento dell'istanza è il periodo di tempo dopo il quale un'istanza Amazon EC2 appena lanciata può contribuire CloudWatch ai parametri per il gruppo Auto Scaling. Allo scadere del periodo di preparazione specificato, l'istanza viene conteggiata nelle metriche aggregate del gruppo Auto Scaling e il cluster di dimensionamento automatico procede con la successiva iterazione dei calcoli per stimare il numero di istanze richieste.

Il valore predefinito per instanceWarmupPeriodè 300 secondi, che puoi configurare su un valore inferiore tramite CreateCapacityProvidero UpdateCapacityProvider APIs per un ridimensionamento più reattivo. Consigliamo di impostare un valore superiore a 60 secondi in modo da evitare un eccessivo provisioning.

Capacità di riserva

Se il tuo provider di capacità non dispone di istanze di container per l'inserimento delle attività, deve aumentare orizzontalmente la capacità del cluster avviando immediatamente le istanze Amazon EC2 e attendere che si avviino prima di poter avviare container su di esse. Questo può ridurre significativamente la velocità di avvio delle attività. Sono quindi disponibili due opzioni.

In questo caso, disporre di capacità Amazon EC2 di riserva già avviata e pronta per l'esecuzione delle attività aumenterà la velocità effettiva di avvio delle attività. Puoi usare la configurazione Target Capacity per indicare che vuoi mantenere una capacità di riserva nei cluster. Ad esempio, impostando Target Capacity all'80%, indichi che il cluster necessita di una capacità di riserva del 20% in ogni momento. Questa capacità di riserva consente di avviare immediatamente qualsiasi attività autonoma, garantendo che l'avvio delle attività non sia limitato. Il compromesso, nel caso di questo approccio, è il potenziale aumento dei costi legati al mantenimento della capacità di riserva del cluster.

Un approccio alternativo che si può prendere in considerazione è quello di aggiungere margine di manovra al tuo servizio, e non al provider di capacità. Ciò significa che invece di ridurre la configurazione della Target Capacity per avviare la capacità di riserva, puoi aumentare il numero di repliche nel servizio modificando la metrica di dimensionamento di monitoraggio delle destinazioni o le soglie di dimensionamento graduale del dimensionamento automatico. Tieni presente che questo approccio sarà utile solo per i carichi di lavoro soggetti a picchi, ma non avrà alcun effetto quando si implementano nuovi servizi e si passa da 0 a N attività per la prima volta. Per ulteriori informazioni sui criteri di dimensionamento correlati, consulta le Target Tracking Scaling Policies o Step Scaling Policies nella Guida per gli sviluppatori di Amazon Elastic Container Service.