Che cos'è il monitoraggio dei database AWS?
Il monitoraggio dei database AWS riguarda i processi che analizzano le prestazioni, la disponibilità e la sicurezza dei database ospitati sul cloud di Amazon. Comporta numerosi piccoli passaggi per raccogliere le metriche e i dati giusti che consentono agli amministratori del cloud di avere il polso dei loro database AWS e di reagire prontamente quando il polso segnala qualcosa di sbagliato.
Il monitoraggio dei database AWS fa parte dell'area più ampia del monitoraggio del cloud e di una sottoparte del monitoraggio dei database del cloud, che comprende tutti i database in esecuzione sui cloud, AWS o meno. Il monitoraggio dei database AWS è un'attività essenziale per qualsiasi infrastruttura basata sul cloud, poiché i database sono al centro di molti carichi di lavoro e la loro efficienza e salute sono fondamentali per le aziende.
Il monitoraggio dei database Amazon viene effettuato con diversi strumenti, alcuni integrati in AWS, come CloudWatch, mentre altri sono esterni, come Checkmk. In questa guida esamineremo le differenze nel monitoraggio dei vari tipi di database AWS, le metriche da raccogliere e le caratteristiche da tenere in considerazione in uno strumento di monitoraggio dei database AWS.
Come viene eseguito il monitoraggio dei database AWS?
Il monitoraggio dei database AWS viene generalmente effettuato in diversi modi. Il primo passo è solitamente CloudWatch, che è già integrato nel cloud AWS e quindi è un buon punto di partenza per la creazione di un'infrastruttura di monitoraggio. Offre una serie di dashboard e può monitorare non solo tutti i database AWS, ma anche alcuni database on-premise, oltre a molti altri servizi e risorse nel cloud AWS.
CloudWatch non è però l'unica opzione. AWS X-Ray è in grado di monitorare le richieste ai database MySQL e PostgreSQL autogestiti o Amazon, come Amazon RDS e Aurora. I database AWS SQL possono quindi visualizzare tutte le richieste effettuate e generare una vista incentrata sull'applicazione delle prestazioni dei database, fornendo una panoramica di come i database AWS vengono utilizzati dagli amministratori.
Per un approccio più aperto, AWS espone molte metriche attraverso le sue API REST. Queste possono essere sfruttate con script personalizzati o, più comunemente in ambienti medio-grandi, con strumenti di monitoraggio dei database AWS di terze parti come Checkmk. Questi strumenti semplificano la raccolta delle metriche giuste e la creazione di dashboard, avvisi, report personalizzati e altro ancora.
Infine, ma non meno importante, CloudWatch o agenti di monitoraggio di terze parti possono essere utilizzati per un monitoraggio più granulare dei database su AWS e altre risorse. Molti strumenti di monitoraggio utilizzano sia gli agenti che le API REST per completare ciò che può essere monitorato. Un sistema completo di monitoraggio dei database AWS trarrà vantaggio dall'avere il maggior numero possibile di metriche e dati diversi raccolti in una vista unificata.
Le opzioni di database AWS sono numerose e non tutti gli sforzi di monitoraggio sono ugualmente utili. In seguito vedremo come devono essere monitorati i diversi database Amazon, dato che di solito ci sono delle piccole differenze.
Monitoraggio dei database AWS SQL
Nella categoria dei database AWS SQL rientrano Amazon Aurora e Amazon RDS. Aurora è un servizio di database relazionale compatibile con MySQL e PostgreSQL, mentre RDS è un servizio completamente gestito per configurare il database relazionale di vostra scelta. Il monitoraggio dei database AWS SQL è molto simile, quindi le metriche raccolte non differiscono molto. Tuttavia, ci sono alcune differenze di cui bisogna essere consapevoli.
Tenere d'occhio le solite metriche di base come l'utilizzo della CPU, l'uso della memoria, l'I/O del disco, le connessioni al database e il tempo di esecuzione delle query è ovvio e dovrebbe essere incluso in qualsiasi set di monitoraggio dei database AWS. Nel caso del monitoraggio di AWS RDS, se i database sono distribuiti su più AZ (Availability Zone), è importante consultare anche i log di replica.
Inoltre, Aurora è un database AWS serverless ed espone alcune metriche specifiche su RDS. In particolare, le metriche di salute del cluster, come il numero di operazioni di lettura e scrittura. Queste metriche possono indicare il funzionamento dei cluster sottostanti ai database Aurora. Ad esempio, il ritardo di replica indica il funzionamento della replica a livello di cluster. È opportuno prendere in considerazione anche le metriche relative ai singoli volumi, come le transazioni attive, i deadlock, la profondità delle code o il conteggio dei fallimenti di login.
Monitoraggio dei database AWS NoSQL
Tra le numerose opzioni di database AWS, esistono alcuni database NoSQL. Probabilmente i più noti sono ElastiCache o DynamoDB. Il primo ha alcune metriche che sono ovviamente legate alla cache, come il rapporto di risposta (hit ratio) e le evacuazioni (evictions), e che sono importanti da monitorare con CloudWatch o con lo strumento di monitoraggio dei database AWS di tua scelta.
DynamoDB è un servizio di database NoSQL gestito simile ad Amazon Aurora, e quando lo si monitora ci si deve concentrare su metriche simili o equivalenti. Utilizzo della capacità di lettura e scrittura, richieste limitate, throughput consumato e fornito, latenza, utilizzo complessivo dello storage e altro ancora.
Sia per ElastiCache che per DynamoDB, è necessario controllare regolarmente anche le metriche classiche relative a CPU, memoria, rete, utilizzo del disco e prestazioni. Anche in questo caso, si può utilizzare CloudWatch per un controllo più semplice o uno strumento di monitoraggio dei database AWS di terze parti come Checkmk.
Monitoraggio dei database grafici AWS
I database AWS Graph fanno parte dei database AWS NoSQL. Un esempio è Amazon Neptune, completamente gestito da AWS e cloud-native. Questi database Amazon funzionano in modo diverso da altri database NoSQL, ma le loro metriche di monitoraggio non si discostano molto da quelle già viste con ElastiCache e DynamoDB. Il monitoraggio delle principali metriche di utilizzo, come l'uso della CPU, l'utilizzo della memoria, l'I/O e lo spazio su disco, la latenza delle query, le connessioni al database e così via, è necessario con un database a grafo AWS come con qualsiasi altro database NoSQL.
Nel caso di un Amazon Neptune serverless, tuttavia, è importante tenere traccia delle metriche relative alla NCU (Neptune capacity unit), come la capacità del database serverless o l'utilizzo della NCU. L'NCU è un'unità di base per i database serverless Neptune, costituita da un blocco di 2 GiB di memoria, una capacità di processore virtuale associata (vCPU) e le risorse di rete necessarie. Forniscono informazioni sullo stato di salute della rispettiva istanza Neptune.
Monitoraggio dei database AWS Time Series
I database delle serie temporali AWS sono costruiti per archiviare e analizzare i punti di dati delle serie temporali, solitamente provenienti da dispositivi di telemetria o IoT (Internet of Things). Amazon Timestream è un esempio di Amazon TSD (Time Series Database). Questi tipi di database fanno parte dei numerosi database serverless di AWS ed esportano metriche simili a quelle di altri database Amazon. Sia che si utilizzi CloudWatch o una soluzione di terze parti per il monitoraggio dei database AWS, controllare le metriche di utilizzo relative a CPU, memoria, I/O del disco, rete, è il primo passo naturale di monitoraggio.
Più specificamente, i database AWS delle serie temporali sono una serie di metriche che informano gli amministratori del cloud sull'efficienza delle richieste effettuate a un database Amazon Timestream. Pertanto, è importante controllare metriche come gli errori del sistema e dell'utente, la latenza, le serie temporali che sono state rifiutate o caricate con successo e la quantità di dati scansionati dalle query inviate a Timestream. Anche tenere d'occhio i log del database AWS delle serie temporali è fondamentale per un corretto monitoraggio del database AWS.
Best practice di monitoraggio dei database AWS
Indipendentemente dalle opzioni di database AWS scelte, esiste una serie di best practice da seguire per un sistema di monitoraggio efficiente. Innanzitutto, considerate i fattori più importanti per la vostra organizzazione. Che si tratti di prestazioni, disponibilità, scalabilità o sicurezza. In questo modo, probabilmente presterete maggiore attenzione a una serie di metriche più rilevanti per il vostro ambiente.
Strumenti integrati
CloudWatch non è da sottovalutare. Sebbene limitato nella configurabilità e nella personalizzazione, CloudWatch è in grado di fornire una panoramica utile in pochi secondi, rendendo facile capire se qualcosa non va o è sbagliato. Una soluzione di monitoraggio dei database AWS più avanzata, come Checkmk, può essere utilizzata per indagare ulteriormente e risolvere i problemi, se necessario. Non è consigliabile limitarsi al solo CloudWatch, perché difficilmente si adatta alle esigenze di ogni azienda.
Differenze tra i database
Se si pensa a quanto abbiamo detto sulle metriche specifiche di ogni tipo di database Amazon, ci si rende subito conto che la maggior parte di essi ha molte metriche comuni che non dovrebbero essere ignorate. Tuttavia, hanno anche alcune metriche individuali che informano gli amministratori del cloud sulle loro aree funzionali specifiche. Sia che si utilizzi un database AWS SQL o un database AWS NoSQL, conoscere le metriche tipiche è importante per impostare una soluzione di monitoraggio efficiente.
Allarmi e notifiche
Impostate allarmi e notifiche in base alle vostre soglie. CloudWatch può inviare notifiche tramite Amazon SNS, un servizio di notifica push che può inviare notifiche su molti dispositivi e sistemi. Anche se ha un costo, può essere di grande aiuto per le notifiche di emergenza. Altrimenti, uno strumento di monitoraggio dei database AWS separato vi fornirà molte opzioni per informare gli amministratori del superamento delle soglie e portare la loro attenzione sul database giusto. Checkmk consente un grande controllo su quando e come ricevere le notifiche ed è uno strumento prezioso per evitare la stanchezza da notifica.
Se disponi di database replicati o di zone di disponibilità multipla (AZ) per l'alta disponibilità o il ripristino d'emergenza, monitorare ritardo di replica, stato di replica ed eventi di failover garantisce la coerenza e la disponibilità dei dati.
Esaminare regolarmente i log e le metriche
Utilizza i log dei database ogni volta che sono disponibili. Analizzali regolarmente per ottenere informazioni, risolvere i problemi e migliorare il monitoraggio della sicurezza dei database.
Esaminare regolarmente le metriche è fondamentale per capire dove ottimizzare, aumentare le prestazioni del database e scoprire le tendenze. Senza dimenticare che prestare attenzione a ogni metrica è utile per scoprire prima eventuali interruzioni o configurazioni errate e per estrarre le massime prestazioni dai database del cloud AWS.
Tutto questo è possibile grazie alla potenza di strumenti avanzati di monitoraggio dei database AWS come Checkmk. Con Checkmk, avete una soluzione completa per un ambiente di database AWS efficiente. Con l'ulteriore vantaggio di essere economico rispetto ad altre soluzioni e a CloudWatch di Amazon, Checkmk è un'unica soluzione per mantenere un'infrastruttura di database AWS sana, efficiente e sempre disponibile.
FAQ
Sì, Amazon offre un servizio chiamato DMS (AWS Database Migration Service), che semplifica e ottimizza la conversione dei database on-premises in uno dei servizi di database AWS. È in grado di convertire lo schema, convalidare i dati, replicare lo schema e i dati, oltre a fornire un monitoraggio in tempo reale del processo di conversione. DMS include sia un'interfaccia a riga di comando che un'API per gestire e configurare l'intera migrazione.