Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migliora le prestazioni operative abilitando Amazon DevOps Guru su più regioni AWS, account e unità organizzative con AWS CDK
Creato dal dott. Rahul Sharad Gaikwad (AWS)
Repository di codice: codice di esempio di Amazon DevOps Guru | Ambiente: PoC o pilota | Tecnologie: gestione e governance; CloudNative; Operazioni DevOps; Sicurezza, identità, conformità; Serverless |
Servizi AWS: Amazon API Gateway; CDK AWS; Amazon DevOps Guru; Amazon DynamoDB; AWS Organizations |
Riepilogo
Questo modello illustra i passaggi per abilitare il servizio Amazon DevOps Guru su più regioni, account e unità organizzative (OU) di Amazon Web Services (AWS) utilizzando l'AWS Cloud Development Kit (AWS CDK) in. TypeScript Puoi utilizzare AWS CDK stacks per distribuire AWS dall'account CloudFormation StackSets AWS amministratore (primario) per abilitare DevOps Amazon Guru su più account, invece di accedere a ciascun account e DevOps abilitare Guru singolarmente per ogni account.
Amazon DevOps Guru offre funzionalità operative di intelligenza artificiale (AIOps) per aiutarti a migliorare la disponibilità delle tue applicazioni e risolvere più rapidamente i problemi operativi. DevOps Guru riduce il lavoro manuale applicando consigli basati sull'apprendimento automatico (ML), senza richiedere alcuna esperienza di machine learning. DevOps Guru analizza le tue risorse e i tuoi dati operativi. Se rileva anomalie, fornisce metriche, eventi e consigli per aiutarti a risolvere il problema.
Questo modello descrive tre opzioni di distribuzione per abilitare Amazon DevOps Guru:
Per tutte le risorse, raggruppa le risorse su più account e regioni
Per tutte le risorse dello stack tra le unità organizzative
Per risorse di stack specifiche su più account e regioni
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo.
AWS Command Line Interface (AWS CLI), installata e configurata. (Vedi Installazione, aggiornamento e disinstallazione dell'interfaccia a riga di comando di AWS nella documentazione dell'interfaccia a riga di comando di AWS.)
AWS CDK Toolkit, installato e configurato. (Vedi AWS CDK Toolkit nella documentazione di AWS CDK.)
Node Package Manager (npm), installato e configurato per AWS CDK in. TypeScript (Vedi Download e installazione di Node.js e npm nella documentazione di npm
.) Python3 installato e configurato, per eseguire uno script Python per iniettare traffico nell'applicazione serverless di esempio. (Vedi Configurazione e utilizzo di Python nella documentazione
di Python.) Pip, installato e configurato per installare la libreria di richieste Python. (Vedi le istruzioni di installazione di pip sul sito
web.) PyPl
Versioni del prodotto
AWS CDK Toolkit versione 1.107.0 o successiva
npm versione 7.9.0 o successiva
Node.js versione 15.3.0 o successiva
Architettura
Tecnologie
L'architettura di questo modello include i seguenti servizi:
Stack CDK AWS
Il modello utilizza i seguenti stack AWS CDK:
CdkStackSetAdminRole
— Crea un ruolo di amministratore di AWS Identity and Access management (IAM) per stabilire una relazione di fiducia tra l'amministratore e gli account di destinazione.CdkStackSetExecRole
— Crea un ruolo IAM per fidarsi dell'account amministratore.CdkDevopsGuruStackMultiAccReg
— Abilita DevOps Guru su più regioni AWS e account per tutti gli stack e configura le notifiche Amazon Simple Notification Service (Amazon SNS).CdkDevopsGuruStackMultiAccRegSpecStacks
— Abilita DevOps Guru su più regioni AWS e account per stack specifici e configura le notifiche Amazon SNS.CdkDevopsguruStackOrgUnit
— Abilita DevOps Guru su tutte le unità organizzative e configura le notifiche Amazon SNS.CdkInfrastructureStack
— Implementa componenti applicativi serverless di esempio come API Gateway, Lambda e DynamoDB nell'account amministratore per dimostrare l'iniezione di errori e la generazione di approfondimenti.
Architettura applicativa di esempio
Il diagramma seguente illustra l'architettura di un'applicazione serverless di esempio che è stata distribuita su più account e regioni. Il modello utilizza l'account amministratore per distribuire tutti gli stack CDK AWS. Inoltre, utilizza l'account amministratore come uno degli account di destinazione per la configurazione di Guru. DevOps
Quando DevOps Guru è abilitato, prima elabora il comportamento di ogni risorsa e poi acquisisce i dati operativi dalle metriche fornite. CloudWatch
Se rileva un'anomalia, la mette in correlazione con gli eventi generati e genera un'analisi approfondita. CloudTrail
L'analisi fornisce una sequenza di eventi correlata insieme a raccomandazioni prescritte per consentire all'operatore di identificare la risorsa responsabile.
Amazon SNS invia messaggi di notifica all'operatore.
![Un'applicazione serverless di esempio che è stata distribuita su più account e regioni.](images/pattern-img/6075ca48-862a-4aa0-93c6-10bad8195a5c/images/beeb0992-aaa8-4f08-b983-685b6b8b8d5e.png)
Automazione e scalabilità
Il GitHub repository
Strumenti
Servizi AWS
AWS CDK — AWS Cloud Development Kit (AWS CDK) ti aiuta a definire la tua infrastruttura cloud come codice in uno dei cinque linguaggi di programmazione supportati: TypeScript, JavaScript Python, Java e C#.
AWS CLI — AWS Command Line Interface (AWS CLI) è uno strumento unificato che fornisce un'interfaccia a riga di comando coerente per interagire con i servizi e le risorse AWS.
Codice
Il codice sorgente di questo pattern è disponibile nel GitHub repository Amazon DevOps Guru CDK Samples
Importante: alcune delle storie di questo modello includono esempi di comandi AWS CDK e AWS CLI formattati per Unix, Linux e macOS. Per Windows, sostituisci il carattere di continuazione della barra rovesciata (\) alla fine di ogni riga con un accento circonflesso (^).
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Configura i profili denominati AWS. | Configura i tuoi profili denominati AWS come segue per distribuire gli stack in un ambiente con più account. Per l'account amministratore:
Per l'account di destinazione:
Per ulteriori informazioni, consulta Using named profiles nella documentazione AWS CLI. | DevOps ingegnere |
Verifica le configurazioni dei profili AWS. | (Facoltativo) Puoi verificare le configurazioni del tuo profilo AWS nei | DevOps ingegnere |
Verifica la versione di AWS CDK. | Verifica la versione di AWS CDK Toolkit eseguendo il seguente comando:
Questo modello richiede la versione 1.107.0 o successiva. Se disponi di una versione precedente di AWS CDK, segui le istruzioni nella documentazione di AWS CDK per aggiornarla. | DevOps ingegnere |
Clona il codice del progetto. | Clona il GitHub repository per questo pattern usando il comando:
| DevOps ingegnere |
Installa le dipendenze dei pacchetti e compila i TypeScript file. | Installa le dipendenze del pacchetto e compila TypeScript i file eseguendo i seguenti comandi:
Questi comandi installano tutti i pacchetti dal repository di esempio. Importante: in caso di errori relativi ai pacchetti mancanti, usa uno dei seguenti comandi:
oppure
Puoi trovare l'elenco dei nomi e delle versioni dei pacchetti nella | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Configura un indirizzo e-mail per le notifiche di Amazon SNS. | Segui questi passaggi per fornire un indirizzo e-mail per le notifiche di Amazon SNS:
| DevOps ingegnere |
Costruisci il codice del progetto. | Crea il codice del progetto e sintetizza gli stack eseguendo il comando:
Verrà visualizzato un output simile al seguente:
Per ulteriori informazioni e passaggi, consulta La tua prima app AWS CDK nella documentazione di AWS CDK. | DevOps ingegnere |
Elenca gli stack CDK AWS. | Esegui il comando seguente per elencare tutti gli stack CDK AWS:
Il comando visualizza il seguente elenco:
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Implementa gli stack CDK AWS per creare ruoli IAM. | Questo modello utilizza AWS CloudFormation StackSets per eseguire operazioni di stack su più account. Se stai creando il tuo primo set di stack, devi creare i seguenti ruoli IAM per ottenere le autorizzazioni richieste nei tuoi account AWS:
Nota: i ruoli devono avere questi nomi esatti.
Per ulteriori informazioni, consulta Concedere autorizzazioni autogestite nella documentazione CloudFormation AWS. | DevOps ingegnere |
Implementa lo stack AWS CDK per abilitare DevOps Guru su più account. | Lo
Attualmente Amazon DevOps Guru è disponibile nelle regioni AWS elencate nelle domande frequenti su DevOps Guru | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Estrai gli ID OU. | Sulla console AWS Organizations | DevOps ingegnere |
Abilita le autorizzazioni gestite dal servizio per le unità organizzative. | Se utilizzi AWS Organizations per la gestione degli account, devi concedere le autorizzazioni gestite dal servizio per abilitare Guru. DevOps Invece di creare i ruoli IAM manualmente, utilizza ruoli di accesso affidabile e ruoli collegati ai servizi (SLR) basati sull'organizzazione. | DevOps ingegnere |
Implementa lo stack AWS CDK per abilitare DevOps Guru su tutte le unità organizzative. | Lo
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Implementa gli stack CDK AWS per creare ruoli IAM. | Se non hai ancora creato i ruoli IAM richiesti mostrati nella prima opzione, fallo prima:
Per ulteriori informazioni, consulta Concedere autorizzazioni autogestite nella documentazione CloudFormation AWS. | DevOps ingegnere |
Elimina le pile esistenti. | Se hai già utilizzato la prima opzione per abilitare DevOps Guru per tutte le risorse dello stack, puoi eliminare il vecchio stack usando il seguente comando:
In alternativa, puoi modificare il | DevOps ingegnere |
Aggiorna lo stack CDK AWS con un elenco di stack. |
| Ingegnere dei dati |
Implementa lo stack AWS CDK per abilitare DevOps Guru per risorse stack specifiche su più account. | Lo
Nota: se in precedenza hai distribuito questo stack per l'opzione 1, modifica il | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Implementa lo stack di infrastruttura serverless di esempio. | Lo
| DevOps ingegnere |
Inserisci record di esempio in DynamoDB. | Esegui il comando seguente per popolare la tabella DynamoDB con record di esempio. Fornisci il percorso corretto per lo script.
Il comando visualizza il seguente output:
| DevOps ingegnere |
Verifica i record inseriti in DynamoDB. | Per verificare che la tabella DynamoDB includa
| DevOps ingegnere |
Attendi che le risorse completino la linea di base. | Questo stack serverless ha poche risorse. Ti consigliamo di attendere 2 ore prima di eseguire i passaggi successivi. Se hai distribuito questo stack in un ambiente di produzione, potrebbero essere necessarie fino a 24 ore per completare la baseline, a seconda del numero di risorse che hai selezionato per il monitoraggio in Guru. DevOps | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Aggiorna lo stack di infrastruttura AWS CDK. | Per provare DevOps Guru Insights, puoi apportare alcune modifiche alla configurazione per riprodurre un tipico problema operativo.
| DevOps ingegnere |
Inietta le richieste HTTP sull'API. | Inietta il traffico in ingresso sotto forma di richieste HTTP sull'API:
| DevOps ingegnere |
Rivedi le informazioni su DevOps Guru. | In condizioni standard, la dashboard di DevOps Guru mostra zero nel contatore delle informazioni in corso. Se rileva un'anomalia, genera un avviso sotto forma di intuizione. Nel riquadro di navigazione, scegli Insights per visualizzare i dettagli dell'anomalia, tra cui una panoramica, metriche aggregate, eventi pertinenti e consigli. Per ulteriori informazioni sulla revisione degli approfondimenti, consulta il post del blog Gathering operating insights with AIOps using Amazon DevOps Guru | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Pulisci ed elimina le risorse. | Dopo aver seguito questo schema, dovresti rimuovere le risorse che hai creato per evitare di incorrere in ulteriori addebiti. Esegui questi comandi:
| DevOps ingegnere |