Tipi di istanze AWS EC2: sfide e best practice per ospitare le tue applicazioni su AWS

Business partner che pianificano nuove strategie

Quando si tratta di ospitare applicazioni su Amazon Web Services (AWS), una delle decisioni più importanti da prendere è quale tipo di istanza Amazon Elastic Compute Cloud (EC2) scegliere. Le istanze EC2 sono macchine virtuali che ti permettono di eseguire le tue applicazioni su AWS. Esistono in varie dimensioni e configurazioni, note come famiglie di istanze, ciascuna progettata per uno scopo specifico. Scegliere l'offerta di istanze e le dimensioni appropriate per la propria applicazione è critico per ottimizzare le prestazioni e ridurre i costi. Tuttavia, poiché il profilo di domanda di ogni applicazione è unico, e può cambiare nel tempo, questo compito è molto più facile a dirsi che a farsi. L'istanza 2xlarge di una determinata famiglia potrebbe non essere necessaria, ma quando i team delle applicazioni affidano al reparto cloud il compito di mantenere il tempo di attività, la dimensione maggiore e più costosa dell'istanza diventa allettante, fino a quando le bollette cloud non iniziano a lievitare.

In questo post sul blog esploreremo le sfide nella scelta del miglior tipo di istanza Amazon EC2 per la tua applicazione e ti forniremo alcune best practice per prendere la decisione giusta. Inoltre, spiegheremo come una soluzione come IBM Turbonomic può aiutarti a ottimizzare le tue app cloud AWS utilizzando machine learning, auto-scaling e automazione. Se conosci Turbonomic e vuoi iniziare a ottimizzare il tuo ambiente AWS da subito, inizia oggi la tua prova gratuita di 30 giorni.

Comprendere i tipi di istanze Amazon EC2

Le istanze EC2 sono classificate in base alle loro caratteristiche, come la CPU, la memoria, lo storage e la capacità di rete. Ogni tipo di istanza è progettato per ottimizzare workload specifici, come l'elaborazione generica, le applicazione ad alta intensità di memoria o le attività ad alta intensità di calcolo. Ecco alcuni esempi di tipi di istanza EC2 e i loro principali casi d'uso:

  • Istanze generiche (serie A, T, M e C): le istanze generiche sono progettate per una varietà di workload, tra cui server web, piccoli database e ambienti di sviluppo e test. Questo gruppo include l'istanza m5, l'ultima generazione di istanze generiche alimentate da processori Intel Xeon Platinum 8175M o 8259CL. Queste istanze offrono un equilibrio tra risorse di calcolo, memoria e rete, e rappresentano una buona scelta per molte applicazioni.
  • Istanze ottimizzate per il calcolo (serie C e R): queste istanze sono ottimizzate per workload ad alta intensità di calcolo, come il calcolo ad alte prestazioni, l'elaborazione batch e la modellazione scientifica. Queste istanze massimizzano la potenza di calcolo utilizzando GPU e CPU con un numero elevato di core.
  • Istanze ottimizzate per la memoria (serie X, Z e R): queste istanze con memoria elevata sono ottimizzate per workload ad uso intensivo di memoria come database ad alte prestazioni, cache in memoria distribuite e trattamento dei dati/analytics di big data in tempo reale.
  • Istanze ottimizzate per lo storage (serie I, D e H): queste istanze sono ottimizzate per workload ad uso intensivo di storage come big data, data warehousing ed elaborazione di log. Sfruttano caching ad alta capacità e unità SSD (Solid-State Drive) per supportare le intense attività di lettura e scrittura dei workload.

Sfide nella scelta del tipo di istanza EC2 corretto

Scegliere il tipo di istanza EC2 più adatto alla propria applicazione può rivelarsi un compito arduo. Ecco alcune delle sfide che potresti incontrare:

  • Complessità: con così tante offerte di istanze tra cui scegliere, può essere difficile determinare quale sia la più adatta alla tua applicazione. Inoltre, Amazon introduce costantemente nuovi tipi di istanze nel suo catalogo di servizi, il che implica che la migliore soluzione per la tua applicazione oggi potrebbe non essere necessariamente la migliore per la tua applicazione tra alcuni mesi.
    • Come aiuta Turbonomic: Turbonomic inserisce continuamente le specifiche dell'intero catalogo dei servizi AWS e mappa il profilo di consumo delle risorse dei tuoi workload, sia i picchi di base che quelli basati sui percentili, al tipo di istanza più adatto.
  • Tipo di workload: che tipo di workload verrà eseguito dalla tua applicazione? È un workload ad alta intensità di calcolo o richiede molta memoria o capacità di storage? Una volta che hai una chiara comprensione del tuo workload, puoi restringere le opzioni a tipi di istanze ottimizzati per il tuo workload.
  • Requisiti di prestazioni: hai bisogno di un tipo di istanza ad alte prestazioni per gestire workload di grandi dimensioni o di un tipo di istanza più piccolo per gestire workload leggeri? Il workload supporta un'applicazione rivolta al cliente, a bassa latenza, o un'applicazione amministrativa interna? Quali requisiti di localizzazione dei dati dovrai rispettare? Tieni presente che le prestazioni di un tipo di istanza possono variare a seconda della regione e del modello di utilizzo della tua applicazione.
    • Come aiuta Turbonomic: determinare il tipo di workload in un intero ambiente di hosting è un compito importante, ma reso semplice grazie a software di ottimizzazione dei costi del cloud. Turbonomic rileva automaticamente l'utilizzo attuale e storico di vCPU, memoria, accesso allo storage (IOPS), throughput di rete, throughput I/O, quantità di storage, copertura delle istanze riservate, memoria vMemory del database, vCPU del database, quantità di storage del database, throughput I/O del database, inventario RI e copertura RI dei tuoi workload, e determina la migliore famiglia e tipo di istanza per supportarli.
  • Scalabilità: è necessario assicurarsi che il tipo di istanza scelto possa essere ridimensionato in base alle esigenze per gestire le variazioni del traffico e del workload. Inoltre, devi sapere come le applicazioni che ogni istanza EC2 ospiterà sono progettate per scalare. Se l'applicazione è composta da microservizi, i requisiti di scalabilità e prestazioni devono essere considerati insieme.
    • Come aiuta Turbonomic: a seconda di come ciascuna applicazione è progettata per scalare, Turbonomic può guidare le azioni di ampliamento/riduzione più economiche disponibili, nonché garantire che le azioni di ampliamento/riduzione vengano condotte nel modo più conveniente possibile.
  • Costo: il costo è uno degli aspetti più importanti da considerare e da affrontare nella scelta di un tipo di istanza EC2. Devi considerare il costo orario del tipo di istanza, così come eventuali costi aggiuntivi per il trasferimento dei dati, storage e altri servizi AWS. Inoltre, i vari modelli di prezzi, incluse le istanze riservate e i piani di risparmio, aumentano la complessità del calcolo dei costi.

Best practice per la scelta del miglior tipo di istanza EC2

Ora che hai compreso le sfide più comuni nella scelta della migliore istanza EC2, ecco alcune delle best practice che invitiamo i nostri clienti e partner a seguire.

1. Comprendi il tuo workload

Il primo e più importante passo per selezionare il giusto tipo di istanza EC2 è capire il tuo workload. Ogni applicazione ha requisiti diversi in termini di CPU, memoria, rete e storage, ed è fondamentale sapere di cosa ha bisogno la tua applicazione per funzionare senza problemi.

Ad esempio, se stai gestendo un'applicazione di database, potresti aver bisogno di una grande quantità di RAM per gestire le query in modo efficiente. D'altra parte, se stai eseguendo un'applicazione ad alta intensità di calcolo, potresti aver bisogno di una CPU ad alte prestazioni.

Per comprendere meglio il tuo workload, puoi utilizzare strumenti come AWS CloudWatch o soluzioni di monitoraggio di terze parti per raccogliere dati sull'utilizzo delle risorse. Questi dati possono quindi essere utilizzati per determinare il tipo di istanza ottimale per la tua applicazione.

2. Considera la CPU

La CPU è uno dei componenti più critici di un'istanza EC2, in quanto determina la potenza di elaborazione dell'istanza. Se la tua applicazione richiede alte prestazioni CPU, dovresti cercare un tipo di istanza con un numero di CPU e una frequenza di clock più elevati.

AWS offre una varietà di tipi di istanze ottimizzati per la CPU (link esterno a ibm.com), come le famiglie C5, M5 e R5, progettate per workload di calcolo ad alte prestazioni. Queste istanze dispongono dei processori AWS Graviton3 (link esterno di ibm.com) personalizzati di ultima generazione (aggiornamenti significativi del Graviton2) e sono ottimizzate per applicazioni che richiedono un alto utilizzo della CPU. Tuttavia, se la tua applicazione non richiede elevate prestazioni della CPU, puoi optare per un tipo di istanza più economico, senza GPU e con un numero inferiore di CPU, come la famiglia T3.

3. Considera la memoria

La memoria è un altro componente critico di un'istanza EC2, in quanto determina la quantità di dati che l'istanza può elaborare alla volta. Se la tua applicazione richiede molta memoria, dovresti cercare un tipo di istanza con una capacità di memoria maggiore.

Tuttavia, se la tua applicazione non richiede molta memoria, puoi optare per un tipo di istanza più economico con una capacità di memoria minore, come la famiglia T3.

AWS offre una varietà di tipi di istanze ottimizzati per la memoria (link esterno a ibm.com), come le famiglie X1, R4 e z1d, progettate per workload ad alta intensità di memoria. Queste istanze hanno grandi quantità di memoria e sono ottimizzate per applicazione che richiedono un alto utilizzo della memoria, come i database in memoria.

Tuttavia, se la tua applicazione non richiede molta memoria, puoi optare per un tipo di istanza più economico con una capacità di memoria minore, come la famiglia T3.

4. Considera la rete

La rete è un altro componente critico di un'istanza EC2, poiché determina la velocità con cui i dati veloci possono essere trasferiti da e verso l'istanza. Se la tua applicazione richiede alte prestazioni di rete, dovresti cercare un tipo di istanza con una larghezza di banda di rete più alta.

AWS offre una varietà di tipi di istanze ottimizzate per la rete, come le C5n e le famiglie HPC di calcolo ad alte prestazioni, progettate per workload intensivi in termini di rete. Queste istanze hanno caratteristiche di interfacce di rete ad alta velocità e sono ottimizzate per applicazione che richiedono un alto utilizzo di rete.

Tuttavia, se la tua applicazione non richiede elevate prestazioni di rete, puoi optare per un tipo di istanza più economico con una larghezza di banda di rete inferiore, come la famiglia T3.

5. Considera lo storage

Lo storage è l'ultimo componente critico di un'istanza EC2, poiché determina quanti dati possono essere memorizzati sull'istanza. Se la tua applicazione richiede molto storage, dovresti cercare un tipo di istanza con una capacità di storage maggiore (Elastic Block Store, o EBS). Tuttavia, procedi con cautela: lo storage è anche tra le risorse cloud più costose e può facilmente generare spese inutili tramite volumi EBS inattivi o non collegati.

AWS offre una varietà di tipi di istanze ottimizzati per lo storage, come le famiglie I3 e D2, progettate per workload ad alta intensità di storage. Queste istanze presentano grandi quantità di storage SSD e locale e sono caratterizzate per applicazioni che richiedono un throughput IOPS elevato.

Tuttavia, se la tua applicazione non richiede molto storage, puoi optare per un tipo di istanza più economico con una capacità di storage basata su HDD più piccola, come la famiglia T3.

6. Considera il modello di prezzo

AWS offre diversi modelli di prezzi per le istanze EC2, tra cui istanze su richiesta, istanze riservate e istanze spot. Ogni modello ha i suoi vantaggi e svantaggi ed è fondamentale scegliere quello più adatto al proprio workload e al proprio budget.

Le istanze su richiesta hanno un prezzo orario e non richiedono alcun impegno iniziale. Sono più adatte per workload con domanda variabile o progetti a breve termine.

Le istanze riservate offrono uno sconto significativo sulla tariffa oraria in cambio di un pagamento anticipato una tantum. Sono più adatte per workload con un utilizzo prevedibile e che richiedono un impegno a lungo termine.

Le istanze spot consentono di fare offerte sulla capacità EC2 non utilizzata e possono garantire notevoli risparmi sui costi. Tuttavia, sono più adatte per workload che possono gestire interruzioni e hanno orari di inizio e fine flessibili.

7. Testa e ottimizza

Una volta selezionato un tipo di istanza EC2, è essenziale testare e ottimizzare la tua applicazione per assicurarti che funzioni in modo efficiente. Puoi utilizzare strumenti come AWS CloudWatch o IBM Instana per monitorare le prestazioni della tua applicazione e identificare eventuali colli di bottiglia o aree da migliorare.

Conclusioni

La scelta del tipo di istanza EC2 più adatto è fondamentale per le prestazioni e la convenienza della tua infrastruttura AWS. Comprendendo il tuo workload, considerando i requisiti di CPU, memoria, rete e storage, scegliendo il modello di prezzo giusto e testando e ottimizzando la tua applicazione, puoi assicurarti di ottenere il massimo dalle tue istanze EC2. 

Ricorda che scegliere il miglior tipo di istanza non è una decisione una tantum, poiché il workload e le esigenze infrastrutturali possono variare nel tempo. Valutare e ottimizzare continuamente i tipi di istanze EC2 può aiutarti a raggiungere prestazioni ottimali ed efficacia economica per la tua infrastruttura AWS.

IBM Turbonomic può aiutare a gestire questo processo automaticamente valutando continuamente le esigenze di risorse delle tue applicazioni AWS e generando azioni specifiche che permettono di risparmiare denaro e mantenere le istanze EC2 nella giusta dimensione. Turbonomic utilizza machine learning e automazione, integrandosi facilmente con i tuoi account AWS e AWS Billing e generando azioni di ottimizzazione entro 30 minuti.

Autore

Christopher Graham

WW Demand Strategy Manager

Turbonomic PLG