[マネジメントコンソール編] CloudWatchアラームを設定したいが、しきい値として設定したいCloudWatchメトリクスが存在しない場合の対処方法

マネジメントコンソールで、しきい値として設定したい CloudWatch メトリクスが存在しない場合に CloudWatch アラームを設定する方法を紹介しています。
2022.03.26

困っていた内容

マネジメントコンソールから、とあるメトリクスの CloudWatch アラームを作成したいと考えております。
しかし、対象のメトリクスは現在コンソール上で確認できないため、CloudWatch アラームの作成ができません。もし対応方法があれば教えてください。

どう対応すればいいの?

メトリクスによっては、常に記録されずにレポート条件を満たした場合にのみ記録されるメトリクスがあります。また、過去 2 週間に新しいデータポイントがないメトリクスは、コンソールに表示されません。

その場合は以下の方法で CloudWatch アラームを作成することをお試しください。

対応方法

  1. CloudWatch コンソールからアラーム作成画面に移動する
  2. アラームを作成したいサービスの他のメトリクスを一度アラームの監視対象としてチェックする
  3. [発信元] タブでメトリクス名を監視したいメトリクス名に変更する

なお、AWS CLI を使用して対応することも可能です。

やってみた

AWS WAF の BlockedRequests メトリクスが検知された際に通知を行う CloudWatch アラームを作成します。

前提

以下のブログ記事をもとに WAF (Web ACL とルール)を作成して ALB と紐付けを行ないました。

CloudWatch コンソールから CloudWatch アラームページに移動し、「アラームの作成」をクリックします。
そして「メトリクスの選択」をクリックします。

CloudWatchアラームの作成

WAFV2 > Region,Rule,WebACL を選択していきますが、BlockedRequests メトリクスは記録がまだ行われておらず、AllowedRequests メトリクスのみ確認できる状態です。

BlockedRequestsがない

CloudWatch アラームを作成する

一度 AllowedRequests メトリクスにチェックを入れた状態で「発信元」タブをクリックします。

 AllowedRequests メトリクスを選択する

以下のように AllowedRequests メトリクスについての詳細が JSON 形式で表示がされます。

発信元タブを開いた

AllowedRequests を BlockedRequests に書き換え、「更新」をクリックします。

BlockedRequests

そして「メトリクスの選択」をクリックします。すると、通常通り CloudWatch アラームの作成が行えます。

アラーム作成ができる

CloudWatch アラームの作成後に ApacheBench を使用して大量アクセスを生成し BlockedRequests メトリクスを記録させたところ、問題なく SNS を通じて アラーム通知が送られました!

通知が送られた

参考情報

CloudWatch Logs のメトリクスフィルターを使用する際に、存在しないメトリクスをもとにアラームを設定したい場合はこちらのブログ記事の内容が参考になります。