Che cos'è il monitoraggio di AWS EC2?
AWS EC2 (Elastic Compute Cloud) è il servizio di Amazon che offre server virtuali altamente scalabili nel cloud. Il monitoraggio di AWS EC2 è una parte del più ampio monitoraggio del cloud AWS che si occupa del monitoraggio dei siti EC2. Monitorando varie metriche, gli amministratori del cloud possono capire cosa funziona e cosa no su questi siti e scoprire potenziali problemi. Il monitoraggio di Amazon EC2 è un passo fondamentale per garantire che l'infrastruttura cloud sia disponibile, sana e priva di anomalie e colli di bottiglia.
Il monitoraggio di EC2 è un'attività variegata che comprende il controllo dell'efficienza di molti tipi di siti AWS, poiché possono esserci più siti EC2 a seconda del caso d'uso. Vedremo più avanti ogni tipo di sito. Per ora, è sufficiente dire che il monitoraggio EC2 comprende qualsiasi tipo di sito EC2, con poche differenze, in pratica, nelle modalità di esecuzione del monitoraggio.
Perché monitorare le istanze AWS EC2?
Amazon offre uno strumento principale per il monitoraggio di AWS EC2, CloudWatch. È in grado di monitorare in modo dettagliato i siti EC2 e in molti casi fornisce una serie di dashboard sufficientemente validi da poter essere utilizzati rapidamente per rilevare i problemi e identificare il potenziale di ottimizzazione. Questo è essenzialmente l'obiettivo del monitoraggio di EC2. Per quanto il monitoraggio e la gestione delle risorse da parte di AWS siano completi e accurati, è necessario aggiungere un secondo livello con una buona configurazione di CloudWatch o una soluzione di monitoraggio Amazon EC2 di terze parti. Per evitare interruzioni, interruzioni, colli di bottiglia, configurazioni errate e problemi in generale, il monitoraggio delle istanze EC2 è un compito che dovrebbe essere svolto da qualsiasi amministratore cloud ragionevole.
L'uso di CloudWatch è il minimo indispensabile per garantire che la tua infrastruttura cloud sia sana e funzioni come dovrebbe.
Le capacità di alcune funzioni di CloudWatch sono inadeguate a soddisfare l'importanza di un monitoraggio EC2 veramente completo.
Ad esempio, CloudWatch potrebbe non avere la granularità necessaria per coprire il tuo caso d'uso specifico. Il monitoraggio dei siti EC2 con una soluzione personalizzata come Checkmk può soddisfare meglio le tue esigenze, rendendo il compito di monitorare Amazon EC2 più utile. Questo è particolarmente importante quando si ha bisogno di maggiore personalizzazione e flessibilità nel monitoraggio. L'impostazione di soglie personalizzate in alternativa ai limiti di CloudWatch o la definizione di configurazioni di monitoraggio specifiche sono tutti aspetti che uno strumento di monitoraggio separato può fornire.
Inoltre, funzioni avanzate come il rilevamento delle anomalie, l'analisi delle tendenze, l'analisi predittiva, gli allarmi personalizzati e la correzione automatica sono solo alcune delle caratteristiche aggiuntive che gli strumenti di monitoraggio cloud di terze parti possono offrire. Queste caratteristiche non sono sempre necessarie, ma sono certamente auspicabili e possono essere la soluzione a molti dei limiti delle funzionalità di CloudWatch.
Indipendentemente dallo strumento scelto, il monitoraggio delle istanze EC2 è un passo importante per avere un'infrastruttura basata sul cloud affidabile, sana e ad alte prestazioni. Senza sapere come funziona e come si comporta, si è ciechi di fronte a possibili problemi e interruzioni. Questo è il motivo principale del monitoraggio dei siti AWS EC2.

Quali sono i tipi di siti AWS EC2?
Per un monitoraggio EC2 dettagliato, è importante conoscere i vari tipi di sito. AWS ha creato molti tipi di siti, per varie applicazioni. Sapere quale è ti aiuterà nel monitoraggio di EC2, poiché ogni istanza si concentra su aspetti particolari, ad esempio l'efficienza della memoria o l'archiviazione dei dati, e quindi dovrai concentrarti su metriche leggermente diverse.
Diamo quindi uno sguardo sintetico ai tipi di sito AWS esistenti e alle loro specializzazioni.
Siti di uso generale
Come suggerisce il nome, i siti generici sono server virtuali bilanciati che possono essere utilizzati per una varietà di compiti. Questi tipi di siti AWS sono orientati verso utilizzi che non richiedono un focus su una risorsa specifica, come la potenza di calcolo, una memoria efficiente, un elevato throughput di rete o operazioni di lettura/scrittura veloci. Forniscono invece un ambiente equilibrato che dovrebbe essere sufficiente per la maggior parte dei carichi di lavoro.
Le principali differenze tra questi tipi di sito sono il modello di CPU, l'ambiente software (Mac è per i carichi di lavoro macOS) e il modo in cui vengono calcolati i costi.
Siti ottimizzati per il calcolo
I siti ottimizzati per il calcolo sono tipi di siti AWS per applicazioni ad alta intensità di CPU, come carichi di lavoro di elaborazione batch, transcodifica di media, calcolo ad alte prestazioni, modellazione scientifica, server di gioco dedicati, apprendimento automatico e altro ancora. Qualsiasi tipo di applicazione ad alta intensità di CPU può trarre vantaggio dalla scelta di questi siti rispetto a quelli generici menzionati in precedenza.
Siti ottimizzati per la memoria
Se le esigenze della vostra organizzazione includono applicazioni che utilizzano molta memoria, i siti AWS ottimizzati per la memoria sono quelli che dovreste considerare di utilizzare. Questi sono progettati specificamente per carichi di lavoro ad alta intensità di memoria, come ad esempio i database in-memory, l'automazione della progettazione elettronica, l'attuario finanziario e numerosi tipi di analisi di dati pesanti.
La maggior parte delle differenze tra le istanze ottimizzate per la memoria risiede nel tipo e nella quantità di memoria disponibile. Alcune arrivano fino a 24Tb di memoria, con una larghezza di banda di rete di più Gbps per sostenere un rapido scambio di dati da e verso la memoria.
Siti di calcolo accelerato
I tipi di siti AWS per l'accelerated-computing sono destinati a carichi di lavoro che richiedono un'elevata potenza delle GPU (Graphics Processing Unit). Le GPU tensor core per l'apprendimento automatico e l'HPC (High Performance Computing) sono i principali casi d'uso di questi siti EC2. Anche l'analisi di immagini e video, le previsioni, l'analisi avanzata di testi e documenti, la traduzione e la trascrizione vocale, l'elaborazione del linguaggio naturale (NLP) e l'addestramento all'apprendimento profondo sono le caratteristiche per cui questi siti eccellono.
AWS offre diversi tipi di siti di questo tipo, a seconda del tipo di GPU e della quantità di risorse complessive.
Siti ottimizzati per lo storage
Per le applicazioni che richiedono un accesso elevato e sequenziale in lettura e scrittura a set di dati molto grandi, AWS offre una serie di siti EC2 ottimizzati per lo storage. Questi sono ideali per i database relazionali e non relazionali e per tutti i carichi di lavoro che richiedono un accesso molto veloce a set di dati di medie dimensioni, come i motori di ricerca e l'analisi dei dati. Questi siti offrono uno storage SSD NVMe veloce, ma sono disponibili anche siti più economici e lenti, con semplice storage HDD.
La differenza principale tra i siti di questo tipo sta nelle transazioni massime elaborate al secondo (TPS) e nel costo per Tb di archiviazione dei dati. Naturalmente, l'aumento della velocità aumenta il costo di un sito.
Siti ottimizzati per HPC
I carichi di lavoro HPC (High-Performance Computing) possono essere eseguiti abbastanza bene su siti ottimizzati per l'elaborazione, ma Amazon ha due tipi di siti dedicati per i carichi di lavoro di elaborazione ad alte prestazioni. Questi siti EC2 ottimizzati per HPC offrono un prezzo migliore per le prestazioni quando si eseguono simulazioni complesse e di grandi dimensioni, attività di deep-learning e in generale carichi di lavoro ad alta intensità di calcolo. Queste istanze sono inoltre progettate per carichi di lavoro che possono trarre vantaggio da un migliore throughput di rete e da prestazioni di velocità dei pacchetti.
Quali metriche monitorare?
Il monitoraggio di EC2 può essere effettuato utilizzando CloudWatch e le sue dashboard, le API AWS o uno specifico strumento di monitoraggio AWS EC2. AWS esporta un discreto numero di metriche su cui basare il monitoraggio, non tutte disponibili su tutti i tipi di sito AWS. In comune ci sono metriche di base come l'utilizzo della CPU, le operazioni di scrittura e lettura del disco al secondo e i byte o i pacchetti di rete ricevuti o trasmessi. Qualsiasi tipo di sito EC2 può riportare queste metriche e sono il minimo indispensabile su cui basare i propri sforzi di monitoraggio.
Siti come T4g, T3, T3a e T2 riportano anche metriche come i crediti della CPU e l'utilizzo totale, il saldo e le eventuali eccedenze. Questi siti utilizzano i crediti per calcolare l'utilizzo e i relativi costi delle risorse cloud e, naturalmente, prendere in considerazione queste metriche è necessario per tenere traccia dell'utilizzo e delle spese.
Per un monitoraggio più avanzato, e in verità per tutto ciò che va oltre le basi, è necessario l'agente CloudWatch o un agente di terze parti. Le dashboard di CloudWatch esportano solo una parte delle metriche possibili. Ad esempio, per eseguire il monitoraggio della memoria di AWS EC2, un agente può raccogliere metriche come memoria attiva, buffer, cached, libera, inattiva, utilizzata, nonché il totale di tutta la memoria disponibile per lo specifico sito EC2. Esistono lievi differenze a seconda del sistema operativo utilizzato dal sito, ad esempio Linux, Windows o MacOS, come è prevedibile. Il monitoraggio della memoria di AWS EC2 richiede chiaramente l'installazione di un agente per qualsiasi monitoraggio avanzato su EC2. La maggior parte degli strumenti di monitoraggio di AWS EC2 fornisce un agente in grado di controllare queste e altre metriche.
Una metrica chiave che finora non è stata nominata è l'utilizzo del disco. Questo perché per eseguire il monitoraggio dello spazio su disco di AWS EC2 è necessario monitorare i volumi EBS collegati ai siti EC2 in uso. Questi sono le unità virtuali dei siti e le metriche dello spazio su disco vengono raccolte a livello di questi. Analogamente, come per le metriche principali dei siti EC2, CloudWatch, le API o un agente ad hoc possono informare sulla quantità di spazio su disco in uso e disponibile per tutti i tipi di siti AWS.
Queste sono le metriche di base per il monitoraggio delle prestazioni di EC2. Nei casi di monitoraggio della sicurezza di EC2 o di conformità generale, può essere importante fare rapporto sul monitoraggio dell'integrità dei file di AWS EC2. In questo caso è necessario uno strumento di terze parti, poiché CloudWatch non supporta il controllo dell'integrità di ogni file sui siti EC2.
Best practice per il monitoraggio dei siti EC2
Indipendentemente dalle metriche da raccogliere e dal sito utilizzato, il monitoraggio di EC2 deve essere una priorità. È un elemento importante della vostra infrastruttura e non volete che si guasti in qualsiasi momento. Il monitoraggio dei siti EC2 comporta, come minimo, la raccolta di metriche, ma dovrebbe anche includere l'analisi dei log. L'implementazione di tutto questo in uno strumento di monitoraggio di AWS EC2 e l'automazione dello stesso in base alle vostre esigenze sono la soluzione ideale.
Il monitoraggio delle metriche e l'analisi dei log possono essere eseguiti tramite CloudWatch o qualsiasi altro strumento di terze parti più avanzato, come Checkmk. L'importante è disporre di un sistema che includa tutte le metriche possibili, che sia in grado di avvertire l'utente non appena qualcosa sembra non andare bene, che possa essere impostato con facilità, idealmente con pochi passaggi di configurazione, e che supporti tutta l'infrastruttura, sia ibrida che completamente basata sul cloud. Checkmk è ovviamente la nostra scelta per questo e altro. Strumento di monitoraggio avanzato per EC2 e AWS, Checkmk svolge la maggior parte del lavoro che altrimenti verrebbe svolto da CloudWatch o da agenti personalizzati, in un'unica soluzione per infrastrutture ibride e completamente basate sul cloud.