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

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

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

Amazon Web Services、Janak Vadaria、Vinodkumar Mandalapu、RAJNEESH TYAGI

概要

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

サイト信頼性エンジニアリング (SRE) では、Golden Signals は、ユーザーまたは消費者の観点からサービスの広範な視点を提供する包括的なメトリックのセットを指します。これらのメトリックは、遅延時間、通信量、エラー、飽和度で構成されます。詳細については、 AWS ウェブサイトの「サイト信頼性エンジニアリング (SRE) とは」を参照してください。

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

前提条件と制限事項

前提条件

制限事項

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

アーキテクチャ

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

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

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

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

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

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

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

自動化とスケール

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

ツール

Amazon サービス

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

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

  • AWS CodeBuild は完全な管理型の構築サービスです。ソースコードのコンパイル、ユニットテストの実行、すぐに展開できるアーティファクトの生成に役立ちます。

  • 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 の環境変数を設定します。

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

    • AWS_REGION をサンプルアプリケーションを展開しようとするリージョンに設定します。

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

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

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

    sh deploy.sh
AWS DevOps

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

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

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

  1. サンプルアプリケーションをデプロイ AWS リージョン した AWS マネジメントコンソール の にサインインします。

  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、 AWS Auto Scaling DynamoDB などの他のサービスに対してこれらのステップを繰り返して、関連付けられたダッシュボードを生成します。Amazon RDS の例として、「追加情報」セクションを参照してください。

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

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

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

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

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

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

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

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

    sh destroy.sh
AWS DevOps

トラブルシューティング

問題ソリューション

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

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

関連リソース

追加情報

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

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