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 / Observability | Application Signals | 自動計装によるアプリ性能監視 (SLO/SLI) |
| X-Ray / ServiceLens | 分散トレーシングによるボトルネック特定 | |
| RUM (Real User Monitoring) | ブラウザ側(JavaScript)でのユーザー体験計測 | |
| コンピュート監視 | Container Insights | ECS/EKSの詳細メトリクスとログの統合 |
| Lambda Insights | Lambda関数の詳細なパフォーマンス分析 | |
| ネットワーク監視 | Network Monitor | AWS-オンプレミス間のネットワーク品質監視 |
| Internet Monitor | インターネット上のユーザーからAWSへの接続状況監視 | |
| ユーザー体験 | Synthetics | Canaryスクリプトによる外形監視 |
| Evidently | A/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の全体像がつかめたら、次は具体的な設定方法を学びましょう。
- 実践編: メトリクス監視とアラーム設計
- 実際にCPU使用率などを監視し、アラートメールを飛ばす設定を行います。
- 実践編: ログ管理と分析
- アプリケーションログの収集と、Logs Insightsを使った分析方法を学びます。