

# Selezione
<a name="perf-sel"></a>

 La soluzione ottimale per un determinato carico di lavoro può variare e le soluzioni spesso combinano molteplici approcci. I carichi di lavoro Well-Architected utilizzano soluzioni multiple e impiegano funzionalità diverse per migliorare le prestazioni. 

 Le risorse AWS sono disponibili in numerose tipologie e configurazioni, il che semplifica la ricerca di un approccio che soddisfi appieno le tue esigenze. Inoltre, puoi trovare opzioni che non sono facili da trovare nelle infrastrutture in locale. Ad esempio, un servizio gestito come Amazon DynamoDB offre un database NoSQL interamente gestito, con una latenza di pochissimi millisecondi, indipendentemente dalle dimensioni. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. (Per l'elenco completo delle domande e delle best practice relative all'efficienza delle prestazioni, consulta l' [Appendice](a-performance-efficiency.md).). 


| PERF 1 In che modo selezioni l'architettura più performante? | 
| --- | 
|  Spesso sono necessari molteplici approcci per ottenere prestazioni ottimali in un carico di lavoro. I sistemi Well-Architected utilizzano soluzioni multiple e funzionalità diverse per migliorare le prestazioni.  | 

 Quando selezioni i modelli e l'implementazione per la tua architettura, utilizza un approccio basato sui dati per individuare la soluzione ottimale. I solutions architect AWS, le architetture di riferimento AWS e i partner AWS Partner Network (APN) possono aiutarti a selezionare un'architettura in base alla conoscenza del settore, ma per ottimizzare la tua architettura saranno necessari i dati ottenuti da benchmark o test di carico. 

 La tua architettura può riunire vari approcci architetturali (ad esempio basati sugli eventi, ETL o pipeline). L'implementazione della tua architettura sfrutterà i servizi AWS in grado di ottimizzarne le prestazioni. Nelle sezioni seguenti, osserveremo quattro tipi di risorse principali da prendere in considerazione: elaborazione, storage, database e rete. 

# Calcolo
<a name="perf-compute"></a>

 La selezione delle risorse di calcolo in grado di soddisfare i tuoi requisiti e le tue esigenze di prestazioni e offrire grande efficienza in termini di costi e impegno ti consentirà di ottenere di più con lo stesso numero di risorse. Durante la valutazione delle opzioni di elaborazione, tieni presente i requisiti per le prestazioni del carico di lavoro e i requisiti di costo e utilizzali per prendere decisioni informate. 

 In AWS, l'elaborazione è disponibile in tre forme: istanze, container e funzioni. 
+  **Istanze** sono server virtualizzati che consentono di modificare le loro funzionalità con un pulsante o una chiamata API. Poiché nel cloud le decisioni relative alle risorse non sono cristallizzate nel tempo, è possibile sperimentare vari tipi di server. In AWS, tali istanze di server virtuali sono disponibili in famiglie e dimensioni diverse e offrono un'ampia gamma di funzionalità, tra cui unità a stato solido (SSD) e unità di elaborazione grafica (GPU). 
+  **Container** sono un metodo di virtualizzazione del sistema operativo che consente di eseguire un'applicazione e le relative dipendenze in processi isolati dalle risorse. Puoi scegliere AWS Fargate, un servizio di elaborazione serverless per container, oppure Amazon EC2, se hai bisogno di controllare l'installazione, la configurazione e la gestione del tuo ambiente di elaborazione. Puoi anche scegliere tra diverse piattaforme di orchestrazione di container: Amazon Elastic Container Service (ECS) o Amazon Elastic Kubernetes Service (EKS). 
+  **Funzioni** astraggono l'ambiente di esecuzione dal codice che desideri eseguire. Ad esempio, AWS Lambda ti permette di eseguire del codice senza avviare un'istanza. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. 


| PERF 2 In che modo selezioni la tua soluzione di calcolo? | 
| --- | 
| La soluzione di calcolo ottimale per un determinato carico di lavoro varia in base alla progettazione dell'applicazione, ai modelli di utilizzo e alle impostazioni di configurazione. Le architetture possono utilizzare diverse soluzioni di elaborazione per vari componenti e consentire funzioni diverse per migliorare le prestazioni. Selezionare la soluzione di calcolo sbagliata per un'architettura può portare a una riduzione dell'efficienza delle prestazioni. | 

 Quando pianifichi l'utilizzo della capacità di elaborazione, devi sfruttare i meccanismi di elasticità per garantirti una capacità sufficiente a fornire le giuste prestazioni al variare delle esigenze. 

# Storage
<a name="perf-storage"></a>

 Lo storage sul cloud è un componente fondamentale del cloud computing, poiché predisposto all'archiviazione delle informazioni utilizzate dal carico di lavoro. Lo storage sul cloud è generalmente più affidabile, scalabile e sicuro dei tradizionali sistemi di storage locali. Scegli tra servizi di storage di oggetti, blocchi e file, nonché opzioni di migrazione dei dati nel cloud per il tuo carico di lavoro. 

 In AWS, lo storage è disponibile in tre forme: oggetto, blocco e file: 
+  **Archiviazione di oggetti** fornisce una piattaforma scalabile e durevole per rendere i dati accessibili da qualsiasi posizione Internet per contenuti generati dagli utenti, archivi attivi, computing serverless, storage di Big Data o backup e ripristino. Amazon Simple Storage Service (Amazon S3) è un servizio di storage di oggetti che offre scalabilità, disponibilità dei dati, sicurezza e prestazioni leader di settore. Amazon S3 è progettato per garantire una durabilità del 99,999999999% (11 nove) e memorizza i dati per milioni di applicazioni per aziende in tutto il mondo. 
+  **Lo storage a blocchi** fornisce storage a blocchi a disponibilità elevata, costante e a bassa latenza per ogni host virtuale ed è analogo allo storage collegato direttamente (DAS) o a una rete SAN (Storage Area Network). Amazon Elastic Block Store (Amazon EBS) è stato progettato per carichi di lavoro che richiedono storage persistente accessibile dalle istanze EC2 e consente di ottimizzare le applicazioni con capacità di storage, prestazioni e costi ottimali. 
+  **Lo storage di file** fornisce accesso a un file system condiviso tra più sistemi. Le soluzioni di storage di file come Amazon Elastic File System (EFS) sono ideali per casi d'uso come repository di contenuti di grandi dimensioni, ambienti di sviluppo, store multimediali o home directory. Amazon FSx rende più semplice e conveniente l'avvio e l'esecuzione di file system diffusi in modo da sfruttare le funzionalità avanzate e le prestazioni rapide dei file system open source più utilizzati e con licenza commerciale. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. 


| PERF 3 In che modo selezioni la soluzione di storage? | 
| --- | 
|  La soluzione di storage ottimale per un sistema varia in base a fattori quali: tipo di metodo di accesso (blocco, file od oggetto), schemi di accesso (casuali o sequenziali), throughput necessario, frequenza di accesso (online, offline, archivio), frequenza di aggiornamento (WORM, dinamico) e vincoli di disponibilità e durata. I sistemi Well-Architected utilizzano più soluzioni di storage e consentono funzionalità diverse per migliorare le prestazioni e utilizzare le risorse in modo efficiente.  | 

 Nella scelta di una soluzione di storage, accertarsi che sia in linea con gli schemi di accesso sarà cruciale per raggiungere le prestazioni desiderate. 

# Database
<a name="perf-db"></a>

 Il cloud offre servizi di database dedicati che risolvono i diversi problemi presentati dal carico di lavoro. Puoi scegliere tra diversi motori di database dedicati, tra cui database relazionali, chiave-valore, documento, in memoria, grafi, serie temporali e libri mastri. Scegliendo il database migliore per risolvere un problema specifico o una serie di problematiche, potrai finalmente abbandonare i database monolitici, restrittivi e indifferenziati e concentrarti sulla creazione di applicazioni in grado di rispondere alle esigenze di prestazioni dei tuoi clienti. 

 In AWS puoi scegliere tra più motori di database dedicati, tra cui database relazionali, chiave-valore, documento, in memoria, grafi, serie temporali e libri mastri. Con i database AWS, non devi preoccuparti di attività di gestione dei database come il provisioning dei server, il patching, l'impostazione, la configurazione, i backup o il ripristino. AWS monitora continuamente i cluster per mantenere i carichi di lavoro attivi e funzionanti grazie allo storage auto-riparante e allo scaling automatico, in modo che tu possa concentrarti sullo sviluppo di applicazioni di maggior valore. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. 


| PERF 4 In che modo selezioni la soluzione di database? | 
| --- | 
|  La soluzione di database ottimale per un determinato sistema può variare in base ai requisiti di disponibilità, coerenza, tolleranza della partizione, latenza, durata, scalabilità e capacità di query. Molti sistemi utilizzano diverse soluzioni di database per vari sottosistemi e consentono funzionalità differenti per migliorare le prestazioni. Selezionare la soluzione e le funzionalità del database sbagliate per un sistema può ridurre l'efficienza delle prestazioni.  | 

 L'approccio al database del carico di lavoro ha un impatto significativo sull'efficienza delle prestazioni. Spesso è un'area scelta in base alle impostazioni predefinite dell'organizzazione anziché tramite un approccio basato sui dati. E a proposito di storage, è fondamentale prendere in considerazione gli schemi di accesso del tuo carico di lavoro, nonché valutare se altre soluzioni non basate su database potrebbero risolvere il problema in modo più efficiente (ad esempio utilizzare grafici, serie temporali o un database di storage in memoria). 

# Rete
<a name="perf-network"></a>

 Poiché la rete si trova tra tutti i componenti del carico di lavoro, può avere notevoli ripercussioni positive o negative sulle prestazioni e sul comportamento del carico di lavoro. Esistono anche carichi di lavoro che dipendono in larga misura dalle prestazioni di rete, come nel caso dello High Performance Computing (HPC), dove la comprensione approfondita della rete è importante per migliorare le prestazioni del cluster. È necessario determinare i requisiti del carico di lavoro per larghezza di banda, latenza, jitter e throughput. 

 In AWS, le reti sono virtualizzate e vengono fornite in molti diversi tipi e configurazioni. Ciò semplifica la scelta delle metodologie di rete più adatte alle tue esigenze. AWS offre caratteristiche di prodotto (ad esempio reti avanzate, istanze Amazon EBS ottimizzate per la rete, Amazon S3 Transfer Acceleration e Amazon CloudFront dinamico) pensate per l'ottimizzazione del traffico di rete. AWS offre anche funzionalità di rete (ad esempio instradamento in base alla latenza di Amazon Route 53, endpoint Amazon VPC, AWS Direct Connect e AWS Global Accelerator) per ridurre la distanza di rete o il jitter. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. 


| PERF 5 In che modo configuri la soluzione di rete? | 
| --- | 
|  La soluzione di rete ottimale per un carico di lavoro varia in base a latenza, requisiti di throughput, jitter e larghezza di banda. I vincoli fisici, ad esempio le risorse utente o in locale, determinano le opzioni di posizione. Questi vincoli possono essere compensati con le edge location o la collocazione delle risorse.  | 

 È necessario considerare la posizione quando si distribuisce la rete. Puoi decidere di collocare le risorse vicino al punto in cui saranno utilizzate per ridurre la distanza. Utilizza i parametri di rete per apportare modifiche alla configurazione di rete a mano a mano che il carico di lavoro si evolve. Sfruttando elementi quali regioni, gruppi di collocamento e servizi edge, avrai modo di incrementare le prestazioni in maniera significativa. Le reti basate sul cloud possono essere ricostruite o modificate rapidamente, perciò, per mantenere l'efficienza delle prestazioni, l'architettura di rete deve evolvere nel tempo. 