CloudWatchアラームを設定したいが、しきい値として設定したいCloudWatchメトリクスが存在しない

マネジメントコンソールを用いて CloudWatch Alarm を作成したいが、しきい値として設定したい CloudWatch メトリクスが存在しない場合の解決法をご案内いたします。
2020.04.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

マネジメントコンソールを用いて、CloudWatch アラームを作成したい。しかし、本来なら存在するはずの CloudWatch メトリクスがなく、しきい値として設定ができない。

どう対応すればいいの?

CloudWatch メトリクスにおいて、一度も値が送信されたことのないメトリクスはマネジメントコンソール上に表示がされません。

この場合、AWS CLI コマンド put-metric-alarm を使用し、直接 CloudWatch メトリクスを指定することで CloudWatch アラームの作成が可能です。

以下、コマンドの形式です。

aws cloudwatch put-metric-alarm --alarm-name <アラーム名> \
--alarm-description <アラームの説明> \
--metric-name <メトリクス名> \
--namespace <名前空間> \
--statistic <統計> \
--period <期間(単位:秒)> \
--threshold <しきい値> \
--comparison-operator <比較演算子> \
--dimensions <ディメンション> \
--evaluation-periods <しきい値を超えた回数> \
--alarm-actions <アラーム発生時のアクション> \
--unit <単位>

例:アカウント ID: 111122223333 に存在する、CloudFront(ディストリビューションID: E0123456EXAMPLE)の CloudWatch メトリクス 5xxErrorRate の 1 分間の平均値が 5 回連続でしきい値 10 % を超えた場合に、東京リージョンの SNS トピック: SampleTopic へ通知を行うアラーム設定

aws cloudwatch put-metric-alarm --alarm-name 5xxMonitoring-sample \
--alarm-description "Alarm when 5xxErrorRate exceeds 10 percent" \
--metric-name 5xxErrorRate \
--namespace AWS/CloudFront \
--statistic Average \
--period 60 \
--threshold 10 \
--comparison-operator GreaterThanThreshold \
--dimensions "Name=DistributionId,Value=E0123456EXAMPLE" \
--evaluation-periods 5 \
--alarm-actions arn:aws:sns:ap-northeast-1:111122223333:SampleTopic \
--unit Percent

参考情報

AWS CLI バージョン 2 のインストール - AWS Command Line Interface

put-metric-alarm — AWS CLI 1.18.33 Command Reference

Amazon CloudWatch の概念 - Amazon CloudWatch

利用可能なメトリクスの表示 - Amazon CloudWatch