ITの教科書検索
入門読了 約12分

Amazon CloudWatchとは ― メトリクス・ログ・アラームの役割

CloudWatchは、AWSのリソースやアプリの状態を数値とログで監視し、しきい値を超えたら通知するサービスです。アラームの判定の仕組みやCloudTrailとの違いも説明します。

目次
  1. Amazon CloudWatchとは
  2. メトリクス・ログ・アラームの役割
  3. メトリクス
  4. ログ
  5. アラーム
  6. アラームの判定の設定
  7. 動かして確かめる:アラームの状態
  8. Auto Scalingとの関係
  9. ダッシュボード
  10. CloudTrailとの違い
  11. 練習問題

Amazon CloudWatchとは、AWSのリソースとアプリケーションを監視するサービス

Amazon CloudWatchは、AWSのリソースとAWS上のアプリをリアルタイムで監視するサービスです。EC2のCPU使用率が上がり続けている、アプリがエラーを出しているといった状態に、すぐ気づけるようにします。AWS公式ドキュメントは、性能・運用上の健全性・リソースの使用状況を把握できるサービスだと説明しています。

中心になる機能は、メトリクス・ログ・アラーム・ダッシュボードの4つです。メトリクスは数値を、ログは文字列の記録を保存します。アラームはしきい値と比較して、通知や自動の動作を実行します。ダッシュボードは、それらを1画面に並べます。メトリクスとログを組み合わせて遅さの原因を調べる手順は、オブザーバビリティの記事で説明しています。

メトリクス・ログ・アラームは、数値・文字列・しきい値の判定で役割が分かれる

CPU使用率のように時間とともに変わる数値は、メトリクスとして保存します。アプリケーションが出力するエラーメッセージのような文字列は、ログとして保存します。アラームは、主にメトリクスを監視します。

EC2・RDS・アプリ数値を送るログを送るメトリクス数値の時系列ログ文字列の記録数値化しきい値と比べるアラームしきい値で判定状態が変わると通知・自動の動作SNS・EC2・Auto Scaling
メトリクスは数値、ログは文字列を保存します。アラームが見るのはメトリクスで、ログの中身を使うときは点線のように数値にしてから渡します。

ログの内容をアラームに使いたいときは、メトリクスフィルタを使えます。メトリクスフィルタは、ログから数値を取り出してメトリクスにする機能です。図の点線が、この流れです。

メトリクスは、時刻の付いた数値の並び

メトリクスとは、CloudWatchに送られた、時刻付きの数値の並びです。たとえば、あるEC2インスタンスのCPU使用率は、EC2が送るメトリクスの1つです。

AWSの多くのサービスは、メトリクスを自動でCloudWatchに送ります。EC2・EBS・RDSなどの基本のメトリクスは、既定では無料です。データが届く間隔は、サービスと設定で変わります。

データが届く間隔(2026-10-26時点、AWS公式ドキュメント)
対象データの間隔備考
EC2(基本モニタリング)5分ごと既定の設定で、無料です。ステータスチェックのメトリクスだけ1分ごとです。
EC2(詳細モニタリング)1分ごと有効にした分は、メトリクスごとに課金されます。
RDS1分ごと既定で自動的に送られます。

メトリクスには、どのサービスのものかを表す名前空間があります。AWSのサービスのメトリクスは、EC2なら AWS/EC2 のように、AWS/サービス名 の名前空間に入ります。

ディメンションは、メトリクスを絞り込む名前と値の組です。EC2では InstanceId を指定すると、特定のインスタンスのメトリクスだけを取り出せます。メトリクスは、作られたリージョンにだけ存在します。リージョンの考え方は、リージョンとAZの記事で説明しています。

メトリクスのデータは、間隔が細かいほど、そのままの間隔で取り出せる期間が短くなります。短い間隔で送ったデータは、時間がたつと集約されて粗い間隔になります。

メトリクスのデータを、その間隔のまま取り出せる期間
データの間隔取り出せる期間
1分15日
5分63日
1時間455日(15か月)

EC2が標準で送るメトリクスの一覧に、メモリ使用率はありません。メモリやディスク使用量のようなOS内部の値は、CloudWatchエージェントを導入して送信します。同じエージェントは、オンプレミスのサーバーに導入して使うこともできます。

エージェントは、利用者がインスタンスに導入して設定します。ゲストOSの管理が利用者側にあることは、責任共有モデルの記事で説明したとおりです。

詳細モニタリングや、自分で送るカスタムメトリクスは有料です。料金の考え方は、料金の記事にまとめています。

ログは、CloudWatch Logsにまとめて保存して検索する

CloudWatch Logsは、ログファイルを監視・保存・参照するための機能です。EC2インスタンスやCloudTrail、Route 53などのログを扱えます。システムごとに散らばるログを、1か所に集めて検索できます。

CloudWatch Logsの用語
用語意味
ログイベント1件の記録。時刻と、生のメッセージを持ちます。
ログストリーム同じ発信元のログイベントが順に並んだものです。
ロググループログストリームをまとめ、保存期間・監視・アクセス制御の設定を共有する単位です。

既定では、ログは無期限に残り、期限切れになりません。保存期間はロググループごとに、1日から10年、または無期限の中から選べます。期間を過ぎたログは、自動で削除されます。

ログを対話的に検索・分析できるCloudWatch Logs Insightsもあります。クエリの書き方は省略します。

アラームは、メトリクスがしきい値を外れたときに状態を変える

アラームとは、メトリクスをしきい値と比較し続け、結果に応じて状態を変える仕組みです。状態は次の3つのどれかになります。

  • OK:メトリクスがしきい値の範囲内にある状態
  • ALARM:メトリクスがしきい値の範囲外にある状態
  • INSUFFICIENT_DATA:アラームを作った直後の状態。メトリクスが届かない状態や、判定に足りるデータがない状態も含みます

状態が変わると、アラームは動作を実行します。動作には、Amazon SNSのトピックへの通知・EC2の動作・Auto Scalingの動作などがあります。SNSは通知を配信するサービスで、メールでの通知にも使えます。SNSのトピックと購読者の仕組みは、SQSとSNSの記事で説明しています。

アラームの状態が変わると、そのイベントがAmazon EventBridgeにも届きます。そのため、ルールで別の処理につなげられます。

動作が実行されるのは、状態が変わったときだけです。Auto Scalingの動作だけは、新しい状態が続く間、1分に1回実行され続けます。

アラームの判定は、Period・評価回数・超える回数の3つで決まる

アラームを作るとき、いつ状態を変えるかを3つの設定で決めます。

  • Period:1つのデータポイントを作るために使う時間。秒で指定します。
  • Evaluation Periods(評価回数):判定に使う、直近のデータポイントの数。
  • Datapoints to Alarm(超える回数):評価回数のうち、しきい値を超えているとALARMになるデータポイントの数。連続していなくてもかまいません。

Periodが1分以上のアラームは、1分ごとに判定されます。ただし、Periodに評価回数を掛けた長さが1日を超えると、判定は1時間ごとになります。超える回数が評価回数より少ない設定は、評価回数 N のうち M 回で判定するので「M out of N」と呼びます。

CPU使用率が70%を超える状態が続いたらALARMにする場合を、計算してみます。しきい値を超えた状態が続く時間は、Periodに評価回数を掛けた長さです。超える回数は、評価回数と同じにしています。

CPU使用率70%のアラームの設定例(Periodと評価回数は説明用の例)
対象Period評価回数超えた状態が続く時間
EC2(基本モニタリング)5分(300秒)3回5分 × 3回 = 15分
EC2(詳細モニタリング)1分(60秒)5回1分 × 5回 = 5分
RDS1分(60秒)5回1分 × 5回 = 5分

EC2の基本モニタリングでは、データが5分ごとに届きます。Periodも5分にすると、3回続いて15分になります。詳細モニタリングやRDSなら、データは1分ごとに届きます。5回続けても5分で判定できます。

動かして確かめる:しきい値を切り替えて、アラームの状態を見る

次の図は、CPU使用率が5分ごとに72%・78%・84%と届いた例です。しきい値と判定のルールを切り替えると、アラームの状態が変わります。データが届かない場合も選べます。

データ
ルール
しきい値
  1. 1つ目(5分間の平均)72%70%を超えている
  2. 2つ目(5分間の平均)78%70%を超えている
  3. 3つ目(5分間の平均)84%70%を超えている
アラームの状態ALARM

しきい値70%を超えたデータは3つ中3つで、必要な3つ以上です。そのため、ALARMになります。

しきい値が高いほど、超えるデータの数は減ります。しきい値75%では、超えたデータは2つです。3回すべて超える必要があるルールでは、OKになります。3回中2回でよいルールでは、ALARMになります。

評価に使う範囲のデータが1つも届かないと、既定の設定ではINSUFFICIENT_DATAになります。このときは、しきい値と判定のルールは関係しません。

データが欠けたときの扱いは、アラームごとに選べます。選べるのは次の4つで、既定は missing です。ただし、DynamoDBのメトリクスを監視するアラームは、ignore が既定です。

EC2のメトリクスを監視するアラームは、インスタンスが正常でもINSUFFICIENT_DATAになることがあります。データがまれに欠けるだけで、そうなります。

欠けたデータの扱い
設定欠けたデータの扱い
notBreachingしきい値の範囲内として扱います。
breachingしきい値を超えたものとして扱います。
ignore現在のアラームの状態を維持します。
missing(既定)評価範囲のデータがすべて欠けていると、INSUFFICIENT_DATAになります。

Auto Scalingは、CloudWatchのアラームをきっかけに台数を変える

Auto Scalingは、スケーリングポリシーで台数を増減します。そのきっかけになるのが、CloudWatchのアラームです。EC2が送るCPU使用率のメトリクスを、アラームが監視します。ALARMになると、ポリシーが実行されます。

EC2インスタンスメトリクスCPUUtilizationアラームOK → ALARMスケーリングポリシーAuto Scalingグループ希望の台数CPU使用率を送るしきい値と比べるALARMで実行台数を増やす
ステップスケーリングでは利用者がアラームを作り、ターゲット追跡ではAuto Scalingがアラームを作って管理します。どちらも、アラームがALARMになることがスケーリングのきっかけです。

ステップスケーリングとシンプルスケーリングでは、利用者がアラームを作って管理します。ターゲット追跡では、Auto Scalingがアラームを作って管理します。公式ドキュメントは、ターゲット追跡のアラームを利用者が編集・削除しないよう注意しています。

ダッシュボードは、メトリクスとログを1画面に並べる

ダッシュボードとは、メトリクスやログのグラフを1か所に並べた画面です。AWSの多くのサービスには、CloudWatchが自動で用意するダッシュボードがあります。自分で作らなくても見られます。アカウントやリージョンをまたいで共有することもできます。

アラームをダッシュボードに追加すると、状態が色で分かります。INSUFFICIENT_DATAのときは灰色、ALARMのときは赤、OKのときは色が付きません。

CloudTrailとの違いは、状態を見るか、操作の記録を見るか

CloudTrailは、AWSアカウントの監査・ガバナンス・コンプライアンスのためのサービスです。ユーザー・ロール・AWSのサービスが行った操作が、イベントとして記録されます。CloudWatchが監視するのはリソースの状態で、CloudTrailが記録するのは操作です。

CloudWatchとCloudTrailの違い
観点CloudWatchCloudTrail
見る対象リソースやアプリケーションの状態(メトリクスとログ)ユーザー・ロール・AWSのサービスが行った操作(イベント)
答える問い現在のCPU使用率はどれくらいか誰がいつ何をしたか
保存の目安メトリクスは15か月分イベント履歴は過去90日の管理イベント

CloudTrailに記録される操作の主体は、IAMの記事で説明したユーザーやロールなどです。2つは組み合わせて使えます。CloudTrailのイベントは、CloudWatch Logsに送れます。すると、特定のAPI操作をCloudWatchのアラームで通知できます。イベント履歴と証跡の違いや、AWS Configとの使い分けは、CloudTrailの記事で詳しく説明しています。

参考にした資料

練習問題(全7問)

Q1Amazon CloudWatchの説明として正しいものはどれ?
Q2CloudWatchのメトリクスの説明として正しいものはどれ?
Q3アラームを作った直後で、判定に使えるデータがまだないときの状態はどれ?
Q4EC2のCPU使用率が70%を超える状態を、Period 5分・評価回数3回・超える回数3回で判定するアラームがある。ALARMになるのは、70%を超える状態が何分続いたとき?
Q5「誰がいつどのAPI操作をしたか」を調べたいとき、使うサービスはどれ?
Q6EC2のメモリ使用率をCloudWatchで監視したいときに使うものはどれ?
Q7CloudWatchとCloudTrailの使い分けとして、正しいものはどれ?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

AWSの記事を続けて読む

AWS 全38本中33本目