はじめに
サーバーは、インターネットを通して使う大切なコンピュータです。
もしこのサーバーが止まってしまうと、ホームページが見られなくなったり、アプリが使えなくなったりして大きな影響が出てしまいます。
ところが、人間がずっとサーバーの状態を見張ることはできません。気づかないうちにトラブルが起きてしまうこともあります。
そこで役立つのが Amazon CloudWatch(クラウドウォッチ) です。
CloudWatch は、サーバーの状態を自動で監視し、問題が起きたらアラームを鳴らして知らせてくれる「見張り番」のようなサービスです。
たとえば
- サーバーの動きが遅くなったら知らせてくれる
- 使える容量が少なくなったら教えてくれる
- サーバー自体が止まったらすぐにアラートを送ってくれる
といったことができます。
これによって、管理者は「問題が起きてから気づく」のではなく、早い段階で対処できるようになります。
結果として、サービスを安定して動かすことができ、利用者にとっても安心して使える環境を提供できるのです。
CloudWatchとは?
CloudWatch(クラウドウォッチ) は、AWS が用意しているサーバーの「見張り番サービス」です。
EC2 をはじめとする AWS のさまざまなリソースを自動で監視し、問題が起きたらすぐに知らせてくれます。
できること
- CPUやメモリの監視
サーバーがどれくらいの力を使っているかをチェックできます。
もし使いすぎて動作が重くなったら、すぐに気づけます。 - 異常の通知
あらかじめ「ここまでいったら危険」というルール(しきい値)を決めておくと、超えたときにメールやSNS経由で通知してくれます。
たとえば「CPU使用率が80%を超えたら知らせる」といった設定が可能です。 - グラフで可視化
CPU使用率やネットワーク通信量などをグラフ化してくれるので、どの時間帯に負荷が高いのか一目でわかります。
監視できる代表的な項目
CloudWatch を使うと、サーバーのさまざまな状態を見張ることができます。代表的なものを紹介します。
CPU使用率
サーバーがどれくらい計算処理をしているかを表します。
→ 高すぎるとサーバーが重くなり、アプリが遅くなる原因になります。
ディスク使用量
ディスクの空き容量や読み書きの状態を監視できます。
→ 容量不足になるとアプリが動かなくなるので、早めに気づくことが重要です。
ネットワーク通信量
サーバーがどれくらいデータを送受信しているかをチェックできます。
→ 急に増えた場合はアクセス集中や不正アクセスの可能性もあります。
ステータスチェック
EC2 インスタンス自体が正常に動いているかを自動で確認してくれます。
→ もし OS やハード障害で落ちてしまった場合もすぐ検知できます。
ログの確認
アプリやサーバーが出力するログを CloudWatch Logs に送ることで、
エラー内容や挙動を確認できます。
→ 「なぜ落ちたのか?」を後から調べるのに役立ちます。
CloudWatch アラーム設定の流れ
CloudWatch では、サーバーの状態を見張るだけでなく、条件に応じて「アラーム」を鳴らすことができます。
CloudWatch コンソールを開く
AWS マネジメントコンソールにログインし、サービス一覧から CloudWatch を選択します。
「アラームを作成」を選ぶ
左メニューの「アラーム」から アラームを作成 をクリックします。

監視したいメトリクスを選択
メトリクスの選択から監視したいメトリクスを選択します。

しきい値を設定
「条件」画面で、アラートを発生させる基準を入力します。
例:CPU 使用率が 80% を超えたらアラーム発生

通知先を設定
アラームが発生したときに通知を受け取る方法を設定します。
- SNS トピックを作成
- 通知先としてメールアドレスを登録(確認メールに承認が必要)
- または Slack / Teams / ChatOps などにも連携可能

その他、Lambda関数やSystemsManagerとも連携できます。
アラームを保存して完了
最後に確認画面で設定をチェックし、アラームを作成をクリック。
これで、条件に合致したら自動で通知が飛んできます。
CloudWatch アラームは 「見張る → 条件を決める → 通知する」 の3ステップで設定可能です。
CloudWatch Logs(ロググループ出力)
監視やアラートとあわせて、ログを残しておく仕組みも重要です。
AWS では CloudWatch Logs を使って、アプリやサーバーのログを「ロググループ」としてまとめて保存できます。
CloudWatch コンソールを開く
- AWS マネジメントコンソールにログインします。
- サービス一覧から 「CloudWatch」 をクリックします。
- 左のメニューから 「ロググループ」 を選びます。
ここでは、ログを入れるための「箱(ロググループ)」を作ります。

ロググループを作成する
- 「ロググループを作成」 をクリックします。
- ロググループ名 を入力します。
- 例:
/myapp/web
(アプリ名や用途が分かる名前がおすすめ)
- 例:
- 保存期間(保持期間) を設定します。
- 例:1週間だけ保存する
- もしくは「無期限」で残すことも可能
- 「作成」をクリックして完了です。

ログストリームを作成する
ロググループの中に「ログストリーム」を作ります。
これは ログファイルを入れる部屋のようなもの です。
- 作成したロググループをクリック
- 「ログストリームを作成」をクリック
- 任意の名前(例:
web-server-1
)を入力 - 「作成」で完了


EC2 やアプリからログを送信する設定
ログを CloudWatch に転送するために CloudWatch Agent をインストールします。
例:Amazon Linux での手順
# エージェントをインストール
sudo yum install -y amazon-cloudwatch-agent
# 設定ファイルを作成(例)
sudo vi /opt/aws/amazon-cloudwatch-agent/bin/config.json
設定ファイル例(Apache のアクセスログを送信する場合)
{
"agent": {
"region": "ap-northeast-1"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/httpd/access_log",
"log_group_name": "/myapp/web",
"log_stream_name": "web-server-1"
}
]
}
}
}
}
設定後、エージェントを起動
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
ログ出力を確認する
- CloudWatch コンソールの ロググループ を開く
/myapp/web
をクリック- 「ログストリーム」を開き、EC2 から送られてきたログが表示されることを確認
もしうまくいかない場合
EC2のIAMを確認
CloudWatchへのアクセス権がアタッチされていない可能性があります
IAMロールに下記ポリシーあるか確認します。
logs:CreateLogGroup
logs:CreateLogStream
logs:PutLogEvents
logs:DescribeLogStreams
アクセスログの権限を確認
cloudwatchエージェントにアクセス権限がなく、対象ログを読み取れていない可能性があります。
権限を確認してみましょう
ls -l /var/log/httpd/access_log
# 例: -rw-r--r-- 1 root root ...
それでも解決しない場合は
下記コマンドでエージェントのログとステータスを確認
sudo systemctl status amazon-cloudwatch-agent
sudo tail -n 100 /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
まとめ
この記事では Amazon CloudWatch を使った EC2 の監視とアラート設定 について学びました。内容を振り返ると、次のポイントが重要です。
CloudWatchの役割
- AWS が提供する「サーバーの見張り番サービス」
- CPUやディスク、ネットワークなどを自動で監視
- 異常を検知するとアラームで通知してくれる
- ログを収集・保存して、後から原因調査にも役立つ
アラームの流れ
- 監視対象のメトリクス(例:CPU使用率)を選ぶ
- しきい値を設定(例:80%を超えたら通知)
- 通知先を SNS(メール、Slack など)で設定
- 保存して完了 → しきい値を超えると自動でアラート
ログ監視の活用
- CloudWatch Logs にログを集めると、障害原因の調査やトラブルシュートが簡単になる
- ロググループとログストリームを作成して整理できる
- CloudWatch Agent を EC2 に導入し、/var/log/httpd/access_log などを転送可能
- IAM 権限やファイルアクセス権限も忘れずに確認する
最後に
サーバー運用では「問題が起きてから対応」では遅く、早めの検知と通知 がとても重要です。
CloudWatch を導入すれば、EC2 を含むシステムを自動で監視し、安心して運用できる基盤を作ることができます。
コメント