翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CDK を使用して複数の AWS リージョン、アカウント、および OUs で Amazon DevOps Guru を有効にして運用パフォーマンスを向上させる
作成者:Dr. Rahul Sharad Gaikwad (AWS)
コードリポジトリ: Amazon DevOps Guru サンプルコード | 環境:PoC またはパイロット | テクノロジー: 管理とガバナンス CloudNative、 DevOps、オペレーション、セキュリティ、アイデンティティ、コンプライアンス、サーバーレス |
AWS サービス: Amazon API GatewayAWS CDK、Amazon DevOps Guru、Amazon DynamoDBAWS Organizations |
[概要]
このパターンは、 で AWS Cloud Development Kit (AWS CDK) を使用して、複数の Amazon Web Services (AWS) リージョン、アカウント、組織単位 (OUs) で Amazon DevOps Guru サービスを有効にするステップを示しています TypeScript。AWS CDK スタックを使用して、管理者 (プライマリ) AWS アカウント CloudFormation StackSets から AWS をデプロイし、各アカウントにログインしてアカウントごとに DevOps 個別に Guru を有効にする代わりに、複数のアカウントに Amazon Guru DevOps を有効にすることができます。
Amazon DevOps Guru には、アプリケーションの可用性を向上させ、運用上の問題を迅速に解決するのに役立つ人工知能オペレーション (AIOps) 機能が用意されています。 DevOps Guru は、機械学習 (ML) を活用した推奨事項を適用することで、手動作業を削減します。ML の専門知識は必要ありません。 DevOps Guru はリソースと運用データを分析します。異常を検出すると、問題への対処に役立つ指標、イベント、および推奨事項が表示されます。
このパターンでは、Amazon DevOps Guru を有効にするための 3 つのデプロイオプションについて説明します。
複数のアカウントとリージョンですべてのスタックリソース用
OU のすべてのスタックリソース用
複数のアカウントとリージョンで特定のスタックリソース用
前提条件と制限
前提条件
アクティブなAWS アカウント
AWS コマンドラインインターフェイス (AWS CLI)は、「インストール」および「設定」されています。(AWS CLI ドキュメントの「AWS CLI のインストール、更新、アンインストール」を参照してください)。
AWS CDK ツールキット、インストールおよび設定 (AWS CDK ドキュメントの AWS CDK ツールキットを参照してください)。
Node Package Manager (npm)。 で AWS CDK 用にインストールおよび設定されています TypeScript。詳細については、npm ドキュメントの [Node.js と npm のダウンロードとインストール]
を参照してください。 Python3 をインストールして設定し、Python スクリプトを実行してサンプルのサーバーレスアプリケーションにトラフィックを注入します。(Python ドキュメントの「Python の設定と使用方法
」を参照してください)。 Pip、Python リクエストライブラリをインストールするようにインストールおよび設定されています。( PyPl ウェブサイトの「pip のインストール手順
」を参照してください。)
製品バージョン
AWS CDK ツールキットバージョン 1.107.0 またはそれ以降
バージョン 7.9.0 以降
Node.js バージョン 15.3.0 以降
アーキテクチャ
テクノロジー
このパターンのアーキテクチャには以下のサービスが含まれます。
AWS CDK スタック
このパターンでは、次の AWS CDK スタックを使用します。
CdkStackSetAdminRole
— AWS Identity and Access Management (IAM) 管理者ロールを作成して、管理者とターゲットアカウントの間に信頼関係を確立します。CdkStackSetExecRole
— 管理者アカウントを信頼する IAM ロールを作成します。CdkDevopsGuruStackMultiAccReg
— すべてのスタックの複数の AWS リージョンとアカウントで DevOps Guru を有効にし、Amazon Simple Notification Service (Amazon SNS) 通知を設定します。CdkDevopsGuruStackMultiAccRegSpecStacks
— 特定のスタックの複数の AWS リージョンとアカウントで DevOps Guru を有効にし、Amazon SNS 通知を設定します。CdkDevopsguruStackOrgUnit
– OUs 間で DevOps Guru を有効にし、Amazon SNS 通知を設定します。CdkInfrastructureStack
— API ゲートウェイ、Lambda、DynamoDB などのサンプルサーバーレスアプリケーションコンポーネントを管理者アカウントにデプロイして、フォールトインジェクションとインサイト生成を実演します。
サンプルアプリケーションのアーキテクチャ
次の図は、複数のアカウントとリージョンでデプロイされたサンプルサーバーレスアプリケーションのアーキテクチャを示しています。このパターンでは、管理者アカウントを使用してすべての AWS CDK スタックをデプロイします。また、管理者アカウントを Guru をセットアップするためのターゲットアカウントの 1 DevOps つとして使用します。
DevOps Guru を有効にすると、まず各リソースの動作をベースライン化し、次に CloudWatch 提供されたメトリクスから運用データを取り込みます。
異常を検出すると、 からのイベントと関連付け CloudTrailてインサイトを生成します。
このインサイトでは、相関関係のある一連のイベントと規定された推奨事項が提供されるため、オペレーターは犯人のリソースを特定できます。
Amazon SNS は通知メッセージをオペレータに送信します。
自動化とスケール
このパターンで提供されるGitHub リポジトリ
ツール
AWS サービス
コード
このパターンのソースコードは GitHub、Amazon DevOps Guru CDK Samples
重要:このパターンのストーリーには、UNIX、Linux、macOS向けにフォーマットされたAWS CDKおよびAWS CLI コマンドの例が含まれています。Windows の場合は、各行末のバックスラッシュ (\) Unix 連結文字をキャレット (^) に置き換えてください。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
AWS の名前付きプロファイルを設定します。 | マルチアカウント環境にスタックをデプロイするには、以下のように AWS の名前付きプロファイルを設定します。 管理者アカウントの変更
ターゲットアカウントの場合:
詳細については、AWS CLI ドキュメントの「名前を指定されたプロファイルを使用する」を参照してください。 | DevOps エンジニア |
AWS プロファイル設定を確認します。 | (オプション) AWS CLI ドキュメントの「設定の設定と表示」の手順に従って、 | DevOps エンジニア |
AWS CDK のバージョンを確認します。 | 次のコマンドを実行して、AWS CDK Toolkit のバージョンを確認します。
このパターンには、バージョン 1.107.0 以降が必要です。以前のバージョンの AWS CDK を使用している場合は、「AWS CDK ドキュメント」の指示に従って更新してください。 | DevOps エンジニア |
プロジェクトコードをクローニングします。 | コマンドを使用して、このパターンの GitHub リポジトリをクローンします。
| DevOps エンジニア |
パッケージの依存関係をインストールし、 TypeScript ファイルをコンパイルします。 | パッケージの依存関係をインストールし、次のコマンドを実行して TypeScript ファイルをコンパイルします。
これらのコマンドは、すべてのパッケージをサンプルリポジトリからインストールします。 重要:パッケージが見つからないというエラーが表示される場合は、以下のいずれかのコマンドを使用してください。
-または-
パッケージ名とバージョンのリストは、 | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
Amazon SNS 通知用の E メールアドレスを設定します。 | Amazon SNS 通知用の E メールアドレスを指定するには、次の手順に従います。
| DevOps エンジニア |
Go プロジェクトを構築します。 | 以下のコマンドを実行してプロジェクトコードをビルドし、スタックを合成します。
次のような出力が表示されます:
詳細と手順については、AWS CDK ドキュメントの「初めての AWS CDK アプリケーション」を参照してください。 | DevOps エンジニア |
AWS CDK スタックを一覧表示します。 | 以下のコマンドを実行して、全てのAWS CDK スタックをリストアップします。
コマンドによって、次のリストが表示されます。
| DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
IAM ロールを作成するための AWS CDK スタックをデプロイします。 | このパターンでは、AWS CloudFormation StackSets を使用して複数のアカウントでスタックオペレーションを実行します。初めてスタックセットを作成する場合は、次の IAM ロールを作成して、必要な権限を AWS アカウントに設定する必要があります。
注:ロールにはこれらの正確な名前が必要です。
詳細については、AWS CloudFormation ドキュメントの「セルフマネージド型のアクセス許可を付与する」を参照してください。 | DevOps エンジニア |
Guru を有効にするための AWS CDK DevOps スタックを複数のアカウントにデプロイします。 | AWS CDK
現在、Amazon DevOps Guru は、DevOps 「Guru のよくある質問 | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
OU ID を抽出します。 | AWS Organizations | DevOps エンジニア |
OU のサービス管理権限を有効にします。 | アカウント管理に AWS Organizations を使用している場合は、サービス管理アクセス許可を付与して DevOps Guru を有効にする必要があります。IAM ロールを手動で作成する代わりに、「組織ベースの信頼できるアクセスとサービスにリンクされたロール (SLR」) を使用してください。 | DevOps エンジニア |
OU 間で DevOps Guru を有効にするための AWS CDK スタックをデプロイします。 OUs | AWS CDK
| DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
IAM ロールを作成するための AWS CDK スタックをデプロイします。 | 最初のオプションで示した必要な IAM ロールをまだ作成していない場合は、まず作成してください。
詳細については、AWS CloudFormation ドキュメントの「セルフマネージド型のアクセス許可を付与する」を参照してください。 | DevOps エンジニア |
既存のスタックを削除します。 | すべてのスタックリソースに対して DevOps Guru を有効にする最初のオプションを既に使用している場合は、次のコマンドを使用して古いスタックを削除できます。
あるいは、スタックを再デプロイするときに | DevOps エンジニア |
AWS CDK スタックをスタックリストで更新します。 |
| データエンジニア |
AWS CDK スタックをデプロイして、複数のアカウントで特定のスタックリソースに対して DevOps Guru を有効にします。 | AWS CDK
注:以前にオプション 1 でこのスタックをデプロイしたことがある場合は、「スタックがすでに存在している」エラーを回避するために | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
サンプルのサーバーレスインフラストラクチャースタックをデプロイします。 | AWS CDK
| DevOps エンジニア |
DynamoDB にサンプルレコードを挿入します。 | 次のコマンドを実行して、DynamoDB テーブルにサンプルレコードを設定します。
コマンドによって以下の出力が表示されます。
| DevOps エンジニア |
DynamoDB に挿入されたレコードを確認します。 | DynamoDB テーブルに
| DevOps エンジニア |
リソースのベースラインが完了するまでお待ちください。 | このサーバーレススタックには、いくつかのリソースがあります。2 時間待ってから次のステップを実行することをお勧めします。このスタックを本番環境にデプロイした場合、 DevOps Guru でモニタリングするように選択したリソースの数によっては、ベースライン作成が完了するまでに最大 24 時間かかる場合があります。 | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
AWS CDK インフラストラクチャスタックを更新します。 | DevOps Guru Insights を試すには、一般的な運用上の問題を再現するためにいくつかの設定変更を加えることができます。
| DevOps エンジニア |
API に HTTP リクエストを注入します。 | HTTP リクエストの形式で
| DevOps エンジニア |
DevOps Guru インサイトを確認します。 | 標準条件下では、進行中のインサイトカウンターに DevOps Guru ダッシュボードにゼロが表示されます。異常を検出すると、インサイトという形でアラートが生成されます。ナビゲーションペインで「インサイト」を選択すると、概要、集計指標、関連イベント、推奨事項など、異常の詳細が表示されます。インサイトのレビューの詳細については、「Amazon DevOps Guru を使用して AIOps で運用上のインサイト | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
リソースをクリーンアップして削除する。 | このパターンを確認したら、追加料金が発生しないように、作成したリソースを削除する必要があります。以下のコマンドを実行します。
| DevOps エンジニア |