

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

# Amazon CloudWatch 異常検知により、カスタムメトリクスのアラームを作成
<a name="create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection"></a>

*Ram Kandaswamy および Raheem Jiwani、Amazon Web Services*

## 概要
<a name="create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection-summary"></a>

Amazon Web Services (AWS) クラウドでは、Amazon CloudWatch を使用して、メトリクスをモニタリングし、閾値を超えたときに通知を送信し、またはアラームを自動的に変更するアラームを作成できます。

「[静的な閾値](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html)」による制限を避けるため、過去のパターンに基づいてアラームを作成し、特定のメトリックスが通常の運用時間外になった場合に通知するようにできます。例えば、Amazon API Gateway から API の応答時間をモニタリングし、サービスレベルアグリーメント (SLA) を満たすことを妨げる異常に関する通知を受信することができます。

このパターンは、CloudWatch 異常検出により、カスタムメトリックスを使用する方法を説明します。このパターンは、Amazon CloudWatch Logs Insights でカスタムメトリクスを作成する方法、または AWS Lambda 関数によりカスタムメトリックスを公開する方法を示しています。次に、Amazon Simple Notiﬁcation Service (Amazon SNS) により、異常検出を設定し、通知を作成する方法を示しています。

## 前提条件と制限事項
<a name="create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント。
+ SNS トピックは、電子メール通知を送信するように設定できます。詳細については、Amazon SNS ドキュメントの「[Amazon SNS の使用開始](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)」を参照してください。
+ 「[CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_GettingStarted.html)」で設定された既存のアプリケーション。

**制限事項**
+ CloudWatch メトリックスはミリ秒の時間間隔をサポートしていません。レギュラーメトリクスとカスタムメトリクスの粒度の詳細については、「[Amazon CloudWatchのよくある質問](https://aws.amazon.com/cloudwatch/faqs/)」を参照してください。

## アーキテクチャ
<a name="create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection-architecture"></a>

![\[CloudWatch は Amazon SNS トピックを使用して、アラームの開始時に E メール通知を送信します。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/d47e6f7f-e469-4cb9-b34b-8c4b78d71820/images/49f30340-9552-430a-893a-d0608bb09e38.png)


 この図表は、次のワークフローを示しています:

1. CloudWatch Logs により作成し、更新されたメトリックスを使用するログは CloudWatch にストリーミングされます。

1. アラームは閾値に基づき開始され、SNS トピックにアラートを送信します。

1. Amazon SNS からメール通知が送信されます。

テクノロジースタック
+ CloudWatch
+ AWS Lambda
+ Amazon SNS

## ツール
<a name="create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection-tools"></a>
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) は、信頼性、スケーラビリティ、および柔軟性に優れたモニタリングソリューションを提供します。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーを準備したり管理したりしなくてもコードを実行できるコンピューティングサービスです。
+ [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) は、パブリッシャーからサブスクライバーへのメッセージ配信を提供するマネージドサービスです。

## エピック
<a name="create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection-epics"></a>

### カスタムメトリクスの異常検知を設定
<a name="set-up-anomaly-detection-for-a-custom-metric"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| オプション 1-Lambda 関数により、カスタムメトリクスを作成します。 | `lambda_function.py` ファイル (添付) をダウンロードして、「AWS Documentation GitHub」で「[aws-lambda-developer-guide](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/blank-python/function)」リポジトリにあるサンプル `lambda_function.py` ファイルを置き換えます。これにより、カスタムメトリクスを CloudWatch Logs に送信するサンプル Lambda 関数が得られます。Lambda 関数は Boto3 API により、CloudWatch と統合します。 Lambda 関数を実行した後、AWS マネジメントコンソールにサインインして CloudWatch コンソールを開くと、公開されたメトリクスは公開された名前空間で使用できます。 | DevOps エンジニア、AWS DevOps | 
| オプション 2 — CloudWatch ロググループからカスタムメトリックスを作成します。 | AWS マネジメントコンソールにサインインし、CloudWatch コンソールを開いて、**[ロググループ]** を選択します。メトリックを作成するロググループを選択します。 **[アクション]** と **[メトリクスフィルターの作成]** を順に選択します。**[フィルターパターン]** に、使用するフィルターパターンを入力します。詳細については、CloudWatch ドキュメントの「[フィルターとパターンの構文](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)」を参照してください。 フィルターパターンをテストするには、**[テストパターン]** に 1 つ以上のログイベントを入力します。**[ログイベントメッセージ]** ボックスのログイベントを区切るために改行が使用されるため、各ログイベントは 1 行以内である必要があります。パターンをテストしたら、**[メトリクスの詳細]** にメトリクスの名前と値を入力できます。 カスタムメトリクスを作成する手順と詳細については、「CloudWatch のドキュメント」の「[ロググループのメトリクスフィルターの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateMetricFilterProcedure.html)」を参照してください。 | DevOps エンジニア、AWS DevOps | 
| カスタムメトリクスのアラームを作成します。 | CloudWatch コンソールで **[アラーム]** と **[アラームの作成]** を順に選択します。**[メトリクスの選択]** をクリックし、前に作成したメトリクスの名前を検索ボックスに入力します。**[グラフ化したメトリクス]** タブを選び、要件に応じてオプションを設定します。**[条件]** で、**[静的閾値]** の代わりに **[異常検知]** を選択します。これにより、2 つの標準デフォルト偏差に基づくバンドが表示されます。要件に応じて、閾値を設定できます。**[次へ]** を選択します。バンドは動的で、データポイントの質によって異なります。さらにデータを集約し始めると、バンドと閾値は自動的に更新されます。  | DevOps エンジニア、AWS DevOps | 
| SNS 通知のセットアップ | **[通知]** で、アラームが `ALARM` 状態、`OK` 状態、または `INSUFFICIENT_DATA` 状態のときに通知する SNS トピックを選択します。同じアラーム状態または複数の異なるアラーム状態について複数の通知を送信するには、**[Add notification (通知の追加)]** を選択します。**[次へ]** を選択します。アラームの名前と説明を入力します。名前には ASCII 文字のみを含める必要があります。次いで、**[次へ]** を選択します。**[プレビューと作成]** で、情報と条件が正しいことを確認し、**[アラームの作成]** を選択します。 | DevOps エンジニア、AWS DevOps | 

## 関連リソース
<a name="create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection-resources"></a>
+ 「[カスタムメトリクスの CloudWatch への公開](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)」
+ 「[CloudWatch 異常検出の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html)」
+ 「[アラームイベントと Amazon EventBridge](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-and-eventbridge.html)」
+ 「[Cloud Watch にカスタムメトリクスをプッシュする際に従うべきベストプラクティスにはどのようなものですか?](https://www.youtube.com/watch?v=mVffHIzIL60)」(ビデオ)
+ 「[CloudWatch Application Insightsの紹介](https://www.youtube.com/watch?v=PBO636_t9n0)」(ビデオ)
+ 「[CloudWatch による異常検知](https://www.youtube.com/watch?v=8umIX-pUy3k)」(ビデオ)

## アタッチメント
<a name="attachments-d47e6f7f-e469-4cb9-b34b-8c4b78d71820"></a>

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「[attachment.zip](samples/p-attach/d47e6f7f-e469-4cb9-b34b-8c4b78d71820/attachments/attachment.zip)」