SUS02-BP01 Scala dinamicamente l'infrastruttura dei carichi di lavoro - Framework AWS Well-Architected

SUS02-BP01 Scala dinamicamente l'infrastruttura dei carichi di lavoro

Usa l'elasticità del cloud e dimensiona la tua infrastruttura in modo dinamico per rispondere alla richiesta di fornitura di risorse cloud ed evitare capacità sovra-assegnate nel tuo carico di lavoro.

Anti-pattern comuni:

  • Mancato dimensionamento dell'infrastruttura in base al carico degli utenti.

  • Costante dimensionamento manuale dell'infrastruttura.

  • Dopo un evento di dimensionamento, lasci una capacità aumentata anziché ridurre il dimensionamento.

vantaggi derivanti dall'applicazione di questa best practice: la configurazione e il test dell'elasticità dei carichi di lavoro aiuta ad abbiinare correttamente richiesta e fornitura di risorse cloud e a evitare capacità sovra-assegnate. Puoi sfruttare i vantaggi dell'elasticità nel cloud per dimensionare automaticamente la capacità durante e dopo i picchi di richiesta ed essere sicuro di utilizzare solo il numero esatto di risorse necessario per soddisfare le esigenze aziendali.

Livello di rischio associato se questa best practice non fosse adottata: medio

Guida all'implementazione

Il cloud offre la flessibilità necessaria per espandere o ridurre le risorse in modo dinamico attraverso una serie di meccanismi per soddisfare i cambiamenti della domanda. La corrispondenza ottimale tra offerta e domanda consente l'impatto ambientale più basso per un carico di lavoro.

La domanda può essere fissa o variabile e richiede parametri e automazione, allo scopo di garantire che la gestione non diventi particolarmente onerosa. Le applicazioni possono essere dimensionate verticalmente (verso l'alto o verso il basso) modificando la dimensione dell'istanza, orizzontalmente (aumentando o diminuendo) modificando il numero di istanze o tramite una combinazione delle due opzioni.

Puoi adottare varie strategie di approccio per associare l'offerta di risorse alla domanda.

  • Approccio di monitoraggio del target: monitora il parametro di dimensionamento e aumenta o diminuisci automaticamente la capacità in base alle esigenze.

  • Dimensionamento predittivo: dimensiona l'anticipazione di tendenze giornaliere e settimanali.

  • Approccio basato sulla pianificazione: imposta la tua pianificazione di dimensionamento in base a modifiche di carico prevedibili.

  • Dimensionamento dei servizi: scegli i servizi (come il serverless) che usano il dimensionamento in modo nativo per impostazione predefinita o che forniscono il dimensionamento automatico come funzionalità.

Identifica i periodi di utilizzo assente o ridotto e dimensiona le risorse per evitare capacità in eccesso e migliorare il livello di efficienza.

Passaggi dell'implementazione

  • L'elasticità corrisponde all'offerta di risorse disponibili rispetto alla relativa domanda. Istanze, container e funzioni offrono meccanismi di elasticità, sia insieme al dimensionamento automatico sia come funzionalità del servizio. AWS offre una gamma di meccanismi di dimensionamento automatico per avere la certezza che i carichi di lavoro possano essere ridotti facilmente e velocemente nei periodi di basso carico di utenti. Ecco alcuni esempi di meccanismi di dimensionamento automatico:

    Auto scaling mechanism Where to use

    Amazon EC2 Auto Scaling

    Usalo per verificare che sia disponibile il numero corretto di istanze Amazon EC2 per gestire il carico degli utenti dell'applicazione.

    Application Auto Scaling

    Usalo per dimensionare automaticamente le risorse per servizi AWS diversi da Amazon EC2, ad esempio funzioni Lambda o servizi Amazon Elastic Container Service (Amazon ECS).

    Kubernetes Cluster Autoscaler

    Usalo per dimensionare automaticamente i cluster Kubernetes su AWS.

  • Si parla spesso di dimensionamento con servizi di elaborazione come le istanze Amazon EC2 o le funzioni AWS Lambda. Considera la configurazione di servizi non di elaborazione come unità di capacità di lettura e scrittura Amazon DynamoDB o partizioni Amazon Kinesis Data Streams per rispondere alle richieste.

  • Verifica che le metriche per il dimensionamento verticale o orizzontale siano convalidate in base al tipo di carico di lavoro implementato. Se distribuisci un'applicazione di transcodifica video, è previsto il 100% di utilizzo della CPU e non deve essere il parametro principale. Se necessario, puoi usare una metrica personalizzata (come l'uso della memoria) per la tua politica di dimensionamento. Per scegliere la metrica corretta, consulta le linee guida seguenti per Amazon EC2:

    • La metrica deve essere una metrica di utilizzo valida e descrivere il livello di impiego di un'istanza.

    • Il valore della metrica deve aumentare o diminuire proporzionalmente in base al numero di istanze nel gruppo con Auto Scaling.

  • Usa il dimensionamento dinamico invece del dimensionamento manuale per il tuo gruppo Auto Scaling. Ti consigliamo anche di usare politiche di dimensionamento del monitoraggio degli obiettivi nel tuo dimensionamento dinamico.

  • Verifica che le implementazioni dei carichi di lavoro siano in grado di gestire eventi di dimensionamento orizzontale. Crea scenari di test per eventi di dimensionamento orizzontale per verificare che il carico di lavoro si comporti secondo le aspettative e che non incida sull'esperienza utente (come nel caso della perdita di sessioni permanenti). Puoi usare la Cronologia delle attività per verificare un'attività di dimensionamento per un gruppo Auto Scaling.

  • Analizza il tuo carico di lavoro per individuare modelli prevedibili e dimensionare le tue risorse in modo proattivo, anticipando variazioni nella domanda previste e pianificate. Con il dimensionamento predittivo puoi eliminare la necessità di offrire capacità in eccedenza. Per maggiori dettagli consulta Dimensionamento predittivo con Amazon EC2 Auto Scaling.

Risorse

Documenti correlati:

Video correlati:

Esempi correlati: