Amazon CloudWatch 入門 ​

AWSを利用する上で、システムの「健康状態」を把握することは非常に重要です。そのための中心的なサービスが Amazon CloudWatch です。

この記事では、AWS監視の初心者向けに、CloudWatchの基本概念と全体像を解説します。

CloudWatch とは? ​

Amazon CloudWatch は、AWSリソースとAWS上で実行されるアプリケーションの監視・可観測性(Observability)サービスです。 サーバーのCPU使用率、アプリケーションのエラーログ、システム全体のパフォーマンスなどを一元管理できます。

なぜ監視が必要なのか? ​

  • 障害の早期発見: システムがダウンする前に予兆を検知する
  • 原因調査の迅速化: 「いつ」「どこで」「何が」起きたかをログから特定する
  • リソース最適化: 使われていないリソースを特定し、コストを削減する

CloudWatch の3つの柱 ​

CloudWatchを理解する上で重要な要素は以下の3つです。

1. メトリクス (Metrics) ​

「数値データ」です。

  • 例: EC2インスタンスのCPU使用率が 80%
  • 例: S3バケットのサイズが 50GB
  • 例: Webサイトへのアクセス数が 100回/分

2. ログ (Logs) ​

「テキストデータ」です。

  • アプリケーションが出力するエラーメッセージ
  • 誰がいつログインしたかというアクセス記録
  • システムの動作履歴

3. アラーム (Alarms) ​

メトリクスを監視し、特定の条件を満たした場合にアクションを実行する機能です。

  • 例: CPU使用率が90%を超えたらメールで通知する
  • 例: エラー率が上がったらAuto Scalingでサーバーを増やす

アーキテクチャの全体像 ​

以下は、CloudWatchがどのようにデータを収集し、活用されるかの全体像です。

CloudWatch 全機能マップ ​

CloudWatchは年々機能が増えており、全体像が把握しづらくなっています。主要な機能を分野別に整理しました。

分野機能名用途
基本機能Metrics数値データの収集・グラフ化
Logsログデータの収集・検索・分析
Alarms閾値を超えた際の通知・アクション
Dashboards複数のグラフをまとめた画面作成
APM / ObservabilityApplication Signals自動計装によるアプリ性能監視 (SLO/SLI)
X-Ray / ServiceLens分散トレーシングによるボトルネック特定
RUM (Real User Monitoring)ブラウザ側(JavaScript)でのユーザー体験計測
コンピュート監視Container InsightsECS/EKSの詳細メトリクスとログの統合
Lambda InsightsLambda関数の詳細なパフォーマンス分析
ネットワーク監視Network MonitorAWS-オンプレミス間のネットワーク品質監視
Internet Monitorインターネット上のユーザーからAWSへの接続状況監視
ユーザー体験SyntheticsCanaryスクリプトによる外形監視
EvidentlyA/Bテストや機能フラグの管理
分析Logs Insightsクエリ言語を使ったログの高速分析
Contributor InsightsトップN (アクセス数上位など) の時系列分析

重要なコンポーネント: CloudWatch Agent ​

AWSを使っていると必ず耳にするのが「CloudWatch Agent」です。なぜこれが必要なのでしょうか?

AWSの標準メトリクスは、あくまで「外側(ハイパーバイザー)」から見たデータしか取得できません。

  • 取得できるもの: CPU使用率、ネットワーク転送量、ディスクI/O回数
  • 取得できないもの: メモリ使用率、ディスク使用率(残り容量)、OS内のプロセス情報

サーバーの「メモリ不足」や「ディスク容量不足」を監視するためには、サーバー内部に「CloudWatch Agent」をインストールして、内側からデータを送る必要があります。これを「カスタムメトリクス」と呼びます。

[必須知識] CloudWatch Agentについて詳しく学ぶ 👉 CloudWatch Agent 完全ガイド - インストールから高度な設定まで

料金体系の考え方(基本) ​

CloudWatchには無料枠がありますが、本格的に使うと従量課金となります。主な課金要素は以下の通りです。

  • カスタムメトリクス: 独自に定義したメトリクスの数
  • ダッシュボード: 作成したダッシュボードの数
  • アラーム: 設定したアラームの数
  • ログ: ログの取り込み量(GB)と保存量(GB)

※詳細は公式料金ページを参照してください。

料金試算の具体例(月額目安) ​

「結局いくらかかるの?」という疑問に答えるため、小規模なWebシステム(EC2 10台規模)での概算を出してみましょう。(※価格はリージョンにより異なります。ここでは$1=150円換算の概算です)

シナリオ:

  • EC2インスタンス: 10台
  • 監視項目: 各サーバーでメモリとディスクを監視 (カスタムメトリクス 2個/台)
  • アラーム: CPUとメモリで各1個設定 (計20個)
  • ログ: 各サーバーが1日100MB出力 (月間計30GB)
  • ダッシュボード: 1つ作成
項目計算式 (概算単価)月額費用
カスタムメトリクス20個 × $0.30$6.00
アラーム20個 × $0.10$2.00
ログ取り込み30GB × $0.50$15.00
ログ保存30GB × $0.03$0.90
ダッシュボード1枚 × $3.00$3.00
合計$26.90 (約4,000円)

このように、CloudWatchは従量課金ですが、基本的な監視であればそれほど高額にはなりません。ただし、ログをテラバイト単位で出力したり、カスタムメトリクスを何千個も作ると高額になるため注意が必要です。

次のステップ ​

CloudWatchの全体像がつかめたら、次は具体的な設定方法を学びましょう。