Amazon CloudWatch
ユーザーガイド

Amazon CloudWatch アラームの作成

1 つのメトリクスをモニタリングする CloudWatch アラームを作成できます。このアラームは、複数の期間にわたるしきい値とメトリクスの値の関係性に基づき、1 つ以上のアクションを実行します。アクションには、Amazon EC2 アクション、Amazon EC2 Auto Scaling アクション、または Amazon SNS トピックに送信される通知があります。CloudWatch ダッシュボードにアラームを追加して視覚的にモニタリングすることもできます。ダッシュボードにある場合、ALARM 状態になると、アラームは赤に変わるため、状態を事前にモニタリングしやすくなります。

アラームは、持続している状態変化に対してのみアクションを呼び出します。CloudWatch アラームは、単に特定の状態にあるというだけでアクションを呼び出すわけではありません。状態が変わり、それが指定した数の期間にわたって持続している必要があります。

状態変化に伴いアラームによって呼び出されるアクションの内容は、そのアラームに関連付けられたアクションの種類によって異なります。Amazon EC2 Auto Scaling アクションの場合、アラームは新しい状態に留まる期間ごとにアクションを呼び出します。Amazon SNS 通知では、アクションが呼び出されるのは 1 回だけです。

注記

CloudWatch は、指定したアクションのテストや検証は行いません。また、存在しないアクションの呼び出しから生じる Amazon EC2 Auto Scaling や Amazon SNS のエラーも検出しません。アクションが存在していることを確認してください。

アラームの状態

アラームには次の状態があります。

  • OK—メトリクスの値が、定義されたしきい値を下回っている。

  • ALARM—メトリクスの値が、定義されたしきい値を上回っている。

  • INSUFFICIENT_DATA—アラームが開始直後であるか、メトリクスが利用できないか、データが不足していてアラームの状態を判定できない。

アラームを評価する

アラームを作成するときに、CloudWatch がアラームの状態を変更するタイミングを評価できるように 3 つの設定を指定します。

  • [期間] は、メトリクスそれぞれに個別のデータポイント作成するためにメトリクスを評価する期間です。これは秒単位で表されます。期間として 1 分を選択した場合、1 分ごとに 1 つのデータポイントが存在します。

  • [評価期間] は、アラーム状態を判断するタイミングを評価する直近のデータポイントの数です。

  • [Datapoints to Alarm (アラームを発生させるデータポイント数)] は、アラームが ALARM 状態に遷移するために超過する必要がある評価期間内のデータポイントの数です。超過したデータポイントは連続である必要はありませんが、すべてが [評価期間] に等しい直近のデータポイント数に含まれている必要があります。

以下の図では、アラームのしきい値が 3 単位に設定されています。アラームは ALARM 状態に遷移するように設定され、[評価期間] および [Datapoints to Alarm (アラームを発生させるデータポイント数)] はどちらも 3 です。つまり、連続する直近の 3 つの期間内の 3 つのデータポイントすべてがしきい値を上回わると、アラームは ALARM 状態になります。この図では、第 3 期間から第 5 期間にかけてこれが発生します。第 6 期間で値がしきい値を下回り、評価対象の期間の 1 つが超過していないため、アラームの状態は OK に変化します。第 9 期間中のしきい値に再度超過がありますが、1 つの期間のみです。そのため、アラームの状態は OK のままです。


        アラームのしきい値によるアラームのトリガー

[評価期間] と [Datapoints to Alarm (アラームを発生させるデータポイント数)] に異なる値を設定する場合、「N 個中 M 個」のアラームを設定することになります。[Datapoints to Alarm (アラームを発生させるデータポイント数)] が (「M」)、[評価期間] が (「N」) です。評価間隔は、期間により乗算されるデータポイントの数です。たとえば、1 分の期間を持つ 5 個のデータポイントのうち 4 個を設定した場合、評価間隔は 5 分です。10 分の期間を持つ 3 個のデータポイントのうち 3 個を設定した場合、評価間隔は 30 分です。

CloudWatch アラームの欠落データの処理の設定

アラームを設定したメトリクスのデータポイントの一部が、CloudWatch に報告されない場合があります。たとえば接続が失われた場合、サーバーがダウンした場合、設計上メトリクスが断片的にのみデータを報告する場合などにこれが発生する可能性があります。

CloudWatch では、アラームを評価する際の欠落データポイントの処理方法を指定できます。これは、モニタリングされているデータの種類上適切な場合は、アラームが ALARM 状態に遷移するように設定する場合に便利です。欠落データが問題を示すものではない場合の誤検出を避けることができます。

各アラームが常に 3 つの状態のいずれかであるように、CloudWatch にレポートされるデータポイントはそれぞれ、次の 3 つのカテゴリのいずれかの状態に該当します。

  • Not breaching (しきい値内)

  • Breaching (しきい値を超過)

  • Missing (見つからない)

アラームごとに、CloudWatch が欠落データポイントを次のいずれかとして処理するように指定できます。

  • missing—このアラームは、状態を変更するかどうかを評価する際に、欠落データポイントを考慮に入れません。

  • notBreaching—欠落データポイントはしきい値内として扱われます。

  • breaching—欠落データポイントはしきい値超過として扱われます。

  • ignore—現在のアラーム状態が維持される

最適な選択は、メトリクスの種類によって異なります。インスタンスの CPUUtilization など、継続的にデータを報告しているメトリクスの場合は、問題が発生していることを表すため、欠落データポイントは breaching として処理します。ただし、Amazon DynamoDB の ThrottledRequests など、エラー発生時のみデータポイントを生成するメトリクスの場合は、notBreaching として欠落データを処理します。デフォルトの動作は missing です。

アラームに最適なオプションを選択することで、アラームが、不要で誤解を招く状態に変更されることを防ぐだけでなく、システムの状態をさらに正確に表すことができます。

データが欠落した場合のアラーム状態の評価方法

欠落データの処理方法に設定した値にかかわらず、アラームが状態を変更するかどうかを評価する際に、CloudWatch は [評価期間] の指定よりも多くのデータポイントを取得しようとします。取得を試みるデータポイントの正確な数は、アラーム期間の長さと、基づいているメトリクスが標準解像度か高解像度かによって異なります。取得を試みるデータポイントのタイムフレームは評価範囲です。

CloudWatch がこれらのデータポイントを取得すると、次の処理が実行されます。

  • 評価範囲内のデータポイントが欠落していない場合、CloudWatch は収集された最新のデータポイントに基づいてアラームを評価します。

  • 評価範囲のデータポイントの一部が欠落しているが、取得された既存のデータポイントの数がアラームの [評価期間] 以上である場合、正常に取得された最新の既存のデータポイントに基づいてアラームの状態が CloudWatch で評価されます。この場合、欠落データを処理する方法に設定した値は不要であり、無視されます。

  • 評価範囲のデータポイントの一部が欠落しており、取得された既存のデータポイントの数がアラームの評価期間の数を下回る場合、CloudWatch によって、欠落データ部分に欠落データの処理方法に指定された結果が入力され、アラームが評価されます。ただし、評価範囲内の実際のデータポイントが、報告されたタイミングにかかわらず、評価に含まれます。CloudWatch は、欠落データポイントの使用を最小限に抑えます。

これらのすべての状況で、評価されるデータポイントの数は、[評価期間] の値と同じです。超過している数が [Datapoints to Alarm (アラームを発生させるデータポイント数)] の値よりも少数の場合、アラームの状態は OK に設定されます。それ以外の場合、状態は ALARM に設定されます。

注記

この動作の特殊なケースは、メトリクスのフローが停止した後の一定期間、CloudWatch アラームがデータポイントの最後のセットを繰り返し評価する可能性があることです。この再評価により、メトリクスのストリームが停止した直前にアラームの状態が変更されていた場合にアクションが再実行される可能性があります。この動作を軽減するには、より短い期間を使用します。

次の表は、アラーム評価の動作の例を示しています。最初の表では、[Datapoints to Alarm (アラームを発生させるデータポイント数)] と [評価期間] はどちらも 3 です。CloudWatch はアラームを評価する際に直近のデータポイントを 5 個取得します。

列 2 は、この 5 個のデータのうちいくつが欠落しており、欠落データの処理方法の設定を使用して入力する必要があるかを示しています。列 3 ~ 6 は、欠落データの処理方法の各設定 (列の上部に表示) に基づき設定されるアラーム状態を示します。データポイント列の 0 は超過していないデータポイント、X は超過しているデータポイント、- は欠落しているデータポイントを示します。

データポイント 欠落データポイント数 MISSING IGNORE BREACHING NOT BREACHING

0 - X - X

0

OK

OK

OK

OK

0 - - - -

2

OK

OK

OK

OK

- - - - -

3

不十分なデータ

現在の状態を維持

アラーム

OK

0 X X - X

0

アラーム

アラーム

アラーム

アラーム

- - - - X

2

不十分なデータ

現在の状態を維持

アラーム

OK

前の表の 2 行目で、欠落データが超過として処理されても、アラームは OK のままです。既存のデータポイント 1 個が超過しておらず、これが超過として扱われる欠落しているデータポイント 2 個とともに評価されるためです。次回このアラームが評価される際にデータがまだ欠落したままであれば ALARM に遷移します。これは、超過していないデータポイントが、取得される直近の 5 個のデータポイントの中に含まれなくなるためです。4 行目では、すべてのケースでアラームは ALARM 状態になります。これは、実際のデータポイントが十分にあるため、欠落データの処理方法の設定を効力する必要がないためです。

次の表では、[期間] は再び 5 分に設定され、[Datapoints to Alarm (アラームを発生させるデータポイント数)] は 2 のみですが [評価期間] は 3 です。つまり 3 個のうち 2 個、N 個中 M のアラームです。

データポイント 欠落データポイント数 MISSING IGNORE BREACHING NOT BREACHING

0 - X - X

0

アラーム

アラーム

アラーム

アラーム

0 0 X 0 X

0

アラーム

アラーム

アラーム

アラーム

0 - X - -

1

OK

OK

アラーム

OK

- - - - 0

2

OK

OK

アラーム

OK

- - - - X

2

不十分なデータ

現在の状態を維持

アラーム

OK

アラームの作成後すぐにデータポイントが欠落し、アラームの作成前にメトリクスが CloudWatch に報告されている場合、CloudWatch はアラームを評価する際にアラーム作成前の直近のデータポイントを取得します。

高解像度アラーム

高解像度メトリクスでアラームを設定する場合、10 秒または 30 秒の期間で高解像度アラームを指定するか、60 秒の倍数の期間で通常のアラームを設定できます。高解像度のアラームには高い料金が発生します。高解像度メトリクスの詳細については、「カスタムメトリクスをパブリッシュする」を参照してください。

パーセンタイルベースの CloudWatch アラームおよび少数のデータサンプル

アラームの統計としてパーセンタイルを設定すると、統計評価に使用する十分なデータがない場合の処理を指定することができます。そのまま統計を評価し、任意でアラームの状態を変更するように指定することもできます。また、サンプルサイズが小さい場合は、メトリクスを無視し、統計的に十分なデータが揃うまで評価を保留することもできます。

パーセンタイルが 0.5 から 1.00 の間の場合、この設定は、評価期間中にデータポイントが 10/(1- パーセンタイル) を下回ると使用されます。たとえば、この設定は、p99 パーセンタイルのアラームのサンプル数が 1000 を下回ると使用されます。パーセンタイルが 0 から 0.5 の間の場合、この設定は、データポイントが 10/パーセンタイル を下回ると使用されます。

CloudWatch アラームでよく使用する機能

次の機能は、すべての CloudWatch アラームに適用されます。

  • AWS アカウントにつき、リージョンごとに最大 5,000 の アラームを作成できます。アラームを作成または更新するには、PutMetricAlarm API アクション (mon-put-metric-alarm コマンド) を使用します。

  • アラーム名には ASCII 文字のみを使用する必要があります。

  • DescribeAlarms (mon-describe-alarms) を使用して、現在設定しているアラームのいずれかまたはすべてを一覧表示したり、特定の状態にあるアラームを一覧表示したりできます。さらに、時間レンジで一覧をフィルタできます。

  • アラームを無効にするには DisableAlarmActions (mon-disable-alarm-actions) を、有効にするには EnableAlarmActions (mon-enable-alarm-actions) を使用します。

  • アラームの動作をテストするには、SetAlarmState (mon-set-alarm-state) を使用して任意の状態に設定します。この一時的な状態変更が持続するのは、次のアラーム比較が行われるときまでです。

  • カスタムメトリクスを作成する前に、PutMetricAlarm (mon-put-metric-alarm) を使用してアラームを作成できます。アラームを有効にするには、メトリクス名前空間およびメトリクス名に加えて、カスタムメトリクスのディメンションをすべてアラームの定義に含める必要があります。

  • アラームの履歴を見るには DescribeAlarmHistory (mon-describe-alarm-history) を使用します。CloudWatch は、アラーム履歴を 2 週間保存します。各状態変化に、固有のタイムスタンプが付きます。まれに、1 つの状態変化に対して複数の通知が履歴に残されることがあります。タイムスタンプによって、固有の状態変化を確認できます。

  • アラームの評価期間の数を各評価期間の長さで乗算した値が 1 日を超えることはできません。

注記

特定の状況では、AWS リソースが CloudWatch にメトリクスデータを送信していないことがあります。

たとえば、Amazon EBS は、Amazon EC2 インスタンスに追加されていない利用可能なボリュームに関するメトリクスデータを送信しないことがあります。これは、そのボリュームでモニタリングするメトリクスの動作がないためです。そのようなメトリクスにアラームを設定すると、状態が Insufficient Data に変わることがあります。これは、リソースが動作していない状態を示している可能性があり、必ずしも問題があることを意味しているわけではありません。