Monitoraggio
Panoramica
Il monitoraggio della distribuzione delle applicazioni aiuta a rilevare eventi insoliti e a reagire in modo appropriato. Amazon CloudWatch monitora le risorse di Amazon Web Services (AWS), inclusi i Servizi AWS Edge utilizzati per la distribuzione delle applicazioni. Ad esempio, i parametri lato server emessi dai Servizi AWS Edge aiutano a rilevare aumenti imprevisti dei volumi di traffico, riduzioni significative del tasso di accesso alla cache, forti aumenti degli errori 5xx o attacchi DDoS. Oltre ai parametri lato server, CloudWatch raccoglie e tiene traccia dei parametri di monitoraggio lato client utilizzando CloudWatch RUM. Le dashboard personalizzate possono essere create utilizzando i parametri di CloudWatch, su cui è possibile configurare anche gli allarmi.
Parametri lato server
Parametri nativi di CloudWatch emessi dai Servizi AWS Edge
Considera i seguenti parametri di CloudWatch quasi in tempo reale emessi dai servizi AWS Edge durante la distribuzione e la protezione della tua applicazione:
- CloudFront emette i seguenti parametri: richieste, byte scaricati, byte caricati, percentuale di errori di tipo 4xx, percentuale di errori di tipo 5xx, percentuale di errori totale. Tieni presente che questi parametri sono disponibili nella regione us-east-1 poiché CloudFront è un servizio globale. A un costo aggiuntivo, puoi abilitare parametri aggiuntivi come la percentuale di riscontri nella cache, la latenza di origine e il tasso di errore per codici di stato specifici.
- Le Funzioni CloudFront emettono i seguenti parametri nella regione us-east-1: invocazioni, errori di convalida, errori di esecuzione, utilizzo dell'elaborazione e limiti.
- Lambda@Edge è basato su AWS Lambda e, come tale, emette un sottoinsieme dei suoi parametri come invocazioni, errori, durata, esecuzioni simultanee e limitazioni. A differenza delle Funzioni CloudFront, i parametri Lambda@Edge sono disponibili in ogni regione in cui vengono eseguiti da CloudFront . La console CloudFront offre una visione consolidata di questi parametri in tutte le regioni.
- AWS WAF emette i seguenti parametri: richieste consentite, richieste bloccate, richieste conteggiate, richieste verificate con Captcha, richieste verificate con una sfida, ecc. Ogni parametro può essere misurato con un livello di granularità, ad esempio tramite WebACL, regola, Paese, dispositivo, ecc... Tieni presente che i parametri AWS WAF sono disponibili nella regione us-east-1 quando il WebACL viene applicato a CloudFront.
- Shield Advanced emette parametri per gli attacchi DDoS rilevati, come bit di attacco al secondo, pacchetti al secondo e richieste al secondo.
Puoi creare una dashboard di CloudWatch basata sui parametri sopra riportati emessi dai Servizi AWS Edge, anche se i parametri riguardano più regioni e account. L'esempio seguente è una dashboard di sicurezza basata su parametri emessi dalle regole AWS WAF.
Puoi creare una dashboard di CloudWatch basata sui parametri sopra riportati emessi dai Servizi AWS Edge, anche se questi riguardavano più regioni e account. L'esempio seguente è una dashboard di sicurezza basata su parametri emessi dalle regole AWS WAF.
Parametri avanzati
I parametri avanzati per la tua applicazione possono essere creati in diversi modi. Il primo si basa sulla combinazione di parametri nativi di CloudWatch con altri più sofisticati, mentre le altre soluzioni si basano sui log di servizio.
Per il primo approccio, utilizza la matematica dei parametri di CloudWatch. Ad esempio, puoi calcolare il totale delle richieste al secondo inviate da CloudFront dividendo il parametro Richieste di CloudFront per il periodo di misurazione (m1/PERIODO(m1)). Un altro esempio è la creazione di un parametro composito che rifletta lo stato di salute dell'applicazione mediante una combinazione logica di altri parametri (ad esempio, essa è integra se i 5xx di CloudFront < ,5% E la latenza del server < 1 s). Questo parametro composito può essere quindi utilizzato con i controlli dell’integrità di Shield Advanced
Nel secondo approccio, utilizza i log generati dai servizi AWS Edge per emettere parametri personalizzati. Alcune implementazioni includono:
- Configurazione dei filtri dei parametri sui log inviati a CloudWatch Logs. Ad esempio, puoi configurare la tua funzione CloudFront per registrare le occorrenze delle richieste con una determinata stringa di query e utilizzare un filtro dei parametri per contare queste occorrenze.
- Elaborazione dei log CloudFront e WAF inviati a Kinesis utilizzando Lambda per emettere parametri personalizzati. Considera questo esempio di implementazione.
Avvisi
Puoi creare allarmi per ricevere notifiche quando i parametri di CloudWatch indicano un evento insolito. Segui i passaggi in questo blog per impostare un allarme basato su una soglia per il tasso di errore 5xx su CloudFront. Oltre agli allarmi basati sulle soglie, il rilevamento delle anomalie di CloudWatch ti permette di impostare un livello di base per i parametri e creare allarmi in base a modifiche anomale rispetto a tale livello.
Esiti sulla sicurezza in Security Hub
La gestione dei firewall AWS crea esiti nella Centrale di sicurezza AWS relativi alle risorse non conformi e agli attacchi rilevati da Shield Advanced.
Monitor Internet di CloudWatch
Monitor Internet di CloudWatch offre visibilità sulle prestazioni delle tue applicazioni rivolte a Internet, utilizzando i dati di connettività che AWS acquisisce dalla sua impronta di rete globale. Monitor Internet offre un'osservabilità continua delle misurazioni di Internet, come disponibilità e prestazioni, personalizzate in base all'impronta del carico di lavoro su AWS. È possibile utilizzare Monitor Internet per ottenere informazioni sui parametri medi delle prestazioni Internet nel tempo e sui problemi (eventi) in base alla posizione e al provider di servizi Internet (ISP). Utilizzando Monitor Internet, è possibile identificare facilmente quali eventi influiscono sull'esperienza dell'utente finale per le applicazioni che utilizzano servizi come CloudFront. Fare riferimento a questo post del blog su come monitorare il traffico Internet verso CloudFront edge con un semplice clic con Monitor Internet Amazon CloudWatch.
Monitoraggio lato client
Oltre ai parametri lato server, consigliamo di raccogliere i parametri lato client utilizzando CloudWatch RUM. RUM fornisce i dati più accurati sul comportamento della tua applicazione web dal punto di vista degli utenti. Per utilizzare CloudWatch RUM, è necessario aggiungere un tag javascript alle tue pagine web. Il javascript raccoglie i dati dalle API del browser, come i tempi di caricamento delle pagine, i Core Web Vitals o gli errori dell'applicazione, e quindi li invia a CloudWatch RUM per essere gestiti nella dashboard. Inoltre, CloudWatch RUM emette parametri di CloudWatch come WebVitalsCumulativeLayoutShift, WebVitalsFirstInputDelay, WebVitalsLargestContentfulPaint, JsErrorCount, HTTPStatusCodeCount, ecc.