Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verbessern Sie die Betriebsleistung, indem Sie Amazon DevOps Guru mit dem AWS CDK für mehrere AWS-Regionen, Konten und Organisationseinheiten aktivieren
Erstellt von Dr. Rahul Sharad Gaikwad (AWS)
Code-Repository: Amazon DevOps Guru-Beispielcode | Umgebung: PoC oder Pilotprojekt | Technologien: Verwaltung und Verwaltung CloudNative; Betrieb DevOps; Sicherheit, Identität, Compliance; Serverlos |
AWS-Services: Amazon API Gateway; AWS CDK; Amazon DevOps Guru; Amazon DynamoDB; AWS Organizations |
Übersicht
Dieses Muster zeigt die Schritte zur Aktivierung des Amazon DevOps Guru-Service in mehreren Regionen, Konten und Organisationseinheiten (OUs) von Amazon Web Services (AWS) mithilfe des AWS Cloud Development Kit (AWS CDK) in TypeScript. Sie können AWS CDK-Stacks verwenden, um AWS CloudFormation StackSets vom (primären) AWS-Administratorkonto aus bereitzustellen, um Amazon DevOps Guru für mehrere Konten zu aktivieren, anstatt sich bei jedem Konto anzumelden und DevOps Guru für jedes Konto einzeln zu aktivieren.
Amazon DevOps Guru bietet Funktionen für künstliche Intelligenz (AIOps), mit denen Sie die Verfügbarkeit Ihrer Anwendungen verbessern und betriebliche Probleme schneller lösen können. DevOps Guru reduziert Ihren manuellen Aufwand, indem es Empfehlungen anwendet, die auf maschinellem Lernen (ML) basieren, ohne dass ML-Kenntnisse erforderlich sind. DevOps Guru analysiert Ihre Ressourcen und Betriebsdaten. Wenn es Anomalien feststellt, bietet es Kennzahlen, Ereignisse und Empfehlungen, die Ihnen helfen, das Problem zu lösen.
Dieses Muster beschreibt drei Bereitstellungsoptionen für die Aktivierung von Amazon DevOps Guru:
Für alle Stack-Ressourcen in mehreren Konten und Regionen
Für alle Stack-Ressourcen in allen Organisationseinheiten
Für bestimmte Stack-Ressourcen über mehrere Konten und Regionen
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto.
AWS-Befehlszeilenschnittstelle (AWS CLI), installiert und konfiguriert. (Weitere Informationen finden Sie unter Installation, Aktualisierung und Deinstallation der AWS-CLI in der AWS-CLI-Dokumentation.)
AWS CDK Toolkit, installiert und konfiguriert. (Siehe AWS CDK Toolkit in der AWS CDK-Dokumentation.)
Node Package Manager (npm), installiert und konfiguriert für das AWS-CDK in. TypeScript (Weitere Informationen finden Sie unter Node.js und npm herunterladen und installieren in der npm-Dokumentation
.) Python3 wurde installiert und konfiguriert, um ein Python-Skript auszuführen, um Datenverkehr in die serverlose Beispielanwendung einzuschleusen. (Siehe Python-Setup und -Verwendung
in der Python-Dokumentation.) Pip, installiert und konfiguriert, um die Python-Anforderungsbibliothek zu installieren. (Weitere Informationen finden Sie in den Pip-Installationsanweisungen
auf der PyPl Website.)
Produktversionen
AWS CDK Toolkit Version 1.107.0 oder höher
npm Version 7.9.0 oder höher
Node.js Version 15.3.0 oder höher
Architektur
Technologien
Die Architektur für dieses Muster umfasst die folgenden Dienste:
AWS-CDK-Stapel
Das Muster verwendet die folgenden AWS-CDK-Stacks:
CdkStackSetAdminRole
— Erstellt eine Administratorrolle für AWS Identity and Access Management (IAM), um eine Vertrauensbeziehung zwischen dem Administrator und den Zielkonten herzustellen.CdkStackSetExecRole
— Erstellt eine IAM-Rolle, um dem Administratorkonto zu vertrauen.CdkDevopsGuruStackMultiAccReg
— Aktiviert DevOps Guru in mehreren AWS-Regionen und Konten für alle Stacks und richtet Amazon Simple Notification Service (Amazon SNS) -Benachrichtigungen ein.CdkDevopsGuruStackMultiAccRegSpecStacks
— Aktiviert DevOps Guru in mehreren AWS-Regionen und Konten für bestimmte Stacks und richtet Amazon SNS SNS-Benachrichtigungen ein.CdkDevopsguruStackOrgUnit
— Aktiviert DevOps Guru in allen Organisationseinheiten und richtet Amazon SNS SNS-Benachrichtigungen ein.CdkInfrastructureStack
— Stellt serverlose Beispielanwendungskomponenten wie API Gateway, Lambda und DynamoDB im Administratorkonto bereit, um die Fehlerinjektion und die Generierung von Erkenntnissen zu demonstrieren.
Beispiel für eine Anwendungsarchitektur
Das folgende Diagramm zeigt die Architektur einer serverlosen Beispielanwendung, die in mehreren Konten und Regionen bereitgestellt wurde. Das Muster verwendet das Administratorkonto, um alle AWS-CDK-Stacks bereitzustellen. Es verwendet auch das Administratorkonto als eines der Zielkonten für die Einrichtung DevOps von Guru.
Wenn DevOps Guru aktiviert ist, erstellt es zunächst eine Baseline-Analyse für das Verhalten der einzelnen Ressourcen und nimmt dann Betriebsdaten aus CloudWatch den bereitgestellten Kennzahlen auf.
Wenn es eine Anomalie erkennt, korreliert es diese mit den Ereignissen aus CloudTrail und generiert daraus Erkenntnisse.
Die Erkenntnisse liefern eine korrelierte Abfolge von Ereignissen sowie vorgeschriebene Empfehlungen, die es dem Betreiber ermöglichen, die verursachende Ressource zu identifizieren.
Amazon SNS sendet Benachrichtigungen an den Betreiber.
![Eine serverlose Beispielanwendung, die in mehreren Konten und Regionen bereitgestellt wurde.](images/pattern-img/6075ca48-862a-4aa0-93c6-10bad8195a5c/images/beeb0992-aaa8-4f08-b983-685b6b8b8d5e.png)
Automatisierung und Skalierung
Das mit diesem Muster bereitgestellte GitHub Repository
Tools
AWS-Services
AWS CDK — Mit dem AWS Cloud Development Kit (AWS CDK) können Sie Ihre Cloud-Infrastruktur als Code in einer der fünf unterstützten Programmiersprachen definieren: TypeScript,, Python JavaScript, Java und C#.
AWS CLI — Die AWS-Befehlszeilenschnittstelle (AWS CLI) ist ein einheitliches Tool, das eine konsistente Befehlszeilenschnittstelle für die Interaktion mit AWS-Services und -Ressourcen bietet.
Code
Der Quellcode für dieses Muster ist im Amazon DevOps Guru CDK Samples-Repository
Wichtig: Einige der Geschichten in diesem Muster enthalten AWS CDK- und AWS CLI-Befehlsbeispiele, die für Unix, Linux und macOS formatiert sind. Ersetzen Sie unter Windows das Fortsetzungszeichen mit dem umgekehrten Schrägstrich (\) am Ende jeder Zeile durch ein Caret-Zeichen (^).
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Konfigurieren Sie benannte AWS-Profile. | Richten Sie Ihre benannten AWS-Profile wie folgt ein, um Stacks in einer Umgebung mit mehreren Konten bereitzustellen. Für das Administratorkonto:
Für das Zielkonto:
Weitere Informationen finden Sie unter Verwenden von benannten Profilen in der AWS-CLI-Dokumentation. | DevOps Ingenieur |
Überprüfen Sie die AWS-Profilkonfigurationen. | (Optional) Sie können Ihre AWS-Profilkonfigurationen in den | DevOps Ingenieur |
Überprüfen Sie die AWS-CDK-Version. | Überprüfen Sie die Version des AWS CDK Toolkit, indem Sie den folgenden Befehl ausführen:
Für dieses Muster ist Version 1.107.0 oder höher erforderlich. Wenn Sie eine frühere Version von AWS CDK haben, folgen Sie den Anweisungen in der AWS CDK-Dokumentation, um sie zu aktualisieren. | DevOps Ingenieur |
Klonen Sie den Projektcode. | Klonen Sie das GitHub Repository für dieses Muster mit dem folgenden Befehl:
| DevOps Ingenieur |
Installieren Sie die Paketabhängigkeiten und kompilieren Sie die TypeScript Dateien. | Installieren Sie die Paketabhängigkeiten und kompilieren Sie die TypeScript Dateien, indem Sie die folgenden Befehle ausführen:
Mit diesen Befehlen werden alle Pakete aus dem Beispiel-Repository installiert. Wichtig: Wenn Sie eine Fehlermeldung über fehlende Pakete erhalten, verwenden Sie einen der folgenden Befehle:
–oder–
Die Liste der Paketnamen und Versionen finden Sie im | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Konfigurieren Sie eine E-Mail-Adresse für Amazon SNS SNS-Benachrichtigungen. | Gehen Sie wie folgt vor, um eine E-Mail-Adresse für Amazon SNS SNS-Benachrichtigungen anzugeben:
| DevOps Ingenieur |
Erstellen Sie den Projektcode. | Erstellen Sie den Projektcode und synthetisieren Sie die Stacks, indem Sie den folgenden Befehl ausführen:
Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:
Weitere Informationen und Schritte finden Sie unter Ihre erste AWS-CDK-App in der AWS-CDK-Dokumentation. | DevOps Ingenieur |
Listet die AWS CDK-Stacks auf. | Führen Sie den folgenden Befehl aus, um alle AWS-CDK-Stacks aufzulisten:
Der Befehl zeigt die folgende Liste an:
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Stellen Sie die AWS CDK-Stacks für die Erstellung von IAM-Rollen bereit. | Dieses Muster verwendet AWS CloudFormation StackSets, um Stack-Operationen über mehrere Konten hinweg durchzuführen. Wenn Sie Ihr erstes Stack-Set erstellen, müssen Sie die folgenden IAM-Rollen erstellen, um die erforderlichen Berechtigungen in Ihren AWS-Konten einzurichten:
Hinweis: Die Rollen müssen genau diese Namen haben.
Weitere Informationen finden Sie in der CloudFormation AWS-Dokumentation unter Gewähren selbstverwalteter Berechtigungen. | DevOps Ingenieur |
Stellen Sie den AWS CDK-Stack bereit, um DevOps Guru für mehrere Konten zu aktivieren. | Der AWS
Derzeit ist Amazon DevOps Guru in den AWS-Regionen verfügbar, die in den häufig gestellten Fragen zu DevOps Guru | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Extrahieren Sie OU-IDs. | Identifizieren Sie in der AWS Organizations | DevOps Ingenieur |
Aktivieren Sie vom Service verwaltete Berechtigungen für Organisationseinheiten. | Wenn Sie AWS Organizations für die Kontoverwaltung verwenden, müssen Sie service-verwaltete Berechtigungen gewähren, um DevOps Guru zu aktivieren. Anstatt die IAM-Rollen manuell zu erstellen, verwenden Sie organisationsbasierte vertrauenswürdige Zugriffs- und Service-Linked Roles (SLRs). | DevOps Ingenieur |
Stellen Sie den AWS CDK-Stack bereit, um DevOps Guru in allen Organisationseinheiten zu aktivieren. | Der AWS
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Stellen Sie die AWS CDK-Stacks für die Erstellung von IAM-Rollen bereit. | Wenn Sie die in der ersten Option aufgeführten erforderlichen IAM-Rollen noch nicht erstellt haben, tun Sie dies zuerst:
Weitere Informationen finden Sie in der CloudFormation AWS-Dokumentation unter Gewähren selbstverwalteter Berechtigungen. | DevOps Ingenieur |
Löschen Sie vorhandene Stapel. | Wenn Sie bereits die erste Option verwendet haben, um DevOps Guru für alle Stack-Ressourcen zu aktivieren, können Sie den alten Stack mit dem folgenden Befehl löschen:
Sie können den | DevOps Ingenieur |
Aktualisieren Sie den AWS CDK-Stack mit einer Stack-Liste. |
| Dateningenieur |
Stellen Sie den AWS CDK-Stack bereit, um DevOps Guru für bestimmte Stack-Ressourcen über mehrere Konten hinweg zu aktivieren. | Der AWS
Hinweis: Wenn Sie diesen Stack bereits für Option 1 bereitgestellt haben, ändern Sie den | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Stellen Sie das Beispiel für einen serverlosen Infrastrukturstapel bereit. | Der
| DevOps Ingenieur |
Fügen Sie Beispieldatensätze in DynamoDB ein. | Führen Sie den folgenden Befehl aus, um die DynamoDB-Tabelle mit Beispieldatensätzen zu füllen. Geben Sie den richtigen Pfad für das Skript an.
Die Ausgabe des Befehls sieht wie folgt aus:
| DevOps Ingenieur |
Überprüfen Sie die eingefügten Datensätze in DynamoDB. | Um zu überprüfen, ob die DynamoDB-Tabelle die Beispieldatensätze aus der
| DevOps Ingenieur |
Warten Sie, bis die Ressourcen das Baselining abgeschlossen haben. | Dieser serverlose Stack hat einige Ressourcen. Wir empfehlen, dass Sie 2 Stunden warten, bevor Sie die nächsten Schritte ausführen. Wenn Sie diesen Stack in einer Produktionsumgebung bereitgestellt haben, kann es bis zu 24 Stunden dauern, bis das Baselining abgeschlossen ist. Dies hängt von der Anzahl der Ressourcen ab, die Sie in DevOps Guru für die Überwachung ausgewählt haben. | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Aktualisieren Sie den AWS CDK-Infrastruktur-Stack. | Um DevOps Guru Insights auszuprobieren, können Sie einige Konfigurationsänderungen vornehmen, um ein typisches Betriebsproblem zu reproduzieren.
| DevOps Ingenieur |
Fügen Sie HTTP-Anfragen in die API ein. | Fügen Sie eingehenden Datenverkehr in Form von HTTP-Anfragen in die API ein:
| DevOps Ingenieur |
Sehen Sie sich DevOps Guru Insights an. | Unter Standardbedingungen zeigt das DevOps Guru-Dashboard im Zähler für laufende Einblicke Null an. Wenn es eine Anomalie erkennt, gibt es eine Warnung in Form eines Einblicks aus. Wählen Sie im Navigationsbereich Insights aus, um die Details der Anomalie anzuzeigen, einschließlich einer Übersicht, aggregierter Kennzahlen, relevanter Ereignisse und Empfehlungen. Weitere Informationen zur Überprüfung von Erkenntnissen finden Sie im Blogbeitrag Gewinnen betrieblicher Erkenntnisse mit AIOps mithilfe von Amazon DevOps Guru | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Ressourcen bereinigen und löschen. | Nachdem Sie dieses Muster durchgegangen sind, sollten Sie die von Ihnen erstellten Ressourcen entfernen, um weitere Kosten zu vermeiden. Führen Sie die folgenden Befehle aus:
| DevOps Ingenieur |