Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Améliorez les performances opérationnelles en activant Amazon DevOps Guru sur plusieurs régions, comptes et unités d'organisation AWS avec le kit AWS CDK
Créée par le Dr Rahul Sharad Gaikwad (AWS)
Référentiel de code : exemple de code Amazon DevOps Guru | Environnement : PoC ou pilote | Technologies : gestion et gouvernance CloudNative ; opérations DevOps ; sécurité, identité, conformité ; sans serveur |
Services AWS : Amazon API Gateway ; AWS CDK ; Amazon DevOps Guru ; Amazon DynamoDB ; AWS Organizations |
Récapitulatif
Ce modèle décrit les étapes à suivre pour activer le service Amazon DevOps Guru dans plusieurs régions, comptes et unités organisationnelles (UO) Amazon Web Services (AWS) à l'aide du kit de développement cloud (AWS CDK) dans TypeScript. Vous pouvez utiliser les piles AWS CDK pour déployer AWS CloudFormation StackSets depuis le compte AWS de l'administrateur (principal) afin d'activer Amazon DevOps Guru sur plusieurs comptes, au lieu de vous connecter à chaque compte et d'activer DevOps Guru individuellement pour chaque compte.
Amazon DevOps Guru fournit des fonctionnalités d'intelligence artificielle (AIOps) pour vous aider à améliorer la disponibilité de vos applications et à résoudre les problèmes opérationnels plus rapidement. DevOps Guru réduit vos efforts manuels en appliquant des recommandations basées sur l'apprentissage automatique (ML), sans aucune expertise en ML. DevOps Guru analyse vos ressources et vos données opérationnelles. S'il détecte des anomalies, il fournit des mesures, des événements et des recommandations pour vous aider à résoudre le problème.
Ce modèle décrit trois options de déploiement pour activer Amazon DevOps Guru :
Pour toutes les ressources, empilez des ressources sur plusieurs comptes et régions
Pour toutes les ressources de pile des unités d'organisation
Pour des ressources de stockage spécifiques sur plusieurs comptes et régions
Conditions préalables et limitations
Prérequis
Un compte AWS actif.
Interface de ligne de commande AWS (AWS CLI), installée et configurée. (Voir Installation, mise à jour et désinstallation de l'interface de ligne de commande AWS dans la documentation de l'interface de ligne de commande AWS.)
AWS CDK Toolkit, installé et configuré. (Voir le kit d'outils AWS CDK dans la documentation AWS CDK.)
Node Package Manager (npm), installé et configuré pour le AWS CDK dans. TypeScript (Voir Téléchargement et installation de Node.js et de npm
dans la documentation de npm.) Python3 installé et configuré, pour exécuter un script Python afin d'injecter du trafic dans l'exemple d'application sans serveur. (Voir Configuration et utilisation de Python
dans la documentation Python.) Pip, installé et configuré pour installer la bibliothèque de requêtes Python. (Voir les instructions d'installation de pip
sur le PyPl site Web.)
Versions du produit
AWS CDK Toolkit version 1.107.0 ou ultérieure
npm version 7.9.0 ou ultérieure
Node.js version 15.3.0 ou ultérieure
Architecture
Technologies
L'architecture de ce modèle inclut les services suivants :
Piles de kits de développement AWS
Le modèle utilise les piles AWS CDK suivantes :
CdkStackSetAdminRole
— Crée un rôle d'administrateur AWS Identity and Access Management (IAM) afin d'établir une relation de confiance entre l'administrateur et les comptes cibles.CdkStackSetExecRole
— Crée un rôle IAM pour faire confiance au compte administrateur.CdkDevopsGuruStackMultiAccReg
— Active DevOps Guru dans plusieurs régions et comptes AWS pour toutes les piles, et configure les notifications Amazon Simple Notification Service (Amazon SNS).CdkDevopsGuruStackMultiAccRegSpecStacks
— Active DevOps Guru dans plusieurs régions AWS et compte pour des stacks spécifiques, et configure les notifications Amazon SNS.CdkDevopsguruStackOrgUnit
— Active DevOps Guru dans toutes les unités d'organisation et configure les notifications Amazon SNS.CdkInfrastructureStack
— Déploie des exemples de composants d'application sans serveur tels que API Gateway, Lambda et DynamoDB dans le compte administrateur pour démontrer l'injection de défauts et la génération d'informations.
Exemple d'architecture d'application
Le schéma suivant illustre l'architecture d'un exemple d'application sans serveur qui a été déployée sur plusieurs comptes et régions. Le modèle utilise le compte administrateur pour déployer toutes les piles AWS CDK. Il utilise également le compte administrateur comme l'un des comptes cibles pour configurer DevOps Guru.
Lorsque DevOps Guru est activé, il définit d'abord le comportement de chaque ressource comme base de référence, puis ingère les données opérationnelles issues des métriques vendues CloudWatch .
S'il détecte une anomalie, il la met en corrélation avec les événements qui en découlent CloudTrail et génère un aperçu.
Les informations fournissent une séquence d'événements corrélée ainsi que des recommandations prescrites pour permettre à l'opérateur d'identifier la ressource responsable.
Amazon SNS envoie des messages de notification à l'opérateur.
![Exemple d'application sans serveur qui a été déployée sur plusieurs comptes et régions.](images/pattern-img/6075ca48-862a-4aa0-93c6-10bad8195a5c/images/beeb0992-aaa8-4f08-b983-685b6b8b8d5e.png)
Automatisation et évolutivité
Le GitHub référentiel
Outils
Services AWS
AWS CDK — AWS Cloud Development Kit (AWS CDK) vous aide à définir votre infrastructure cloud sous forme de code dans l'un des cinq langages de programmation pris en charge : JavaScript Python TypeScript, Java et C#.
AWS CLI — AWS Command Line Interface (AWS CLI) est un outil unifié qui fournit une interface de ligne de commande cohérente pour interagir avec les services et ressources AWS.
Code
Le code source de ce modèle est disponible sur GitHub, dans le référentiel Amazon DevOps Guru CDK Samples
Important : certains des articles de ce modèle incluent des exemples de commandes AWS CDK et AWS CLI formatés pour Unix, Linux et macOS. Pour Windows, remplacez le caractère de continuation de la barre oblique inverse (\) à la fin de chaque ligne par un curseur (^).
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Configurez les profils nommés AWS. | Configurez vos profils nommés AWS comme suit pour déployer des stacks dans un environnement multi-comptes. Pour le compte administrateur :
Pour le compte cible :
Pour plus d'informations, consultez la section Utilisation de profils nommés dans la documentation de l'AWS CLI. | DevOps ingénieur |
Vérifiez les configurations des profils AWS. | (Facultatif) Vous pouvez vérifier les configurations de votre profil AWS dans les | DevOps ingénieur |
Vérifiez la version du kit AWS CDK. | Vérifiez la version du kit d'outils AWS CDK en exécutant la commande suivante :
Ce modèle nécessite la version 1.107.0 ou ultérieure. Si vous disposez d'une version antérieure du CDK AWS, suivez les instructions de la documentation du CDK AWS pour la mettre à jour. | DevOps ingénieur |
Clonez le code du projet. | Clonez le GitHub référentiel pour ce modèle à l'aide de la commande :
| DevOps ingénieur |
Installez les dépendances du package et compilez les TypeScript fichiers. | Installez les dépendances du package et compilez les TypeScript fichiers en exécutant les commandes suivantes :
Ces commandes installent tous les packages du référentiel d'échantillons. Important : Si vous recevez des erreurs concernant des packages manquants, utilisez l'une des commandes suivantes :
—ou—
Vous trouverez la liste des noms et des versions des packages dans la | DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Configurez une adresse e-mail pour les notifications Amazon SNS. | Suivez ces étapes pour fournir une adresse e-mail pour les notifications Amazon SNS :
| DevOps ingénieur |
Créez le code du projet. | Créez le code du projet et synthétisez les piles en exécutant la commande suivante :
Vous devez voir des résultats similaires à ce qui suit :
Pour plus d'informations et pour connaître les étapes à suivre, consultez Votre première application AWS CDK dans la documentation AWS CDK. | DevOps ingénieur |
Répertoriez les piles AWS CDK. | Exécutez la commande suivante pour répertorier toutes les piles AWS CDK :
La commande affiche la liste suivante :
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Déployez les piles AWS CDK pour créer des rôles IAM. | Ce modèle utilise AWS CloudFormation StackSets pour effectuer des opérations de stack sur plusieurs comptes. Si vous créez votre premier stack set, vous devez créer les rôles IAM suivants pour obtenir les autorisations requises configurées dans vos comptes AWS :
Remarque : Les rôles doivent porter ces noms exacts.
Pour plus d'informations, consultez la section Accorder des autorisations autogérées dans la CloudFormation documentation AWS. | DevOps ingénieur |
Déployez la pile AWS CDK pour activer DevOps Guru sur plusieurs comptes. | La
Amazon DevOps Guru est actuellement disponible dans les régions AWS répertoriées dans la FAQ DevOps Guru | DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Extrayez les identifiants UO. | Sur la console AWS Organizations | DevOps ingénieur |
Activez les autorisations gérées par les services pour les unités d'organisation. | Si vous utilisez AWS Organizations pour la gestion de votre compte, vous devez accorder des autorisations gérées par le service pour activer DevOps Guru. Au lieu de créer les rôles IAM manuellement, utilisez un accès sécurisé et des rôles liés à un service (SLR) basés sur l'organisation. | DevOps ingénieur |
Déployez la pile AWS CDK pour activer DevOps Guru dans toutes les unités d'organisation. | La
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Déployez les piles AWS CDK pour créer des rôles IAM. | Si vous n'avez pas encore créé les rôles IAM requis indiqués dans la première option, faites-le d'abord :
Pour plus d'informations, consultez la section Accorder des autorisations autogérées dans la CloudFormation documentation AWS. | DevOps ingénieur |
Supprimez les piles existantes. | Si vous avez déjà utilisé la première option pour activer DevOps Guru pour toutes les ressources de la pile, vous pouvez supprimer l'ancienne pile en utilisant la commande suivante :
Vous pouvez également modifier le | DevOps ingénieur |
Mettez à jour la pile AWS CDK avec une liste de piles. |
| Ingénieur de données |
Déployez la pile AWS CDK pour permettre à DevOps Guru d'accéder à des ressources de pile spécifiques sur plusieurs comptes. | La
Remarque : Si vous avez déjà déployé cette pile pour l'option 1, modifiez le | DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Déployez l'exemple de pile d'infrastructure sans serveur. | La
| DevOps ingénieur |
Insérez des exemples d'enregistrements dans DynamoDB. | Exécutez la commande suivante pour remplir la table DynamoDB avec des exemples d'enregistrements. Indiquez le chemin correct pour le
La commande affiche la sortie suivante :
| DevOps ingénieur |
Vérifiez les enregistrements insérés dans DynamoDB. | Pour vérifier que la table DynamoDB inclut les exemples d'enregistrements du fichier, accédez à
| DevOps ingénieur |
Attendez que les ressources aient terminé la définition de base. | Cette pile sans serveur dispose de quelques ressources. Nous vous recommandons d'attendre 2 heures avant de passer aux étapes suivantes. Si vous avez déployé cette pile dans un environnement de production, l'établissement de la base de référence peut prendre jusqu'à 24 heures, en fonction du nombre de ressources que vous avez sélectionné pour surveiller dans DevOps Guru. | DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Mettez à jour la pile d'infrastructure AWS CDK. | Pour essayer DevOps Guru Insights, vous pouvez apporter des modifications de configuration afin de reproduire un problème de fonctionnement typique.
| DevOps ingénieur |
Injectez des requêtes HTTP sur l'API. | Injectez du trafic entrant sous forme de requêtes HTTP sur l'
| DevOps ingénieur |
Passez en revue DevOps Guru Insights. | Dans des conditions standard, le tableau de bord DevOps Guru affiche zéro dans le compteur d'informations continues. S'il détecte une anomalie, il déclenche une alerte sous forme d'aperçu. Dans le volet de navigation, choisissez Insights pour voir les détails de l'anomalie, notamment une vue d'ensemble, des mesures agrégées, des événements pertinents et des recommandations. Pour plus d'informations sur l'examen des informations, consultez le billet de blog Obtenir des informations opérationnelles grâce à l'AIOps à l'aide d'Amazon DevOps Guru | DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Nettoyez et supprimez les ressources. | Après avoir suivi ce schéma, vous devez supprimer les ressources que vous avez créées pour éviter d'encourir des frais supplémentaires. Exécutez les commandes suivantes :
| DevOps ingénieur |