Amazon CloudWatch(アマゾン クラウドウォッチ)は、Amazon.comがAmazon Web Services(AWS)の一部として提供する、監視(モニタリング)とオブザーバビリティのサービスである。AWS上のリソースやそこで動くアプリケーションから、メトリクス(数値の時系列データ)、ログ、イベント、トレース(要求が通った経路の記録)を集め、グラフによる可視化、しきい値や機械学習にもとづく通知、他のサービスを呼び出す自動対応に用いる。多くのAWSサービスは既定でメトリクスをCloudWatchへ送るため設定なしに基本的な監視ができ、オンプレミスのサーバーや利用者独自の指標もエージェントやAPIを通じて対象にできる。2009年5月18日にAmazon EC2インスタンスの監視機能として、Auto ScalingとElastic Load Balancingとともに提供が始まり、その後ログの収集・分析やアプリケーション性能監視(APM)へ範囲を広げた。
概要 CloudWatchは、監視対象から送られてくる計測データを1か所に集め、それを見たり調べたりするための道具をまとめて提供する。AWSは自社の文書でCloudWatchを「AWSが提供するネイティブな監視・オブザーバビリティサービス」と位置付けており、メトリクス・ログ・トレースを1つのサービスで扱うと説明している。
監視の対象になるデータは、大きく3つの経路で集まる。第1に、EC2インスタンスやAmazon Simple Storage Service、AWS Lambdaなど多くのAWSサービスが、利用者の設定なしに基本的なメトリクスをCloudWatchへ送る。第2に、利用者が自分のアプリケーションや業務の数値をAPIで発行する「カスタムメトリクス」があり、AWSのリソースに由来しない値も同じ仕組みで扱える。第3に、EC2インスタンスやオンプレミスのサーバーへCloudWatchエージェントを導入すると、オペレーティングシステムの内側にあるプロセス・CPU・メモリ・ディスク・ネットワークの状態やログファイルを収集できる。
集めたデータは、ダッシュボードでのグラフ表示、アラームによる通知と自動対応、クエリによる分析に使われる。料金は前払いや最低利用料のない従量課金で、AWSは月ごとの無料利用枠を設けている。
仕組み メトリクス メトリクスは、時刻順に並んだデータポイントの集まりであり、CloudWatchで最も基本となる概念である。個々のメトリクスは「名前空間」と呼ばれる入れ物に属し、名前空間が異なるメトリクスは互いに混ざらない。AWSサービスが送るメトリクスは、Amazon EC2のAWS/EC2のように「AWS/サービス名」という形の名前空間を使う。メトリクスには「ディメンション」として名前と値の組を付けられ、インスタンスの識別子やアベイラビリティーゾーンなど、同じ名前のメトリクスを区別する軸になる。
読み出すときは、指定した期間ごとに平均・合計・最小・最大・データポイント数・パーセンタイルといった統計値へ集約する。データポイントの解像度は、1分単位の「標準解像度」と1秒単位の「高解像度」の2種類がある。保持期間は解像度に応じて段階的で、期間が60秒のデータポイントは15日、300秒(5分)のものは63日、3600秒(1時間)のものは455日(15か月)保持され、短い期間で発行されたデータは長期保存の際にまとめられる。メトリクスは作成したリージョンの中だけに存在し、削除はできないが、新しいデータが15か月発行されないと失効する。
ログ ログの収集・保存・検索はCloudWatch Logsが担う。EC2インスタンスやAWS CloudTrail、Amazon Route 53など各種の発生源からログを1か所に集められる。ログの単位は「ログイベント」で、同じ発生源から来た一連のログイベントを「ログストリーム」、保持期間・監視・アクセス制御の設定を共有するログストリームの集まりを「ロググループ」と呼ぶ。1つのロググループに属するログストリームの数に上限はない。
保持期間は既定では無期限で、ロググループごとに期間を指定できる。ログの中の値や文字列の出現回数を「メトリクスフィルター」で抜き出してメトリクスに変換すると、ログの内容にアラームを設定できる。「サブスクリプションフィルター」を設定すると、条件に合ったログイベントをリアルタイムで他のサービスへ転送できる。
アラーム アラームは、監視対象の値をあらかじめ決めた条件と照らし合わせ、状態が変わったときに通知や自動対応を行う仕組みである。状態は、条件を満たしていない「OK」、条件を満たした「ALARM」、判定に必要なデータがそろわない「INSUFFICIENT_DATA」の3つをとる。
もっとも基本的な「メトリクスアラーム」は、1つのメトリクスまたはメトリクスを組み合わせた数式の結果を、指定した回数分の期間にわたってしきい値と比べる。状態が変わると、電子メールなどを配信するAmazon Simple Notification Service(SNS)のトピックへの通知、EC2インスタンスの停止や再起動、Amazon EC2 Auto Scalingによる台数の増減、AWS Systems Managerの作業項目の作成といったアクションを実行できる。ほかに、複数のアラームの状態を論理式で組み合わせる「複合アラーム」や、Logs Insightsのクエリ結果を定期的に評価する「ログアラーム」がある。
イベント CloudWatchは、AWSリソースの状態変化を表す「イベント」のストリームも扱う。2016年に追加されたCloudWatch Eventsは、EC2インスタンスの起動やヘルスチェックの結果、Auto Scalingによる台数の変化などをほぼリアルタイムで配信し、利用者はどのイベントに関心があるかをルールとして書き、AWS Lambda関数の呼び出しやSNSへの通知といった動作を対応付ける。定期実行のスケジュールもここで指定する。2019年7月、AWSはCloudWatch Eventsのイベント処理モデルを土台にしたAmazon EventBridgeを公開し、この機能を独立したサービスへ位置付け直した。
エージェント CloudWatchエージェントは、EC2インスタンス・オンプレミスのサーバー・コンテナ化されたアプリケーションからメトリクス、ログ、トレースを集める常駐プログラムである。2017年12月に、それまで別だったメトリクス用とログ用の仕組みを1つにまとめた「統合CloudWatchエージェント」として導入され、AWS Systems Managerを使って多数のインスタンスへまとめて配布・設定できるようになった。Linuxなどに対応し、2020年9月にはオープンソースとして公開された。
アプリケーション側の数値は、StatsDとcollectdという既存のプロトコルでも受け取れる。集めたメトリクスはCloudWatchのほか、Amazon Managed Service for Prometheusへ送ることもできる。2021年1月にOpenTelemetryのAPIとSDKからのデータ受け取りに対応し、2023年8月にはOpenTelemetryとAWS X-Rayのトレースを同じエージェントで収集できるようになった。
主な機能 CloudWatchは、メトリクス・ログ・アラームという土台の上に、用途別の機能を重ねる形で構成されている。主なものは次のとおりである。
ダッシュボード 複数のメトリクスのグラフやテキストを1つの画面に並べ、再利用・共有できるようにする機能。2015年10月に追加された。 CloudWatch Logs Insights 集めたログに対して対話的にクエリを実行し、集計・絞り込み・可視化を行う機能。2018年11月に一般提供が始まった。2026年時点ではSQLやPPLを含む複数のクエリ言語に対応する。 Container Insights コンテナで動くアプリケーションのメトリクスとログを集めて分析する機能。Amazon Elastic Container Service(ECS)、Amazon Elastic Kubernetes Service(EKS)、EC2上で自前運用するKubernetesクラスターを対象とする。AWS Lambdaの関数を対象とするLambda Insightsもある。 Application Signals アプリケーション性能監視(APM)の機能。OpenTelemetryに対応し、コードを書き換えずに自動で計装してレイテンシ・エラー率・要求数などを収集し、サービスレベル目標(SLO)に対する達成状況を追跡する。2024年6月に一般提供が始まった。 CloudWatch Synthetics 「カナリア」と呼ばれるスクリプトを定期的に実行し、利用者の操作を模擬してURLやAPIの応答を確かめる機能。2020年4月に一般提供が始まった。 CloudWatch RUM 実際の利用者のブラウザーから性能データを集めるリアルユーザーモニタリングの機能。2021年11月に追加され、地域・ブラウザー・デバイスごとの表示速度やJavaScriptのエラーの発生状況を把握できる。 異常検出 メトリクスの履歴に機械学習を適用して通常の範囲を自動で求め、そこから外れた値を示す機能。2019年10月に全ての商用リージョンで利用できるようになった。求めた範囲をアラームの条件に使えるため、しきい値を手作業で決めずに済む。 Metric Streams CloudWatchのメトリクスを、指定した宛先へほぼリアルタイムで継続的に送り出す機能。2021年3月に追加された。 クロスアカウントオブザーバビリティ 複数のAWSアカウントにまたがるメトリクス・ログ・トレースを、1つの監視アカウントから境界を越えて検索・可視化できるようにする機能。2022年11月に追加された。 Database Insights データベースの性能を監視し、SQLの実行状況やデータベースの負荷を調べる機能。2024年12月にAmazon Aurora向けから一般提供が始まった。 investigations AWSが「AIエージェント」と呼ぶ仕組みが環境内の異常を探し、関連する情報を並べて根本原因の仮説と対処手順の候補を示す機能。2025年6月に一般提供が始まった。
このほか、インターネット経路の性能を測るInternet Monitorなど、ネットワーク監視の機能群がある。
オブザーバビリティとサードパーティー製品 CloudWatchは、AWS上のシステムからテレメトリー(システムが外部に出力する監視用のデータ)を集める基盤として使われるだけでなく、集めたデータをオープンソースの製品や他社のサービスへ送り出す経路も備えている。この節では、オブザーバビリティという考え方のなかでのCloudWatchの位置付け、OpenTelemetry・Prometheus・Grafanaといったオープンソースとの連携、およびDatadog・New Relic・Splunkなどのサードパーティー製サービスとのデータ連携について述べる。
オブザーバビリティにおける位置付け オブザーバビリティ(可観測性)は、システムが外部に出力するデータからその内部状態をどれだけ推測できるかを表す性質であり、実務ではログ・メトリクス・トレースを中心とするテレメトリーを収集・分析する取り組みを指す。AWSは公式ページでCloudWatchを「モニタリングとオブザーバビリティ」のサービスと位置付けている。
CloudWatchが標準で扱うテレメトリーはメトリクスとログであり、要求が複数のサービスを横断する経路を追跡するトレースは、同じAWSのAWS X-Rayが扱う。2024年6月10日に一般提供が始まったCloudWatch Application Signalsについて、AWSはOpenTelemetryに準拠したアプリケーション性能監視(APM)の機能であるとし、サービスごとの要求数・可用性・レイテンシー・エラーなどの指標を定型のダッシュボードで示すと説明している。
日本語の技術メディアの解説では、CloudWatchはクラウド事業者が提供するマネージドな監視サービスの例として、Google Cloud Monitoringや、New Relic・Datadog・Dynatraceといった有料のAPMのサービスと並べて紹介されている。
オープンソースとの連携 AWSは、CloudWatchがPrometheusやGrafanaといったオープンソースのモニタリング・オブザーバビリティ製品と統合でき、OpenTelemetryの標準に対応しているとしている。
OpenTelemetryは、テレメトリーの取得と収集の方法を定めるベンダー中立の枠組みである。テレメトリーを保存・可視化するバックエンドは仕様の対象外であり、利用者はオープンソースの製品や商用製品を選んで組み合わせることになる。AWSは自社ディストリビューションとしてAWS Distro for OpenTelemetry(ADOT)を提供しており、アプリケーションに一度計装(テレメトリーを出力するための計測コードの組み込み)を施せば、メトリクスとトレースを複数の監視サービスへ送れるとしている。CloudWatch側では2021年1月22日にCloudWatchエージェントがOpenTelemetryのAPIとSDKに対応し、Amazon EC2上のアプリケーションからメトリクスとトレースを受け取ってCloudWatchとAWS X-Rayへ送れるようになった。
Prometheusとの連携では、2020年9月8日にCloudWatchがAmazon Elastic Container Service・Amazon Elastic Kubernetes Service・AWS Fargate・Kubernetesのクラスターが公開するPrometheus形式のメトリクスの収集に対応した。AWSはこの時点でPrometheusを、Cloud Native Computing Foundation(CNCF)に属するオープンソースの監視プロジェクトであり、収集はプル型で行われると説明している。AWSはPrometheus自体のマネージドサービスとして、Prometheusのクエリ言語PromQLに対応したAmazon Managed Service for Prometheusも別に提供している。2026年6月15日には、CloudWatchのコンソール上でPromQLとMetrics Insightsの双方を使ってメトリクスを照会・可視化する「Query Studio」が一般提供となった。
Grafanaとの連携では、2019年11月25日にGrafana LabsがCloudWatch用のメトリクスデータソースの更新版を公開し、ワイルドカードによる動的なメトリクス一覧の照会、CloudWatchコンソールへの遷移、Amazon EC2・Amazon Elastic Block Store・AWS Lambda向けの作成済みダッシュボードが加わった。AWSはこの告知で、CloudWatchとGrafana Labsが引き続き協働する予定であるとしている。AWSはGrafanaのマネージドサービスとしてAmazon Managed Grafanaも提供している。
サードパーティー製オブザーバビリティサービスとの連携 CloudWatchに集まったデータを他社のオブザーバビリティサービスで扱うための経路には、CloudWatchのAPIを呼び出す方式、メトリクスを継続的に送り出す方式、ログを転送する方式がある。
1つ目は、各社のサービスがCloudWatchのAPIを定期的に呼び出してメトリクスを取り出す方式である。DatadogとNew Relicはいずれもこの方式を自社の文書で「APIポーリング」と呼んでいる。Datadogは、利用者のAWSアカウントに作成したIAMロールを引き受けてCloudWatchのAPIをメトリクスごとに巡回し、新しいメトリクスは平均して10分ごとに取得されると説明している。New Relicは、後述のMetric Streamsによる方式と、Metric Streamsが対応していないサービス向けのAPIポーリングによる方式の2通りを案内している。
2つ目は、2021年3月31日に追加されたCloudWatch Metric Streamsである。選んだメトリクスを指定の宛先へ継続的に、ほぼリアルタイムで送り出す機能で、AWSは発表時に、Datadog・New Relic・Splunk・Dynatrace・Sumo Logicを含むパートナーの製品へメトリクスを送れるとし、出力形式としてOpenTelemetryとJSONに対応するとした。開発者ガイドによれば、Amazon Data Firehoseのストリームを経由する構成では、Firehoseが対応する宛先であれば他社のサービスにもデータレイクにも送れる。2023年10月17日には、宛先のURLとAPIキーを入力するだけで必要なリソースを自動で作成する「AWSパートナー宛先のクイックセットアップ」がコンソールに追加された。開発者ガイドは、このクイックセットアップの対象としてDatadog・Dynatrace・Elastic・New Relic・Splunk Observability Cloud・Sumo Logicの6社を挙げている。Dynatraceも自社の文書で、指定したリージョンのCloudWatchのメトリクスをAmazon Data Firehose経由で取り込む方式を案内している。
3つ目は、CloudWatch Logsのサブスクリプションフィルターによるログの転送である。宛先にはAmazon Kinesis Data Streams・AWS Lambda・Amazon Data Firehose・Amazon OpenSearch Serviceを指定でき、送られるログはBase64で符号化されgzipで圧縮される。Firehoseを経由する場合は、FirehoseがHTTPエンドポイントの宛先として設定手順を用意している製品を選べる。2026年9月時点の一覧には、Datadog・New Relic・Dynatrace・Splunk・Splunk Observability Cloud・Sumo Logic・Elastic・Grafana Cloud・Honeycomb・Coralogix・Logz.io・LogicMonitorなどが含まれる。
市場における位置付け オブザーバビリティ製品は独立した市場区分として扱われており、調査会社のガートナーは2025年版の「オブザーバビリティ・プラットフォームのマジック・クアドラント」で、Chronosphere・Datadog・Dynatrace・Elastic・Grafana Labs・IBM・New Relic・Splunkの8社をリーダーに位置づけ、Amazon Web Servicesは「チャレンジャー」に分類している。同レポートはAWSの強みとして、CloudWatch investigationsなどの生成AIに関する取り組みと、AWSの各サービスから最小限の設定でテレメトリーを収集できる統合を挙げている。一方で留意点として、多くのベンダーと異なりオブザーバビリティがAWSの主力製品ではないため、オブザーバビリティに特化した販促活動がリーダー各社に後れをとっていると評している。費用については、顧客からの問い合わせやレビューサイトのPeer Insightsで、CloudWatchなどに関わる費用の高さがしばしば言及されるとしている。費用の問題はオブザーバビリティ分野に広く見られるとしつつ、AWSの各サービスがメトリクスやログをCloudWatchへ容易に送り込める統合の性質が想定外の支出につながりやすいと指摘し、AWS Cost ExplorerやAWS Budgetsといった管理ツールの利用と、ログの取り込み頻度やトレースの設定の見直しを勧めている。同レポートは、オブザーバビリティ製品の市場が2028年までに推定142億ドルに達し、2021年から2028年までの年平均成長率は11.1%になると見込むとしている。
歴史 CloudWatchは2009年5月18日、Amazon EC2の新機能としてAuto Scaling(現在のAmazon EC2 Auto Scaling)とElastic Load Balancingとともに提供が始まった。当初はEC2インスタンス単位のCPU負荷・ディスク入出力・ネットワーク入出力のメトリクスを1分間隔で集約し、2週間保持するものだった。値はEC2の基盤側で測るため各インスタンスに監視用のエージェントを入れる必要がなく、アベイラビリティーゾーン・インスタンスタイプ・Amazonマシンイメージ(AMI)の識別子・Auto Scalingグループといった軸で取り出せた。提供地域は当初、米国のリージョンに限られていた。
2011年5月10日、利用者が自分のアプリケーションや業務の数値をCloudWatchに保存し、AWSのリソースのメトリクスと同じようにグラフ表示・アラーム・自動対応に使える「カスタムメトリクス」が追加された。2014年7月にはCloudWatch Logsが加わり、OSやアプリケーションが出すログファイルの収集・保存とフィルターによる監視ができるようになった。InfoQは当時、フィルターによるログの監視と警告に重点があることが、リアルタイム検索を提供する他のログ管理サービスとの大きな違いだと指摘した。同年11月にはAWS CloudTrailが記録するAPI呼び出しの履歴をCloudWatch Logsへ送る連携が加わった。以降、2015年10月のダッシュボード、2016年1月のCloudWatch Events、2017年12月の統合CloudWatchエージェントと、監視の対象と粒度を広げる機能が続いた。
2018年から2021年にかけては、集めたデータを掘り下げる機能と、アプリケーション側を見る機能が加わった。2018年11月にログを対話的に調べるCloudWatch Logs Insightsが一般提供となり、2019年にはコンテナ環境を対象とするContainer Insightsと、機械学習で通常の範囲を推定する異常検出が加わった。2020年4月には外部から定期的に応答を確かめるCloudWatch Synthetics、2021年3月にはメトリクスを他の宛先へ流し続けるMetric Streams、同年11月には利用者のブラウザー側を測るCloudWatch RUMが追加された。
2022年以降は、対象の範囲を組織全体へ広げる方向と、アプリケーションの観点でまとめる方向の双方に機能が加わった。2022年11月に複数のAWSアカウントを横断して扱うクロスアカウントオブザーバビリティが追加され、2023年8月にはCloudWatchエージェントがOpenTelemetryとAWS X-Rayのトレースを収集できるようになった。2024年6月にはOpenTelemetryに対応したAPM機能のApplication Signalsが一般提供となり、2024年12月にデータベース向けのDatabase Insights、2025年6月に調査を支援するinvestigationsが一般提供となった。2025年12月には、運用・セキュリティ・コンプライアンスのログを複数のアカウントとリージョンから集めて統一的に扱う機能が発表され、Open Cybersecurity Schema Framework(OCSF)への変換や、Apache Iceberg互換の形式での取り出しに対応した。
料金 料金は前払いや最低利用料のない従量課金で、月末にその月の使用量に応じて請求される。課金の対象は機能ごとに分かれており、ログの取り込み量・保存量とクエリで走査した量、カスタムメトリクスと詳細モニタリングのメトリクスの数、APIの呼び出し回数、アラームの数、カスタムダッシュボードの数などがある。
AWSは無料利用枠を設けており、多くのAWSサービスが既定で送る基本モニタリングのメトリクスは無料である。これに加えてログ5ギガバイト、カスタムメトリクスと詳細モニタリングのメトリクス10個、API呼び出し100万回、カスタムダッシュボード3個、アラームのメトリクス10個などが月ごとに無料の範囲として示されている。ただしGetMetricDataなど一部のAPI操作は常に課金される。金額は時期とリージョンによって異なる。
関連項目 Amazon Web Services Amazon Elastic Compute Cloud AWS Systems Manager オブザーバビリティ アプリケーション性能管理 OpenTelemetry Prometheus 時系列データベース
脚注
外部リンク Amazon CloudWatch(日本語公式サイト) Amazon CloudWatch(英語公式サイト) Amazon CloudWatch User Guide(英語ユーザーガイド) amazon-cloudwatch-agent(CloudWatchエージェントのソースコード)