

# PERF 2. In che modo selezioni e utilizzi le risorse di elaborazione nel tuo carico di lavoro?
<a name="perf-02"></a>

 La soluzione ottimale di elaborazione per un determinato sistema potrebbe variare in base alla progettazione dell'applicazione, ai modelli di utilizzo e alle impostazioni di configurazione. Le architetture possono utilizzare diverse soluzioni di calcolo per vari componenti e impiegare funzionalità diverse per migliorare le prestazioni. Selezionare la soluzione di elaborazione sbagliata per un'architettura può ridurre l'efficienza delle prestazioni. 

**Topics**
+ [PERF02-BP01 Selezione delle migliori opzioni di elaborazione per il carico di lavoro](perf_compute_hardware_select_best_compute_options.md)
+ [PERF02-BP02 Identificazione delle funzionalità e configurazione di calcolo disponibili](perf_compute_hardware_understand_compute_configuration_features.md)
+ [PERF02-BP03 Raccolta dei parametri relativi al calcolo](perf_compute_hardware_collect_compute_related_metrics.md)
+ [PERF02-BP04 Configurazione e dimensionamento corretto delle risorse di elaborazione](perf_compute_hardware_configure_and_right_size_compute_resources.md)
+ [PERF02-BP05 Dimensionamento dinamico delle risorse di elaborazione](perf_compute_hardware_scale_compute_resources_dynamically.md)
+ [PERF02-BP06 Uso di acceleratori di elaborazione ottimizzati basati su hardware](perf_compute_hardware_compute_accelerators.md)

# PERF02-BP01 Selezione delle migliori opzioni di elaborazione per il carico di lavoro
<a name="perf_compute_hardware_select_best_compute_options"></a>

 La selezione dell'opzione di elaborazione più appropriata per il carico di lavoro consente di migliorare le prestazioni, ridurre i costi non necessari dell'infrastruttura e diminuire le attività operative richieste per mantenere il carico di lavoro. 

 **Anti-pattern comuni:** 
+  Si utilizza la stessa opzione di elaborazione utilizzata in locale. 
+  Non si conoscono le opzioni, le funzionalità e le soluzioni di cloud computing e come queste migliorino le prestazioni di elaborazione. 
+  Si dimensiona in eccesso l'opzione di elaborazione per soddisfare i requisiti di dimensionamento o prestazioni, quando il passaggio a una nuova opzione di elaborazione soddisferebbe le caratteristiche del carico di lavoro in modo più preciso. 

 **Vantaggi dell'adozione di questa best practice:** Identificando i requisiti di elaborazione e valutando le opzioni disponibili è possibile rendere il carico di lavoro più efficiente in termini di risorse. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Per ottimizzare i carichi di lavoro cloud e ottenere prestazioni efficienti, è importante selezionare le opzioni di elaborazione più appropriate per il tuo caso d'uso e i requisiti di prestazioni. AWS offre una varietà di opzioni di elaborazione che soddisfano diversi carichi di lavoro nel cloud. Ad esempio, puoi usare [Amazon EC2](https://docs.aws.amazon.com/ec2/) per avviare e gestire server virtuali, [AWS Lambda](https://docs.aws.amazon.com/lambda/?icmpid=docs_homepage_featuredsvcs) eseguire codice senza dover effettuare il provisioning o la gestione dei server, [Amazon ECS](https://aws.amazon.com/ecs/) oppure [Amazon EKS](https://aws.amazon.com/eks/) per eseguire e gestire container, oppure [AWS Batch](https://aws.amazon.com/batch/) per elaborare grandi volumi di dati in parallelo. In base alle tue esigenze di dimensionamento ed elaborazione, scegli e configura la soluzione di elaborazione ottimale per la tua situazione. Puoi anche prendere in considerazione l'utilizzo di più tipi di soluzioni di elaborazione in un unico carico di lavoro in quanto ognuna ha i suoi vantaggi e svantaggi. 

 I passaggi seguenti ti guidano nella selezione delle opzioni di elaborazione giuste per soddisfare le caratteristiche del carico di lavoro e i requisiti prestazionali. 

## Passaggi dell'implementazione
<a name="implementation-steps"></a>

1.  Comprendi i requisiti di elaborazione del tuo carico di lavoro. I requisiti essenziali da considerare includono le esigenze di elaborazione, gli schemi di traffico, gli schemi di accesso ai dati, le esigenze di dimensionamento e i requisiti di latenza. 

1.  Scopri le diverse opzioni di elaborazione disponibili per il tuo carico di lavoro in AWS (come descritto in [PERF01-BP01 Informazioni e identificazione dei servizi e delle funzionalità cloud disponibili](perf_architecture_understand_cloud_services_and_features.md). Ecco alcune importanti opzioni di elaborazione AWS, le caratteristiche e i casi d'uso più comuni:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/wellarchitected/2023-10-03/framework/perf_compute_hardware_select_best_compute_options.html)

1.  Valuta i costi (come la tariffa oraria o il trasferimento dei dati) e il sovraccarico di gestione (come l'applicazione di patch e il dimensionamento) associati a ciascuna opzione di elaborazione. 

1.  Esegui esperimenti e benchmarking in un ambiente non di produzione per identificare quale opzione di elaborazione può soddisfare al meglio i requisiti del tuo carico di lavoro. 

1.  Dopo aver sperimentato e identificato la tua nuova soluzione di calcolo, pianifica la migrazione e convalida i parametri prestazionali. 

1.  Usa strumenti di monitoraggio AWS come [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) e servizi di ottimizzazione come [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) per ottimizzare continuamente le risorse di elaborazione in base a modelli di utilizzo reali. 

 

## Risorse
<a name="resources"></a>

 **Documenti correlati:** 
+  [Elaborazione in cloud con AWS ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [Tipi di istanza Amazon EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [Amazon EKS Container: nodi worker di Amazon EKS ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Container Amazon ECS: Istanze di container di Amazon ECS ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [Funzioni: configurazione della funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 
+ [Prescriptive Guidance for Containers (Guida prescrittiva per i container)](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23containers&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 
+  [Prescriptive Guidance for Serverless (Guida prescrittiva per serverless)](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23serverless&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 

 **Video correlati:** 
+  [How to choose compute option for startups (Come scegliere un'opzione di calcolo per le start-up)](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 
+  [Optimize performance and cost for your AWS compute ](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Amazon EC2 foundations](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [Deploy ML models for inference at high performance and low cost](https://www.youtube.com/watch?v=4FqHt5bmS2o) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw&ref=wellarchitected) 

 **Esempi correlati:** 
+  [Migrating the Web application to containers](https://application-migration-with-aws.workshop.aws/en/container-migration.html) 
+  [Esecuzione di un "Hello, World\$1" serverless](https://aws.amazon.com/getting-started/hands-on/run-serverless-code/) 

# PERF02-BP02 Identificazione delle funzionalità e configurazione di calcolo disponibili
<a name="perf_compute_hardware_understand_compute_configuration_features"></a>

 Comprendi le opzioni e le funzionalità di configurazione disponibili per il tuo servizio di elaborazione in modo da fornire la giusta quantità di risorse e migliorare l'efficienza delle prestazioni. 

 **Anti-pattern comuni:** 
+  Non valuti le opzioni di elaborazione o le famiglie di istanze disponibili rispetto alle caratteristiche del carico di lavoro. 
+  Esegui un provisioning eccessivo delle risorse di elaborazione per soddisfare i requisiti di picco della domanda. 

** Vantaggi dell'adozione di questa best practice:** acquisisci familiarità con le funzionalità e le configurazioni di elaborazione di AWS in modo da poter utilizzare una soluzione di elaborazione ottimizzata per soddisfare le caratteristiche e le esigenze del carico di lavoro.

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Ogni soluzione di elaborazione ha disponibili configurazioni e funzionalità specifiche per supportare caratteristiche e requisiti diversi del carico di lavoro. Scopri in che modo puoi completare al meglio 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à. 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](https://aws.amazon.com/compute-optimizer/)  per scoprire se la tua attuale opzione di elaborazione è adatta ai carichi di lavoro dal punto di vista della CPU e della memoria. 

## Passaggi dell'implementazione
<a name="implementation-steps"></a>

1.  Comprendi i requisiti del carico di lavoro, come CPU, memoria e latenza. 

1.  Consulta la documentazione e le best practice AWS per scoprire le opzioni di configurazione consigliate che possono contribuire a migliorare le prestazioni dell'elaborazione. Ecco alcune opzioni di configurazione chiave da considerare:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/wellarchitected/2023-10-03/framework/perf_compute_hardware_understand_compute_configuration_features.html)

## Risorse
<a name="resources"></a>

 **Documenti correlati:** 
+  [Elaborazione in cloud con AWS ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [Tipi di istanza Amazon EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [Controllo degli stati del processore dell'istanza Amazon EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [Amazon EKS Container: nodi worker di Amazon EKS ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Container Amazon ECS: Istanze di container di Amazon ECS ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [Funzioni: configurazione della funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 

 **Video correlati:** 
+  [Amazon EC2 foundations](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [Optimize performance and cost for your AWS compute](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **Esempi correlati:** 
+  [Rightsizing with Compute Optimizer and Memory utilization enabled (Dimensionamento corretto con Compute Optimizer e l'utilizzo della memoria abilitati)](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer Demo code (Codice dimostrativo di AWS Compute Optimizer)](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP03 Raccolta dei parametri relativi al calcolo
<a name="perf_compute_hardware_collect_compute_related_metrics"></a>

 Registra e monitora i parametri relativi all'elaborazione per comprendere meglio le prestazioni delle tue risorse di elaborazione e migliorarne le prestazioni e l'utilizzo. 

 **Anti-pattern comuni:** 
+  Utilizzi solo i file di log manuali per la ricerca dei parametri.  
+  Utilizzi solo i parametri predefiniti registrati dal software di monitoraggio. 
+  Rivedi i parametri solo quando c'è un problema. 

 **Vantaggi dell'adozione di questa best practice:** la raccolta dei parametri relativi alle prestazioni ti aiuta ad allineare le prestazioni delle applicazioni ai requisiti aziendali per garantire il rispetto delle esigenze dei carichi di lavoro. Può anche aiutarti a migliorare costantemente le prestazioni e l'utilizzo delle risorse del tuo carico di lavoro. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 I carichi di lavoro del cloud possono generare grandi volumi di dati quali parametri, log ed eventi. Nel Cloud AWS, la raccolta dei parametri è un passaggio cruciale per migliorare la sicurezza, l'efficienza in termini di costi, le prestazioni e la sostenibilità. AWS fornisce un'ampia gamma di parametri relativi alle prestazioni utilizzando servizi di monitoraggio, come [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) per fornirti approfondimenti preziosi. Parametri quali l'utilizzo della CPU, l'utilizzo della memoria, l'I/O del disco e il traffico di rete in entrata e in uscita possono fornire approfondimenti sui livelli di utilizzo o sui colli di bottiglia delle prestazioni. Utilizza tali parametri come parte di un approccio basato sui dati per ottimizzare e ottimizzare le risorse del tuo carico di lavoro.  L'ideale sarebbe raccogliere tutti i parametri relativi alle tue risorse di elaborazione in un'unica piattaforma con policy di conservazione implementate per supportare costi e obiettivi operativi. 

## Passaggi dell'implementazione
<a name="implementation-steps"></a>

1.  Identifica quali parametri relativi alle prestazioni sono rilevanti per il tuo carico di lavoro. Raccogli i parametri sull'utilizzo delle risorse e sul modo in cui opera il tuo carico di lavoro nel cloud (come il tempo di risposta e la velocità di trasmissione effettiva). 

   1.  [Parametri predefiniti di Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) 

   1.  [Parametri predefiniti di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html) 

   1.  [Parametri predefiniti di Amazon EKS](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/kubernetes-eks-metrics.html) 

   1.  [Parametri predefiniti di Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-access-metrics.html) 

   1.  [Parametri di memoria e del disco di Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) 

1.  Scegli e configura la soluzione di registrazione e monitoraggio giusta per il tuo carico di lavoro. 

   1.  [Osservabilità nativa di AWS](https://catalog.workshops.aws/observability/en-US/aws-native) 

   1.  [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/) 

   1.  [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html) 

1.  Definisci il filtro e l'aggregazione richiesti per i parametri in base ai requisiti del tuo carico di lavoro. 

   1.  [Quantify custom application metrics with Amazon CloudWatch Logs and metric filters](https://aws.amazon.com/blogs/mt/quantify-custom-application-metrics-with-amazon-cloudwatch-logs-and-metric-filters/) 

   1.  [Collect custom metrics with Amazon CloudWatch strategic tagging](https://aws.amazon.com/blogs/infrastructure-and-automation/collect-custom-metrics-with-amazon-cloudwatch-strategic-tagging/) 

1.  Configura le policy di conservazione dei dati per i parametri in modo che corrispondano ai tuoi obiettivi operativi e di sicurezza. 

   1.  [Conservazione dei dati predefinita per i parametri CloudWatch](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [Conservazione dei dati predefinita per CloudWatch Logs](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

1.  Se necessario, crea allarmi e notifiche per i parametri in modo da rispondere in modo proattivo ai problemi relativi alle prestazioni. 

   1.  [Create alarms for custom metrics using Amazon CloudWatch anomaly detection](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection.html) 

   1.  [Create metrics and alarms for specific web pages with Amazon CloudWatch RUM](https://aws.amazon.com/blogs/mt/create-metrics-and-alarms-for-specific-web-pages-amazon-cloudwatch-rum/) 

1.  Usa l'automazione per implementare gli agenti di aggregazione di parametri e log. 

   1.  [Automazione AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html?ref=wellarchitected) 

   1.  [OpenTelemetry Collector](https://aws-otel.github.io/docs/getting-started/collector) 

## Risorse
<a name="resources"></a>

 **Documenti correlati:** 
+  [Documentazione di Amazon CloudWatch](https://docs.aws.amazon.com/cloudwatch/index.html?ref=wellarchitected) 
+  [Raccolta di parametri e registri da istanze Amazon EC2 e da server on-premise con l'agente di CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html?ref=wellarchitected) 
+  [Accesso a Amazon CloudWatch Logs per AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html?ref=wellarchitected) 
+  [Utilizzo di CloudWatch Logs con istanze di container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_cloudwatch_logs.html?ref=wellarchitected) 
+  [Pubblicazione di parametri personalizzati](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html?ref=wellarchitected) 
+  [AWS Answers: Centralized Logging (AWS Answers: registrazione centralizzata)](https://aws.amazon.com/answers/logging/centralized-logging/?ref=wellarchitected) 
+  [Servizi AWS che pubblicano parametri CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html?ref=wellarchitected) 
+  [Monitoraggio di Amazon EKS su AWS Fargate](https://aws.amazon.com/blogs/containers/monitoring-amazon-eks-on-aws-fargate-using-prometheus-and-grafana/) 

 **Video correlati:** 
+  [Application Performance Management on AWS (Gestione delle prestazioni delle applicazioni su AWS)](https://www.youtube.com/watch?v=5T4stR-HFas&ref=wellarchitected) 

 **Esempi correlati:** 
+  [Level 100: Monitoring with CloudWatch Dashboards (Livello 100: Monitoraggio con i pannelli di controllo CloudWatch)](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [Level 100: Monitoring Windows EC2 instance with CloudWatch Dashboards (Livello 100: Monitoraggio dell'istanza EC2 di Windows con i pannelli di controllo CloudWatch)](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_windows_ec2_cloudwatch/) 
+  [Level 100: Monitoring an Amazon Linux EC2 instance with CloudWatch Dashboards (Livello 100: Monitoraggio dell'istanza EC2 di Amazon Linux con i pannelli di controllo CloudWatch)](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_linux_ec2_cloudwatch/) 

# PERF02-BP04 Configurazione e dimensionamento corretto delle risorse di elaborazione
<a name="perf_compute_hardware_configure_and_right_size_compute_resources"></a>

 Configura e dimensiona correttamente le risorse di elaborazione per soddisfare i requisiti di prestazioni del carico di lavoro ed evitare un utilizzo insufficiente o eccessivo delle risorse. 

 **Anti-pattern comuni:** 
+  Ignori i requisiti di prestazioni del carico di lavoro, con il risultato del provisioning eccessivo o insufficiente delle risorse di elaborazione. 
+  Scegli semplicemente l'istanza più grande o più piccola disponibile per tutti i carichi di lavoro. 
+  Usi una sola famiglia di istanze per semplificare la gestione. 
+  Ignori i suggerimenti di AWS Cost Explorer o Compute Optimizer per il corretto dimensionamento. 
+  Non rivaluti il carico di lavoro in base all'idoneità dei nuovi tipi di istanza. 
+  Certifichi solo un numero limitato di configurazioni di istanza per l'organizzazione. 

 **Vantaggi dell'adozione di questa best practice:** il corretto dimensionamento delle risorse di elaborazione garantisce un funzionamento ottimale nel cloud evitando il provisioning eccessivo o insufficiente delle risorse. Il corretto dimensionamento delle risorse di elaborazione comporta in genere prestazioni ottimali e una migliore esperienza cliente, riducendo al contempo i costi. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Il dimensionamento corretto consente alle organizzazioni di gestire la propria infrastruttura cloud in modo efficiente ed economico, rispettando al contempo le esigenze aziendali. Un provisioning eccessivo delle risorse cloud può comportare costi aggiuntivi, mentre un provisioning insufficiente può comportare prestazioni scadenti e un'esperienza negativa per il cliente. AWS fornisce strumenti come [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) e [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/) che utilizzano dati storici per fornire consigli per dimensionare correttamente le risorse di elaborazione. 

### Passaggi dell'implementazione
<a name="implementation-steps"></a>
+  Scegli il tipo di istanza più adatto alle tue esigenze: 
  +  [Come faccio a scegliere il tipo di istanza Amazon EC2 appropriato per il mio carico di lavoro?](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-choose-type-for-workload/) 
  +  [Selezione del tipo di istanza basata sugli attributi per il parco istanze Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) 
  +  [Create an Auto Scaling group using attribute-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) 
  +  [Optimizing your Kubernetes compute costs with Karpenter consolidation](https://aws.amazon.com/blogs/containers/optimizing-your-kubernetes-compute-costs-with-karpenter-consolidation/) 
+  Analizza le varie caratteristiche di prestazione del tuo carico di lavoro e come queste sono correlate a memoria, rete e utilizzo della CPU. Utilizza questi dati per scegliere le risorse che meglio corrispondono al profilo del tuo carico di lavoro e agli obiettivi di prestazioni. 
+  Monitora l'utilizzo delle risorse con gli strumenti di monitoraggio di AWS come Amazon CloudWatch. 
+  Seleziona la configurazione corretta per la risorsa di elaborazione. 
  +  Per i carichi di lavoro effimeri, valuta le [metriche Amazon CloudWatch dell'istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) , ad esempio `CPUUtilization` per identificare se l'istanza è sottoutilizzata o sovrautilizzata. 
  +  Per i carichi di lavoro stabili, esegui i controlli con gli strumenti di ridimensionamento di AWS, come AWS Compute Optimizer e AWS Trusted Advisor a intervalli regolari per individuare le opportunità di ottimizzazione e ridimensionamento della risorsa di elaborazione. 
    +  [Well-Architected Lab: Raccomandazioni per il dimensionamento corretto ](https://wellarchitectedlabs.com/cost/100_labs/100_aws_resource_optimization/) 
    +  [Well-Architected Lab: dimensionamento corretto con Compute Optimizer ](https://wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/) 
+  Esegui il test delle modifiche apportate alla configurazione in un ambiente non di produzione prima di implementarle in un ambiente live. 
+  Rivaluta costantemente nuove offerte di elaborazione e confrontale con le esigenze del carico di lavoro. 

## Risorse
<a name="resources"></a>

 **Documenti correlati:** 
+  [Elaborazione in cloud con AWS](https://aws.amazon.com/products/compute/) 
+  [Tipi di istanza Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Container Amazon ECS: Istanze di container di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Amazon EKS Container: nodi worker di Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [Funzioni: configurazione della funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [Controllo degli stati del processore dell'istanza Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **Video correlati:** 
+  [Amazon EC2 foundations](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deploy ML models for inference at high performance and low cost](https://www.youtube.com/watch?v=4FqHt5bmS2o) 
+  [Optimize performance and cost for your AWS compute](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 
+  [Semplificare l'elaborazione dei dati per migliorare l'innovazione con strumenti serverless](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 

 **Esempi correlati:** 
+  [Rightsizing with Compute Optimizer and Memory utilization enabled (Dimensionamento corretto con Compute Optimizer e l'utilizzo della memoria abilitati)](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer Demo code (Codice dimostrativo di AWS Compute Optimizer)](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP05 Dimensionamento dinamico delle risorse di elaborazione
<a name="perf_compute_hardware_scale_compute_resources_dynamically"></a>

 Sfrutta l'elasticità del cloud per dimensionare dinamicamente le risorse di elaborazione per soddisfare le tue esigenze ed evitare un provisioning eccessivo o insufficiente per il tuo carico di lavoro. 

 **Anti-pattern comuni:** 
+  Risposta agli allarmi aumentando manualmente la capacità. 
+  Utilizzi le stesse linee guida per il dimensionamento (generalmente infrastruttura statica) di quelle on-premise. 
+  Mantenimento della maggiore capacità dopo un evento di dimensionamento, senza ripristinare quella originale. 

 **Vantaggi dell'adozione di questa best practice:** La configurazione e il test dell'elasticità delle risorse di elaborazione possono aiutarti a risparmiare denaro, mantenere i benchmark delle prestazioni e migliorare l'affidabilità al variare del traffico. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 AWS offre la flessibilità necessaria per dimensionare le risorse in modo dinamico attraverso una varietà di meccanismi di dimensionamento per soddisfare le variazioni della domanda. In combinazione con i parametri relativi all'elaborazione, il dimensionamento dinamico consente ai carichi di lavoro di rispondere automaticamente alle modifiche e utilizzare il set ottimale di risorse di elaborazione per raggiungere l'obiettivo. 

 Puoi adottare varie strategie di approccio per associare l'offerta di risorse alla domanda. 
+  **Approccio al tracciamento degli obiettivi**: monitora il parametro di dimensionamento e aumenta o diminuisci automaticamente la capacità in base alle esigenze. 
+  **Dimensionamento predittivo**: dimensiona in previsione delle tendenze giornaliere e settimanali. 
+  **Approccio basato sulla pianificazione**: imposta il tuo programma di dimensionamento in base alle variazioni di carico prevedibili. 
+  **Scalabilità del servizio**: scegli i servizi (come quelli serverless) che si dimensionano automaticamente per progettazione. 

 Assicurati che le distribuzioni dei carichi di lavoro siano in grado di gestire eventi di dimensionamento. 

### Passaggi dell'implementazione
<a name="implementation-steps"></a>
+  Istanze di elaborazione, container e funzioni forniscono tutti meccanismi di elasticità, in combinazione con il dimensionamento automatico o sotto forma di funzionalità del servizio. Ecco alcuni esempi di meccanismi di dimensionamento automatico:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/wellarchitected/2023-10-03/framework/perf_compute_hardware_scale_compute_resources_dynamically.html)
+  Si parla spesso di dimensionamento con servizi di elaborazione come le istanze Amazon EC2 o le funzioni AWS Lambda. Assicurati di considerare anche la configurazione di servizi non di elaborazione come [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/auto-scaling.html) per soddisfare la domanda. 
+  Verifica che i parametri per il dimensionamento corrispondano alle caratteristiche del carico di lavoro da implementare. Se distribuisci un'applicazione di transcodifica video, è previsto il 100% di utilizzo della CPU e non deve essere il parametro principale. Utilizza la profondità della coda dei processi di transcodifica. Puoi utilizzare una [metrica personalizzata](https://aws.amazon.com/blogs/mt/create-amazon-ec2-auto-scaling-policy-memory-utilization-metric-linux/) per la tua politica di scalabilità, se necessario. 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. 
+  Assicurati di utilizzare il [dimensionamento dinamico](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) invece del [dimensionamento manuale](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html) per il gruppo con Auto Scaling in uso. È consigliabile utilizzare le [policy di dimensionamento del monitoraggio degli obiettivi](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) nel dimensionamento dinamico. 
+  Verifica che le implementazioni dei carichi di lavoro siano in grado di gestire entrambi gli eventi di dimensionamento (aumento e riduzione). Ad esempio, puoi usare la [cronologia delle attività](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html) 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 ulteriori informazioni, consulta [Dimensionamento predittivo con Amazon EC2 Auto Scaling](https://aws.amazon.com/blogs/compute/introducing-native-support-for-predictive-scaling-with-amazon-ec2-auto-scaling/). 

## Risorse
<a name="resources"></a>

 **Documenti correlati:** 
+  [Elaborazione in cloud con AWS](https://aws.amazon.com/products/compute/) 
+  [Tipi di istanza Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Container Amazon ECS: Istanze di container di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Amazon EKS Container: nodi worker di Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [Funzioni: configurazione della funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [Controllo degli stati del processore dell'istanza Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 
+  [Deep Dive on Amazon ECS Cluster Auto Scaling](https://aws.amazon.com/blogs/containers/deep-dive-on-amazon-ecs-cluster-auto-scaling/) 
+  [Introducing Karpenter – An Open-Source High-Performance Kubernetes Cluster Autoscaler](https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/) 

 **Video correlati:** 
+  [Amazon EC2 foundations](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Optimize performance and cost for your AWS compute](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 
+  [Sviluppa un ambiente di calcolo efficiente dal punto di vista dei costi, delle energie e delle risorse](https://www.youtube.com/watch?v=8zsC5e1eLCg) 

 **Esempi correlati:** 
+  [Esempi di gruppo di Amazon EC2 Auto Scaling](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) 
+  [Implement Autoscaling with Karpenter](https://www.eksworkshop.com/beginner/085_scaling_karpenter/) 

# PERF02-BP06 Uso di acceleratori di elaborazione ottimizzati basati su hardware
<a name="perf_compute_hardware_compute_accelerators"></a>

 Usa gli acceleratori hardware per eseguire determinate funzioni in modo più efficiente rispetto alle alternative basate sulla CPU. 

 **Anti-pattern comuni:** 
+  Nel carico di lavoro non hai confrontato un'istanza generica con un'istanza dedicata in grado di offrire prestazioni più elevate e costi inferiori. 
+  Usi gli acceleratori di calcolo basati su hardware per attività in cui sono più efficienti le alternative basate su CPU. 
+  Utilizzo delle GPU non monitorato. 

**Vantaggi dell'adozione di questa best practice:** utilizzando gli acceleratori basati su hardware, come le unità di elaborazione grafica (GPU) e gli FPGA (Field Programmable Gate Array), è possibile eseguire determinate funzioni di elaborazione in modo più efficiente. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Le istanze a calcolo accelerato forniscono l'accesso agli acceleratori di calcolo basati su hardware, come GPU e FPGA. Questi acceleratori hardware eseguono alcune funzioni, come l'elaborazione grafica o la rilevazione della corrispondenza dei modelli di dati, in modo più efficiente rispetto alle alternative basate su CPU. Molti carichi di lavoro accelerati, come il rendering grafico, la transcodifica e il machine learning, sono altamente variabili in termini di utilizzo di risorse. Esegui questo hardware solo per il tempo necessario e disattivalo con l'automazione quando non serve per migliorare l'efficienza complessiva delle prestazioni. 

### Passaggi dell'implementazione
<a name="implementation-steps"></a>
+  Identifica quali [istanze a calcolo accelerato](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html) possono soddisfare le tue esigenze. 
+  Per i carichi di lavoro di machine learning, sfrutta l'hardware specifico per il tuo carico di lavoro, come ad esempio [AWS Trainium](https://aws.amazon.com/machine-learning/trainium/), [AWS Inferentia](https://aws.amazon.com/machine-learning/inferentia/)e [Amazon EC2 DL1](https://aws.amazon.com/ec2/instance-types/dl1/). Le istanze AWS Inferentia come le istanze Inf2 [offrono prestazioni per watt superiori fino al 50% rispetto a istanze Amazon EC2 comparabili](https://aws.amazon.com/machine-learning/inferentia/). 
+  Raccogli i parametri di utilizzo delle istanze a calcolo accelerato. Ad esempio, puoi utilizzare l'agente CloudWatch per raccogliere metriche come `utilization_gpu` e `utilization_memory` per le tue GPU come mostrato nella sezione relativa alla [acquisizione delle metriche della GPU NVIDIA con Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-NVIDIA-GPU.html). 
+  Ottimizza il codice, il funzionamento della rete e le impostazioni degli acceleratori hardware per garantire il pieno utilizzo dell'hardware sottostante. 
  +  [Ottimizza l impostazioni delle GPU](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/optimize_gpu.html) 
  +  [Monitoraggio e ottimizzazione delle GPU nell'AMI per il deep learning](https://docs.aws.amazon.com/dlami/latest/devguide/tutorial-gpu.html) 
  +  [Ottimizzazione dell'I/O per la messa a punto delle prestazioni delle GPU dedicate all'addestramento del deep learning in Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/optimizing-i-o-for-gpu-performance-tuning-of-deep-learning-training-in-amazon-sagemaker/) 
+  Utilizza le librerie e i driver per GPU più recenti e performanti. 
+  Utilizza l'automazione per rilasciare le istanze GPU non in uso. 

## Risorse
<a name="resources"></a>

 **Documenti correlati:** 
+  [Istanze GPU](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#gpu-instances) 
+  [Instanze con AWS Trainium](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#aws-trainium-instances) 
+  [Instanze con AWS Inferentia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#aws-inferentia-instances) 
+  [Progettiamo\$1 Sviluppo di architetture con chip e acceleratori personalizzati](https://aws.amazon.com/blogs/architecture/lets-architect-custom-chips-and-accelerators/) 
+  [Calcolo accelerato](https://aws.amazon.com/ec2/instance-types/#Accelerated_Computing) 
+  [Istanze Amazon EC2 VT1](https://aws.amazon.com/ec2/instance-types/vt1/) 
+  [Come faccio a scegliere il tipo di istanza Amazon EC2 appropriato per il mio carico di lavoro?](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-choose-type-for-workload/) 
+  [Scegli il miglior acceleratore IA e compilatore del modello per l'inferenza nella visione artificiale con Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/choose-the-best-ai-accelerator-and-model-compilation-for-computer-vision-inference-with-amazon-sagemaker/) 

 **Video correlati:** 
+  [How to select Amazon EC2 GPU instances for deep learning](https://www.youtube.com/watch?v=4bVrIbgGWEA&ab_channel=AWSEvents) 
+  [Implementazione dell'inferenza deep learning a costi contenuti](https://www.youtube.com/watch?v=WiCougIDRsw&ab_channel=AWSOnlineTechTalks) 