REL 7: Come si progetta il carico di lavoro per adattarsi ai cambiamenti della domanda?
Un carico di lavoro scalabile fornisce elasticità per aggiungere o rimuovere risorse automaticamente, in modo che vi sia una stretta corrispondenza con la domanda attuale in un dato momento.
Risorse
AWS Auto Scaling: How Scaling Plans Work
What Is Amazon EC2 Auto Scaling?
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
What is Amazon CloudFront?
Distributed Load Testing on AWS: simulate thousands of connected users
Telling Stories About Little's Law
AWS Marketplace: products that can be used with auto scaling
APN Partner: partners that can help you create automated compute solutions
Best practice:
-
Utilizzo dell'automazione per l'acquisizione o il dimensionamento delle risorse: Quando sostituisci risorse danneggiate o ridimensioni il carico di lavoro, automatizza il processo utilizzando servizi AWS gestiti, come Amazon S3 e AWS Auto Scaling. Puoi anche utilizzare strumenti di terze parti ed SDK AWS per automatizzare il dimensionamento.
-
Ottieni le risorse quando viene rilevata la compromissione di un carico di lavoro: All'occorrenza, ridimensiona le risorse in modo reattivo se la disponibilità è influenzata per ripristinare la disponibilità del carico di lavoro.
-
Ottieni risorse dopo aver rilevato che sono necessarie più risorse per un carico di lavoro: Dimensiona le risorse in modo proattivo per soddisfare la domanda ed evitare l'impatto sulla disponibilità.
-
Esecuzione di un test di carico sul carico di lavoro: Adotta un metodo di test del carico per misurare se l'attività di dimensionamento soddisfa i requisiti del carico di lavoro.
Piano di miglioramento
Utilizzo dell'automazione per l'acquisizione o il dimensionamento delle risorse
What is AWS Auto Scaling?
- Configura Auto Scaling su istanze Amazon EC2 e parchi istanze Spot, attività Amazon
ECS, tabelle e indici Amazon DynamoDB, repliche di Amazon Aurora e appliance AWS Marketplace
a seconda dei casi.
Managing throughput capacity automatically with DynamoDB Auto Scaling- Utilizza le operazioni delle API di servizi per specificare gli avvisi, le policy di ridimensionamento e i tempi di riscaldamento e raffreddamento.
What is Elastic Load Balancing?
- Un Application Load Balancer può distribuire il carico in base al percorso.
What is an Application Load Balancer?- Configura un Application Load Balancer per distribuire il traffico su diversi carichi di lavoro in base a un percorso nello stesso nome di dominio.
- Gli Application Load Balancer possono essere utilizzati per distribuire i carichi
in modo da gestire la domanda attraverso l'integrazione con AWS Auto Scaling.
Using a load balancer with an Auto Scaling group
- I Network Load Balancer possono distribuire il carico in base alla connessione.
What is a Network Load Balancer?- Configura un Network Load Balancer per distribuire il traffico su diversi carichi di lavoro tramite TCP o per disporre di un set costante di indirizzi IP per il carico di lavoro.
- I Network Load Balancer possono essere utilizzati per distribuire i carichi in modo da gestire la domanda attraverso l'integrazione con AWS Auto Scaling.
- Uso di Amazon Route 53 o un provider DNS affidabile
What is Amazon Route 53? - Utilizza Route 53 per gestire le distribuzioni CloudFront e i sistemi di bilanciamento
del carico.
- Individua i domini e i sottodomini da gestire.
- Crea set di record appropriati utilizzando record ALIAS o CNAME.
Working with records
- AWS Global Accelerator è un servizio che migliora la disponibilità e le prestazioni
delle applicazioni con utenti locali o globali, fornendo indirizzi IP statici che
fungono da punto di ingresso fisso agli endpoint delle applicazioni in una o più regioni
AWS, ad esempio Application Load Balancer, Network Load Balancer o istanze Amazon
EC2.
What Is AWS Global Accelerator?
What is Amazon CloudFront?
- Configura le distribuzioni di Amazon CloudFront per i carichi di lavoro oppure utilizza
una CDN di terze parti.
- Puoi limitare l'accesso ai tuoi carichi di lavoro in modo che siano accessibili solo da CloudFront utilizzando gli intervalli di indirizzi IP per CloudFront nelle policy di accesso o nei gruppi di sicurezza degli endpoint.
Ottieni le risorse quando viene rilevata la compromissione di un carico di lavoro
- Utilizza piani di dimensionamento, che sono il componente base di AWS Auto Scaling.
Questo ti permette di configurare un set di istruzioni per dimensionare le risorse.
Se lavori con AWS CloudFormation o aggiungi tag alle risorse AWS, puoi impostare piani
di dimensionamento per diversi set di risorse, per ciascuna applicazione. AWS Auto
Scaling fornisce raccomandazioni per strategie di dimensionamento personalizzate per
ogni risorsa. Dopo aver creato il piano, AWS Auto Scaling combina i metodi di dimensionamento
dinamico e predittivo per supportare la tua strategia di dimensionamento.
AWS Auto Scaling: How Scaling Plans Work - Grazie ad Amazon EC2 Auto Scaling, puoi essere certo di avere il numero corretto di
istanze Amazon EC2 disponibili per gestire il carico dell'applicazione. È possibile
creare raccolte di istanze EC2, denominate gruppi Auto Scaling. È possibile specificare
il numero minimo di istanze in ciascun gruppo Auto Scaling e Amazon EC2 Auto Scaling
garantisce che il gruppo non scenda mai al di sotto di tale quantità. È possibile
specificare il numero massimo di istanze in ciascun gruppo Auto Scaling e Amazon EC2
Auto Scaling garantisce che il gruppo non superi mai tale quantità.
What Is Amazon EC2 Auto Scaling? - L'Auto Scaling di Amazon DynamoDB utilizza il servizio AWS Application Auto Scaling
per regolare dinamicamente la capacità di throughput assegnata per tuo conto, in risposta
ai modelli di traffico effettivi. Ciò consente a una tabella o a un indice secondario
globale di aumentare la capacità di lettura e scrittura assegnata per gestire aumenti
di traffico improvvisi, senza throttling.
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
Ottieni risorse dopo aver rilevato che sono necessarie più risorse per un carico di
lavoro
- Valuta quante risorse di calcolo sono necessarie (simultaneità di calcolo) per gestire
un determinato tasso di richiesta
Telling Stories About Little's Law - Quando si dispone di un modello cronologico per l'utilizzo, imposta il dimensionamento
pianificato per Amazon EC2 Auto Scaling
Scheduled Scaling for Amazon EC2 Auto Scaling - Utilizza il dimensionamento predittivo di AWS
Predictive Scaling for EC2, Powered by Machine Learning
Esecuzione di un test di carico sul carico di lavoro
Distributed Load Testing on AWS: simulate thousands of connected users
- Identifica la combinazione di richieste: Potresti avere diverse combinazioni di richieste, quindi dovresti esaminare vari intervalli di tempo per identificare la combinazione di traffico.
- Implementa un driver di caricamento: Puoi utilizzare codice personalizzato, software open source o software commerciale per implementare un driver di carico.
- Esegui un test di carico iniziale con una capacità ridotta: Puoi vedere alcuni effetti immediati applicando il carico su una capacità inferiore, possibilmente pari a un'istanza o a un container.
- Esegui un test di carico con una capacità maggiore: Gli effetti saranno diversi su un carico distribuito, quindi è necessario eseguire il test in condizioni quanto più simili possibili all'ambiente del prodotto.