PERF02-BP02 Identificazione delle opzioni di configurazione di calcolo disponibili - Framework AWS Well-Architected

PERF02-BP02 Identificazione delle opzioni di configurazione di calcolo disponibili

Ogni soluzione di calcolo offre opzioni e configurazioni utili per supportare le caratteristiche del tuo carico di lavoro. Scopri in che modo le varie opzioni completano il tuo carico di lavoro e quali opzioni di configurazione sono le migliori per la tua applicazione. Esempi di tali opzioni includono la famiglia di istanze, le dimensioni, le caratteristiche (GPU, I/O), il bursting, i timeout, le dimensioni delle funzioni, le istanze di container e la simultaneità.

Risultato desiderato: le caratteristiche del carico di lavoro, tra cui CPU, velocità di trasmissione effettiva della rete, GPU, IOPS, schemi di traffico e di accesso ai dati, vengono documentate e utilizzate per configurare la soluzione di calcolo più adatta a tali caratteristiche. Tutti questi parametri, più altri personalizzati specifici del carico di lavoro, vengono registrati, monitorati e, quindi, utilizzati per ottimizzare la configurazione di calcolo perché risponda in modo ideale ai requisiti.

Anti-pattern comuni:

  • Utilizzo della stessa soluzione di calcolo utilizzata on-premise.

  • Mancata analisi delle opzioni di calcolo o della famiglia di istanze perché soddisfino le caratteristiche del carico di lavoro.

  • Sovradimensionamento del calcolo per garantire capacità di bursting.

  • Utilizzi più piattaforme di gestione del calcolo per lo stesso carico di lavoro.

Vantaggi dell'adozione di questa best practice: Acquisisci familiarità con le offerte di calcolo AWS per poter stabilire qual è la soluzione corretta per ogni carico di lavoro. Dopo aver selezionato le offerte di calcolo per il carico di lavoro, puoi verificare rapidamente se soddisfano in modo ideale le relative esigenze. Una soluzione di calcolo ottimizzata per soddisfare le caratteristiche del carico di lavoro migliorerà le prestazioni, ridurrà i costi e garantirà maggiore affidabilità.

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

Guida all'implementazione

Se per il carico di lavoro è stata utilizzata la stessa opzione di calcolo per oltre quattro settimane e sai già che le caratteristiche resteranno uguali in futuro, puoi utilizzare AWS Compute Optimizer che ti fornirà un suggerimento in base alle caratteristiche di calcolo emerse. Se non puoi avvalerti di AWS Compute Optimizer per mancanza di parametri, perché il tipo di istanza non è supportato o perché prevedi cambiamenti nelle caratteristiche, dovrai eseguire una previsione dei parametri in base ai test di carico e alla sperimentazione. 

Passaggi dell'implementazione:

  1. Il carico di lavoro è in esecuzione su istanze o container EC2 con tipo di avvio EC2?

    1. Per il tuo carico di lavoro è possibile utilizzare GPU per migliorare le prestazioni?

      1. Le istanze di calcolo accelerate sono istanze basate su GPU che forniscono le migliori prestazioni per addestramento di machine learning, inferenza e calcolo ad alte prestazioni.

    2. Nel carico di lavoro sono in esecuzione applicazioni di inferenza di machine learning?

      1. AWS Inferentia (Inf1) - Le istanze Inf1 sono create per supportare le applicazioni di inferenza di machine learning. Utilizzando le istanze Inf1, i clienti possono eseguire applicazioni di inferenza di machine learning su larga scala, tra cui riconoscimento di immagini, riconoscimento vocale, elaborazione del linguaggio naturale, personalizzazione e rilevamento di attività fraudolente. Puoi creare un modello in uno dei framework di machine learning più utilizzati, ad esempio TensorFlow, PyTorch o MXNet, e utilizzare istanze GPU per addestrare il modello. Dopo avere addestrato il modello di machine learning per soddisfare i requisiti, puoi distribuirlo su istanze Inf1 utilizzando AWS Neuron, un Software Development Kit (SDK) specializzato composto da un compilatore, runtime e strumenti di profilatura che ottimizzano le prestazioni di inferenza di machine learning dei chip Inferentia.

    3. Il tuo carico di lavoro si integra con l'hardware a basso livello per migliorare le prestazioni? 

      1. Field Programmable Gate Arrays (FPGA) - Gli FPGA ti consentono di ottimizzare i carichi di lavoro tramite l'esecuzione personalizzata con accelerazione hardware per quelli più impegnativi. Puoi definire gli algoritmi sfruttando i linguaggi di programmazione generale come C o Go oppure linguaggi orientati all'hardware come Verilog o VHDL.

    4. Disponi di almeno quattro settimane di parametri e puoi già prevedere che gli schemi di traffico e i parametri resteranno pressoché invariati in futuro?

      1. Utilizzo Compute Optimizer per avere un suggerimento di machine learning riguardo alla configurazione più adatta alle tue caratteristiche di calcolo.

    5. Le prestazioni del tuo carico di lavoro sono limitate dai parametri della CPU? 

      1. Le istanze ottimizzate per il calcolo sono ideali per i carichi di lavoro che richiedono processori a elevate prestazioni. 

    6. Le prestazioni del tuo carico di lavoro sono limitate dai parametri della memoria? 

      1. Le istanze ottimizzate per la memoria offrono grandi quantità di memoria per carichi di lavoro intensivi in questo senso.

    7. Le prestazioni del tuo carico di lavoro sono limitate da IOPS?

      1. Le istanze ottimizzate per l'archiviazione sono progettate per carichi di lavoro che richiedono un accesso frequente e sequenziale in lettura e scrittura (IOPS) all'archiviazione locale.

    8. Le caratteristiche del tuo carico di lavoro rappresentano un insieme equilibrato di esigenze relativo a tutti i parametri?

      1. La CPU del tuo carico di lavoro deve eseguire il bursting per gestire picchi di traffico?

        1. Le istanze a prestazioni espandibili sono simili alle istanze ottimizzate per il calcolo, ma offrono anche possibilità di espansione oltre la linea di base per la CPU identificata in un'istanza ottimizzata per il calcolo.

      2. Le istanze per uso generico offrono un bilanciamento di tutte le caratteristiche a supporto di molti carichi di lavoro diversi.

    9. La tua istanza di calcolo è in esecuzione su Linux e limitata dalla velocità di trasmissione effettiva della rete sulla scheda dell'interfaccia di rete?

      1. Revisione la domanda sulle prestazioni n. 5, best practice 2: Valutazione delle funzionalità di rete disponibili per trovare il tipo e la famiglia di istanze ideali per soddisfare le tue esigenze prestazionali.

    10. Il tuo carico di lavoro ha bisogno di istanze coerenti e prevedibili in una specifica zona di disponibilità per cui puoi impegnarti per un anno? 

      1. le istanze riservate confermano le prenotazioni della capacità in una specifica zona di disponibilità. Queste istanze sono ideali per chi necessita di potenza di calcolo in una specifica zona di disponibilità. 

    11. Il tuo carico di lavoro include licenze che richiedono hardware dedicato?

      1. Host dedicati supportano le licenze software esistenti e ti aiutano a soddisfare i requisiti di conformità.

    12. La tua soluzione di calcolo si espande e richiede elaborazione sincrona?

      1. Le istanze on demand ti consentono di utilizzare la capacità di calcolo su base oraria o al secondo, senza impegni a lungo termine, e sono ideali per il bursting oltre le esigenze di base per le prestazioni.

    13. La tua soluzione di calcolo è stateless, tollerante ai guasti e asincrona? 

      1. Istanze Spot ti consentono di sfruttare la capacità non utilizzata nell'istanza per i carichi di lavoro stateless e tolleranti ai guasti. 

  2. Esegui container su Fargate?

    1. Le prestazioni della tua attività sono limitate dalla memoria o dalla CPU?

      1. Utilizza lo strumento per i suggerimenti sulla dimensione dell'attività per regolare la memoria o la CPU.

    2. Le prestazioni sono influenzate da picchi nello schema di traffico?

      1. Utilizza lo strumento per i suggerimenti Auto Scaling per trovare la configurazione adatta ai tuoi schemi di traffico.

  3. La tua soluzione di calcolo è su Lambda?

    1. Disponi di almeno quattro settimane di parametri e puoi già prevedere che gli schemi di traffico e i parametri resteranno pressoché invariati in futuro?

      1. Utilizzo Compute Optimizer per avere un suggerimento di machine learning riguardo alla configurazione più adatta alle tue caratteristiche di calcolo.

    2. Non hai parametri a sufficienza per utilizzare AWS Compute Optimizer?

      1. Se non hai parametri a sufficienza per utilizzare Compute Optimizer, scegli AWS Lambda Power Tuning per selezionare la configurazione migliore.

    3. Le prestazioni della tua funzione sono limitate dalla memoria o dalla CPU?

      1. Configura la memoria Lambda perché soddisfi i parametri relativi alle tue esigenze prestazionali.

    4. La tua funzione va in timeout durante l'esecuzione?

    5. Le prestazioni della tua funzione sono limitate da picchi di attività e simultaneità? 

      1. Configura le impostazioni di simultaneità perché soddisfino le tue esigenze prestazionali.

    6. La tua funzione è in esecuzione asincrona e riscontra errori nei nuovi tentativi?

      1. Configura l'età massima dell'evento e il limite massimo di nuovi tentativi nelle impostazioni della configurazione asincrona .

Livello di impegno per il piano di implementazione: 

Per attuare questa best practice è necessario conoscere caratteristiche e parametri attuali del calcolo. Raccogliere tali parametri, definire una linea di base e, quindi, utilizzare i parametri per identificare l'opzione ideale per il calcolo richiede un livello di impegno da basso a moderato . La convalida migliore passa attraverso test di carico e sperimentazioni.

Risorse

Documenti correlati:

Video correlati:

Esempi correlati: