サーバーレスアプリケーション向けAmazon DevOps Guru - 第2部 サンプルアプリケーション設定と異常検知
はじめに
このシリーズの第1部で、Amazon DevOps Guruサービスを紹介し、その価値提案、利用のメリット、設定方法を説明しました。さて、DevOps Guruで異常を引き起こし、このサービスを実際に見てみるために、サンプルアプリケーションをセットアップする時が来ました。
DevOps Guruが有効化されたサンプルアプリケーションのデプロイ
DevOps Guruの使用例を示すために、このサンプルアプリケーションを使います。これはServerlessアプリケーションで、製品の作成、取得、削除の機能があります。この目的のためAPI Gateway、Lambda、DynamoDB、SQSサービスを使用しており、下のアーキテクチャ図で説明されています。
[画像]
AWS SAMをIaC(Infrastructure as Code)に使用します(環境にインストールする必要があります)。サンプルアプリケーションをデプロイするとき("sam deploy -g"を実行して)、スタックにDevOpsGuruWorkshopという名前を付けると、アプリケーションがAWSアカウントにデプロイされます。さらに、このスタックからのリソースを分析するためにDevOps Guruも活性化されます。これは、SAMテンプレートからのIaCのこの部分がその目的に役立ちます。
DevOpsGuruResource:
Type: AWS::DevOpsGuru::ResourceCollection
Properties:
ResourceCollectionFilter:
CloudFormation:
StackNames:
- !Sub ${AWS::StackName}
フルスクリーンモードを終了して、DevOps Guruサービスに移動し、分析されたリソースで以下が表示されているかを確認してください。
[画像]
サンプルアプリケーションに実際のデータを追加する
API Gatewayサービスに移動し、DevOpsGuruDemoProductsAPIに移動し、以下のHTTP PUTリクエストを実行してください。
[画像]
このリクエストは、製品ID "1"、その説明と価格をDynamoDB ProductsTableに作成し、アプリに実際のデータを持たせます。こちらがそのための完全なJSONペイロードです。
[
{
"id": 1,
"name": "Print 10x13",
"price": 0.15
}
]
DevOps Guru使用のためのサンプルアプリケーションの予熱
フルスクリーンモードを終了して、例えば、API Gatewayにリクエストを送信して(新しく作成された製品をID 1で取得するために、以下のURL YOUR_API_GATEWAY_ENDPOINT/prod/products/1を使用して)、DevOps Guruが異常を認識するためには、少なくとも1時間以上の作業アプリケーションの基準を構築する必要があることをこのシリーズの第1部で述べた通りです。
API GatewayのGUIを介して、またはAPI GatewayでのDevOpsGuruDemoProductsAPIまたはSAMテンプレートを実行してアプリケーションをデプロイした後のコンソールの出力変数でAPI Gateway URLを最初に判明させることでプログラム的にリクエストを送ることができます。リクエストをプログラム的に送信する場合は、SAMテンプレートのMyApiKeyリソース定義を参照して、このHTTPヘッダー"X-API-Key: a6ZbcDefQW12BN56WEN7"を追加的に送る必要があります。
DevOps Guruが既にアプリケーション(またはタグによって指定されたリソースのいくつか)を分析したことの指標は、以下の画像に表示されるように、"分析されたリソース"リストに登場することです。
[画像]
こちらは、分析されたアプリケーションの数と異なるサービスのタイプを追加で表示する、もっと詳細なビューです。
[画像]
ストレステストツールの選択
異常を引き起こすための実験をするために、ストレステストツールを使います。好きなツール(Gatling、JMeter、Fiddler、Artilleryなど)を使って構いませんが、私個人的にはheyというツールを好んでいます。それは使いやすく、curlに似ています。Linuxでは、以下のコマンドを実行することでこのツールがインストールできます。
curl -sf https://gobinaries.com/rakyll/hey | sh
結論
フルスクリーンモードを終了して、これで、DevOps Guruを行動で見る準備が整いました。このシリーズの次の部分では、DynamoDB上での異常検出を探求します。
こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/aws-builders/amazon-devops-guru-for-the-serverless-applications-part-2-setting-up-the-sample-application-for-the-anomaly-detection-167