Créez automatiquement des CloudWatch tableaux de bord Amazon basés sur des balises - Recommandations AWS

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.

Créez automatiquement des CloudWatch tableaux de bord Amazon basés sur des balises

Créée par Janak Vadaria (AWS), RAJNEESH TYAGI (AWS) et Vinodkumar Mandalapu (AWS)

Dépôt de code : Goldensignals

Environnement : Production

Technologies : opérations CloudNative ; gestion et gouvernance

Services AWS : AWS CDK ; Amazon CloudWatch ; AWS CodeBuild ; AWS CodePipeline

Récapitulatif

La création manuelle de différents CloudWatch tableaux de bord Amazon peut prendre beaucoup de temps, en particulier lorsque vous devez créer et mettre à jour plusieurs ressources pour adapter automatiquement votre environnement. Une solution qui crée et met à jour automatiquement vos CloudWatch tableaux de bord peut vous faire gagner du temps. Ce modèle vous permet de déployer un AWS Cloud Development Kit (AWS CDK) pipeline entièrement automatisé qui crée et met à jour CloudWatch des tableaux de bord pour vos AWS ressources en fonction des événements de modification des balises, afin d'afficher les métriques Golden Signals.

Dans le domaine de l'ingénierie de fiabilité des sites (SRE), Golden Signals fait référence à un ensemble complet de mesures qui offrent une vue d'ensemble d'un service du point de vue de l'utilisateur ou du consommateur. Ces indicateurs incluent la latence, le trafic, les erreurs et la saturation. Pour plus d'informations, voir Qu'est-ce que l'ingénierie de fiabilité des sites (SRE) ? sur le AWS site Web.

La solution fournie par ce modèle est axée sur les événements. Une fois déployé, il surveille en permanence les événements de modification des balises et met automatiquement à jour les CloudWatch tableaux de bord et les alarmes.

Conditions préalables et limitations

Prérequis

Limites

Cette solution crée actuellement des tableaux de bord automatisés pour les services AWS suivants uniquement :

Architecture

Pile technologique cible

Architecture cible

Architecture cible pour créer des tableaux de bord basés sur des balises CloudWatch
  1. Un événement de modification de AWS balise pour les balises d'application configurées ou les modifications de code initie un pipeline AWS CodePipeline pour créer et déployer des CloudWatch tableaux de bord mis à jour.

  2. AWS CodeBuild exécute un script Python pour rechercher les ressources dont les balises sont configurées et stocke les identifiants des ressources dans un fichier local d'un CodeBuild environnement.

  3. CodeBuild exécute cdk synth pour générer des AWS CloudFormation modèles qui déploient des CloudWatch tableaux de bord et des alarmes.

  4. CodePipeline déploie les AWS CloudFormation modèles dans la région spécifiée Compte AWS .

  5. Lorsque la AWS CloudFormation pile a été déployée avec succès, vous pouvez consulter les CloudWatch tableaux de bord et les alarmes.

Automatisation et mise à l'échelle

Cette solution a été automatisée à l'aide du AWS CDK. Vous pouvez trouver le code dans les tableaux de bord GitHub Golden Signals sur le CloudWatch référentiel Amazon. Pour une mise à l'échelle supplémentaire et pour créer des tableaux de bord personnalisés, vous pouvez configurer plusieurs clés et valeurs de balise.

Outils

Services Amazon

  • Amazon EventBridge est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources, notamment des AWS Lambda fonctions, des points de terminaison d'appel HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres domaines. Comptes AWS

  • AWS CodePipelinevous permet de modéliser et de configurer rapidement les différentes étapes d'une version logicielle et d'automatiser les étapes nécessaires à la publication continue des modifications logicielles.

  • AWS CodeBuildest un service de génération entièrement géré qui vous aide à compiler le code source, à exécuter des tests unitaires et à produire des artefacts prêts à être déployés.

  • AWS CodeCommitest un service de contrôle de version qui vous permet de stocker et de gérer de manière privée des référentiels Git sans avoir à gérer votre propre système de contrôle de source.

  • AWS Command Line Interface (AWS CLI) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.

  • AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

Bonnes pratiques

Pour des raisons de sécurité, vous pouvez utiliser le chiffrement et l'authentification pour les référentiels sources qui se connectent à vos pipelines. Pour connaître les meilleures pratiques supplémentaires, consultez les CodePipeline meilleures pratiques et les cas d'utilisation dans la CodePipeline documentation.

Épopées

TâcheDescriptionCompétences requises

Configurez et déployez l'exemple d'application.

  1. Clonez le référentiel GitHub d'exemples de code à l'aide de la commande :

    git clone https://github.com/aws-samples/golden-signals-dashboards-sample-app
  2. Accédez au référentiel cloné sur votre ordinateur et ouvrez le src/project-settings.ts fichier avec l'éditeur de votre choix.

  3. Modifiez la valeur projectSettings constante en fonction de vos balises de AWS ressources et des mappages d'applications.

  4. Définissez les variables AWS_ACCOUNTAWS_REGION, et d'GS_DASHBOARD_INSTANCEenvironnement :

    • Réglez AWS_ACCOUNT sur le numéro de compte de votre AWS compte.

    • Définissez AWS_REGION la région dans laquelle vous souhaitez déployer l'exemple d'application.

    • Définissez GS_DASHBOARD_INSTANCE surdev, ou testprod, en fonction de votre environnement de développement. (Nous recommandons test la procédure de test décrite dans ce modèle.)

  5. Configurez le AWS CLI avec vos AWS informations d'identification. Pour plus d'informations, consultez la section Définir et afficher les paramètres de configuration à l'aide de commandes dans la AWS CLI documentation.

  6. Exécutez la commande suivante pour déployer l'exemple d'application de tableau de bord Golden Signals :

    sh deploy.sh
AWS DevOps

Créez automatiquement des tableaux de bord et des alarmes.

Après avoir déployé l'exemple d'application, vous pouvez créer toutes les ressources prises en charge par cette solution avec les valeurs de balise attendues, ce qui créera automatiquement les tableaux de bord et les alarmes spécifiés.

Pour tester cette solution, créez une AWS Lambda fonction :

  1. Connectez-vous à l' AWS Management Console Région AWS endroit où vous avez déployé l'exemple d'application.

  2. Ouvrez la console Lambda à l'adresse https://console.aws.amazon.com/lambda/.

  3. Choisissez Créer une fonction, puis entrez le nom de la fonction.

  4. Dans le volet des paramètres avancés, sélectionnez Activer les balises, puis choisissez Ajouter une nouvelle balise. Entrez la clé et la valeur suivantes :

    • Clé : AutoDashboard

    • Valeur : True

  5. Choisissez Créer une fonction.

    La fonction Lambda démarre immédiatement un pipeline de code, qui crée automatiquement les tableaux de bord et les alarmes pour cette fonction Lambda en particulier.

  6. Pour consulter les tableaux de bord automatisés et les alarmes, ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/. Vous pouvez afficher les tableaux de bord et les alarmes personnalisés pour la fonction que vous avez spécifiée dans la projectSettings constante (App1-Lambda par défaut).

  7. Sélectionnez le tableau de bord de la fonction Lambda pour afficher les tableaux de bord automatisés supplémentaires créés dans le cadre de cette solution.

  8. Répétez ces étapes pour les autres services, tels qu'Amazon RDS, Amazon SNS et DynamoDB AWS Auto Scaling, afin de générer les tableaux de bord associés. Pour un exemple pour Amazon RDS, consultez la section Informations supplémentaires.

AWS DevOps
TâcheDescriptionCompétences requises

Supprimez la golden-signals-dashboard construction.

  1. Pour supprimer toutes les AWS CloudFormation piles créées par l'exemple d'application, vous devez reconfigurer les variables d'GS_DASHBOARD_INSTANCEenvironnement AWS_ACCOUNTAWS_REGION, et. La destroy.sh commande nécessite ces configurations.

    • AWS_ACCOUNTest l'identifiant de votre AWS compte.

    • AWS_REGIONest la région dans laquelle vous avez déployé votre exemple d'application.

    • GS_DASHBOARD_INSTANCEest devtest, ouprod, en fonction de vos paramètres précédents.

  2. Configurez AWS CLI avec vos AWS informations d'identification.

  3. Exécutez la commande suivante pour supprimer l'exemple d'application et toutes les AWS CloudFormation piles associées :

    sh destroy.sh
AWS DevOps

Résolution des problèmes

ProblèmeSolution

Commande Python introuvable (référence à findresources.sh la ligne 8).

Vérifiez la version de votre installation Python. Si vous avez installé la version 3 de Python, python python3 remplacez-la par la ligne 8 du resources.sh fichier, puis réexécutez la sh deploy.sh commande pour déployer la solution.

Ressources connexes

Informations supplémentaires

L'illustration suivante montre un exemple de tableau de bord pour Amazon RDS créé dans le cadre de cette solution.

Exemple de tableau de bord pour Amazon RDS