タグベースの Amazon CloudWatch ダッシュボードを自動的に作成する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

タグベースの Amazon CloudWatch ダッシュボードを自動的に作成する

作成者: Janak Vadaria (AWS)、RAJNEESH TYAGI (AWS)、Vinodkumar Mandalapu (AWS)

コードリポジトリ: Goldensignals

環境:本稼働

テクノロジー: オペレーション CloudNative、管理とガバナンス

AWS サービス: AWS CDK、Amazon CloudWatch、AWS CodeBuild、AWS CodePipeline

[概要]

さまざまな Amazon CloudWatch ダッシュボードを手動で作成すると、特に環境を自動的にスケーリングするために複数のリソースを作成および更新する必要がある場合に、時間がかかることがあります。 CloudWatch ダッシュボードを自動的に作成および更新するソリューションを使用すると、時間を節約できます。このパターンは、タグ変更イベントに基づいて AWS リソースの CloudWatch ダッシュボードを作成および更新する完全自動化された AWS Cloud Development Kit (AWS CDK) パイプラインをデプロイして、Golden Signals メトリクスを表示するのに役立ちます。

サイト信頼性エンジニアリング (SRE) では、Golden Signals は、ユーザーまたはコンシューマーの観点からサービスを幅広く把握できる包括的なメトリクスのセットを指します。これらのメトリクスは、レイテンシー、トラフィック、エラー、飽和度で構成されます。詳細については、 ウェブサイトの「サイト信頼性エンジニアリング (SRE) とは」を参照してください。 AWS

このパターンが提供するソリューションは、イベント駆動型です。デプロイ後、タグ変更イベントを継続的にモニタリングし、 CloudWatch ダッシュボードとアラームを自動的に更新します。

前提条件と制限

前提条件

制約事項

このソリューションは現在、次の AWS サービスのみの自動ダッシュボードを作成します。

アーキテクチャ

ターゲットテクノロジースタック

ターゲット アーキテクチャ

タグベースの CloudWatch ダッシュボードを作成するためのターゲットアーキテクチャ
  1. 設定されたアプリケーション AWS タグまたはコード変更のタグ変更イベントにより、 でパイプラインが開始され AWS CodePipeline 、更新された CloudWatch ダッシュボードが構築およびデプロイされます。

  2. AWS CodeBuild は Python スクリプトを実行してタグを設定しているリソースを検索し、リソース IDsを CodeBuild 環境のローカルファイルに保存します。

  3. CodeBuild は cdk 同期を実行して、 CloudWatch ダッシュボードとアラームをデプロイする AWS CloudFormation テンプレートを生成します。

  4. CodePipeline は、指定された AWS アカウント およびリージョンに AWS CloudFormation テンプレートをデプロイします。

  5. AWS CloudFormation スタックが正常にデプロイされると、 CloudWatch ダッシュボードとアラームを表示できます。

自動化とスケール

このソリューションは、 を使用して自動化されています AWS CDK。このコードは、 GitHub Amazon リポジトリの Golden Signals Dashboards にあります CloudWatch。追加のスケーリングとカスタムダッシュボードの作成のために、複数のタグキーと値を設定できます。

ツール

Amazon サービス

  • Amazon EventBridge はサーバーレスイベントバスサービスで、 AWS Lambda 関数、API 送信先を使用する HTTP 呼び出しエンドポイント、他の のイベントバスなど、さまざまなソースからのリアルタイムデータにアプリケーションを接続できます AWS アカウント。

  • AWS CodePipeline は、ソフトウェアリリースのさまざまな段階を迅速にモデル化して設定し、ソフトウェアの変更を継続的にリリースするために必要なステップを自動化するのに役立ちます。

  • AWS CodeBuild は、ソースコードをコンパイルし、ユニットテストを実行し、すぐにデプロイできるアーティファクトを生成するのに役立つフルマネージド型のビルドサービスです。

  • AWS CodeCommit は、独自のソース管理システムを管理することなく、Git リポジトリをプライベートに保存および管理できるようにするバージョン管理サービスです。

  • AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンドを通じて AWS のサービスを操作するのに役立つオープンソースツールです。

  • AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用を認可するかを制御することで、 AWS リソースへのアクセスを安全に管理できます。

  • Amazon Simple Storage Service (Amazon S3) は、どのようなデータ量であっても、データを保存、保護、取得することを支援するクラウドベースのオブジェクトストレージサービスです。

ベストプラクティス

セキュリティのベストプラクティスとして、パイプラインに接続するソースリポジトリに暗号化と認証を使用できます。その他のベストプラクティスについては、 CodePipeline ドキュメントのCodePipeline 「 のベストプラクティスとユースケース」を参照してください。

エピック

タスク説明必要なスキル

サンプルアプリケーションを設定してデプロイします。

  1. コマンドを使用して GitHub 、サンプルコードリポジトリのクローンを作成します。

    git clone https://github.com/aws-samples/golden-signals-dashboards-sample-app
  2. コンピュータのクローンされたリポジトリに移動し、選択したエディタで src/project-settings.ts ファイルを開きます。

  3. AWS リソースタグとアプリケーションマッピングに従ってprojectSettings定数値を変更します。

  4. AWS_ACCOUNTAWS_REGION、および GS_DASHBOARD_INSTANCE環境変数を設定します。

    • をアカウントのアカウント ID AWS_ACCOUNTに設定します AWS 。

    • サンプルアプリケーションをデプロイするリージョンAWS_REGIONに設定します。

    • 開発環境に応じてtestGS_DASHBOARD_INSTANCEdevprod、または に設定します。(このパターンで説明されているテスト手順testには、 をお勧めします。)

  5. AWS 認証情報 AWS CLI を使用して をセットアップします。詳細については、 AWS CLI ドキュメントの「 コマンドを使用して構成設定を設定および表示する」を参照してください。

  6. 次のコマンドを実行して、Golden Signals ダッシュボードのサンプルアプリケーションをデプロイします。

    sh deploy.sh
AWS DevOps

ダッシュボードとアラームを自動的に作成します。

サンプルアプリケーションをデプロイした後、このソリューションがサポートする任意のリソースを、想定されたタグ値で作成できます。これにより、指定されたダッシュボードとアラームが自動的に作成されます。

このソリューションをテストするには、 AWS Lambda 関数を作成します。

  1. サンプルアプリケーションをデプロイ AWS リージョン した AWS Management Console の にサインインします。

  2. Lambda コンソール (https://console.aws.amazon.com/lambda/) を開きます。

  3. 関数の作成 を選択し、関数名を入力します。

  4. 詳細設定ペインで、タグを有効にする を選択し、新しいタグを追加する を選択します。次のキーと値を入力します。

    • キー: AutoDashboard

    • 値: True

  5. 関数を作成 を選択します。

    Lambda 関数はコードパイプラインをすぐに開始し、その特定の Lambda 関数のダッシュボードとアラームを自動的に作成します。

  6. 自動ダッシュボードとアラームを表示するには、https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールを開きます。projectSettings 定数 (デフォルトでは APP1-lambda) で指定した関数のカスタムダッシュボードとアラームを表示できます。

  7. Lambda 関数のダッシュボードを選択すると、このソリューションの一部として作成された追加の自動ダッシュボードが表示されます。

  8. Amazon RDS、Amazon SNS、DynamoDB などの他のサービスに対してこれらのステップを繰り返し AWS Auto Scalingて、関連するダッシュボードを生成します。Amazon RDS の例については、「追加情報」セクションを参照してください。

AWS DevOps
タスク説明必要なスキル

golden-signals-dashboard コンストラクトを削除します。

  1. サンプルアプリケーションによって作成されたすべての AWS CloudFormation スタックを削除するには、AWS_ACCOUNT、、AWS_REGIONおよび GS_DASHBOARD_INSTANCE環境変数を再設定する必要があります。destroy.sh コマンドには、これらの設定が必要です。

    • AWS_ACCOUNT はアカウントの AWS アカウント ID です。

    • AWS_REGION は、サンプルアプリケーションをデプロイしたリージョンです。

    • GS_DASHBOARD_INSTANCEdev、以前の設定に基づいて、prod、、testまたは です。

  2. AWS 認証情報 AWS CLI を使用して をセットアップします。

  3. 次のコマンドを実行して、サンプルアプリケーションと関連するすべての AWS CloudFormation スタックを削除します。

    sh destroy.sh
AWS DevOps

トラブルシューティング

問題ソリューション

Python コマンドが見つかりません (、8 findresources.sh行目を参照)。

Python インストールのバージョンを確認します。Python バージョン 3 をインストールしている場合は、 をresources.shファイルの 8 行python3目にある pythonに置き換え、 sh deploy.sh コマンドを再度実行してソリューションをデプロイします。

関連リソース

追加情報

次の図は、このソリューションの一部として作成された Amazon RDS のサンプルダッシュボードを示しています。

Amazon RDS のサンプルダッシュボード