REL07-BP01 Utilizzo dell'automazione per l'acquisizione o il dimensionamento delle risorse - Framework AWSWell-Architected

REL07-BP01 Utilizzo dell'automazione per l'acquisizione o il dimensionamento delle risorse

Quando sostituisci risorse danneggiate o procedi a scalare il carico di lavoro, puoi automatizzare il processo utilizzando servizi AWS gestiti, come Amazon S3 e AWS Auto Scaling. Puoi anche utilizzare strumenti di terze parti e SDK AWS per automatizzare il dimensionamento.

I servizi AWS gestiti includono Amazon S3, Amazon CloudFront, AWS Auto Scaling, AWS Lambda, Amazon DynamoDB, AWS Fargate e Amazon Route 53.

AWS Auto Scaling consente di rilevare e sostituire le istanze danneggiate. Inoltre, consente di creare piani di dimensionamento per risorse, tra cui istanze Amazon EC2 e parchi istanze spot, attività Amazon ECS, tabelle e indici Amazon DynamoDBrepliche di Amazon Aurora.

Durante il dimensionamento di istanze EC2, assicurati di utilizzare più zone di disponibilità (preferibilmente almeno tre) e di aggiungere o rimuovere capacità per mantenere il bilanciamento tra queste zone. Anche le attività ECS o i pod Kubernetes (quando si utilizza Amazon Elastic Kubernetes Service) devono essere distribuiti su più zone di disponibilità.

Quando utilizzi AWS Lambda, le istanze subiscono un dimensionamento automatico. Ogni volta che viene ricevuta una notifica di evento per la funzione, AWS Lambda individua rapidamente la capacità libera all'interno del parco istanze di calcolo ed esegue il codice fino alla simultaneità allocata. Devi assicurarti che la simultaneità necessaria sia configurata sulla Lambda specifica e in Service Quotas.

Amazon S3 procede a scalare in automatico le risorse per gestire elevati tassi di richiesta. Ad esempio, l'applicazione può ottenere almeno 3.500 richieste PUT/COPY/POST/DELETE o 5.500 richieste GET/HEAD al secondo per prefisso in un bucket. Non esistono limiti al numero di prefissi in un bucket. È possibile aumentare le proprie performance in lettura o scrittura parallelizzando le scritture. Ad esempio, se si creano 10 prefissi in un bucket Amazon S3 per parallelizzare le letture, è possibile scalare le prestazioni di lettura a 55.000 richieste di lettura al secondo.

Configura e usa Amazon CloudFront o una rete di distribuzione di contenuti (CDN) affidabile. Una CDN può fornire tempi di risposta più rapidi agli utenti finali e può servire le richieste di contenuti dalla cache, riducendo così la necessità di dimensionare il carico di lavoro.

Anti-pattern comuni:

  • Implementare gruppi Auto Scaling per la correzione automatica, ma senza elasticità.

  • Utilizzare il dimensionamento automatico per rispondere a grandi aumenti di traffico.

  • Implementare applicazioni altamente stateful, eliminando l'opzione di elasticità.

Vantaggi dell'adozione di questa best practice: l'automazione elimina il potenziale di errori manuali nell'implementazione e nella disattivazione delle risorse. L'automazione elimina il rischio di superamento dei costi e di rifiuto del servizio a causa della risposta lenta alle esigenze di implementazione o disattivazione.

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

Guida all'implementazione

  • Configura e utilizza AWS Auto Scaling. In questo modo è possibile monitorare le applicazioni e regolare automaticamente la capacità per mantenere prestazioni stabili e prevedibili al minor costo possibile. Grazie ad AWS Auto Scaling, puoi configurare il dimensionamento delle applicazioni per più risorse in vari servizi.

  • Utilizza Elastic Load Balancing I bilanciatori del carico possono distribuire il carico in base al percorso o alla connettività di rete.

    • Cos'è l'Elastic Load Balancing?

      • Un Application Load Balancer può distribuire il carico in base al percorso.

      • I Network Load Balancer possono distribuire il carico in base alla connessione.

        • Cos'è un 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.

  • Usa un provider DNS altamente disponibile. I nomi DNS consentono agli utenti di accedere ai carichi di lavoro utilizzando nomi anziché indirizzi IP e distribuire queste informazioni in un ambito definito, solitamente a livello globale per gli utenti del carico di lavoro.

    • Usa Amazon Route 53 o un provider DNS affidabile.

    • Utilizza Route 53 per gestire le distribuzioni CloudFront e i bilanciatori del carico.

      • Individua i domini e i sottodomini da gestire.

      • Crea set di record appropriati utilizzando record ALIAS o CNAME.

  • Utilizza la rete globale AWS per ottimizzare il percorso dagli utenti alle applicazioni. AWS Global Accelerator monitora costantemente lo stato degli endpoint delle applicazioni e reindirizza il traffico verso endpoint integri in meno di 30 secondi

    • AWS Global Accelerator è il 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.

  • Configura e usa Amazon CloudFront o una rete di distribuzione di contenuti (CDN) affidabile. Una rete di distribuzione di contenuti (CDN) può fornire tempi di risposta più rapidi agli utenti finali e soddisfare richieste di contenuti che possono causare un dimensionamento non necessario dei carichi di lavoro.

    • 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.

Risorse

Documenti correlati: