EC2インスタンスのモニタリング方法を解説!CloudWatchとの連携とメトリクス確認手順
生徒
「EC2を使っているんですけど、サーバーが重くなる前に状況を確認するにはどうすればいいんですか?」
先生
「それなら、Amazon CloudWatchと連携してEC2インスタンスのモニタリングを行うのが一般的だよ。CPU使用率やディスクIOなどのメトリクスを見られるんだ。」
生徒
「メトリクスって具体的にどんな情報が見られるんですか?」
先生
「よし、それじゃCloudWatchによるEC2の監視方法を基礎から見ていこう!」
1. EC2モニタリングの重要性とは?
AWS EC2インスタンスの監視は、クラウド環境で安定したサービス運用を行ううえで欠かせません。 EC2では、CPU使用率やネットワークトラフィック、ディスク使用状況といったメトリクスをCloudWatchで収集できます。 定期的に状態をチェックすることで、障害やスパイクを事前に察知し、対応策を練ることが可能です。
EC2モニタリングは、以下のようなケースで特に役立ちます:
- CPU使用率が高騰してアプリケーションのレスポンスが低下した
- ネットワークの出力が急増して不正アクセスの兆候が見られた
- ディスク容量の逼迫でログ出力が停止した
2. Amazon CloudWatchとは?
Amazon CloudWatchは、AWSのインフラリソースやアプリケーションのメトリクスを収集・可視化・アラーム設定できるモニタリングサービスです。 AWSアカウント内のEC2やRDS、Lambda、S3など様々なリソースを対象に、システムの状態をリアルタイムで把握できます。
CloudWatchの主な特徴は以下のとおりです。
- 標準でEC2インスタンスからメトリクスを自動収集
- アラーム機能で通知を自動化(SNSやメール送信)
- ダッシュボードで複数のメトリクスを一元表示
- ログファイルをCloudWatch Logsに保存して分析も可能
3. CloudWatchで確認できるEC2メトリクス
EC2インスタンスからCloudWatchで確認できる主なメトリクスは以下のとおりです。
- CPUUtilization(CPU使用率)
- NetworkIn / NetworkOut(ネットワークの入出力量)
- DiskReadBytes / DiskWriteBytes(ディスクの読み書きバイト数)
- StatusCheckFailed(ステータスチェックの失敗)
これらはCloudWatchコンソールの「メトリクス」画面でグラフ表示されるため、トレンドや異常をすぐに視認できます。
4. CloudWatchメトリクスの確認手順
EC2インスタンスのメトリクスをCloudWatchで確認する手順は以下の通りです。
- AWSマネジメントコンソールにログイン
- 「CloudWatch」サービスを選択
- 左メニューから「メトリクス」→「EC2」を選択
- インスタンスIDを選び、目的のメトリクス(例:CPUUtilization)をクリック
- グラフや期間を指定して詳細を確認
また、CloudWatchアラームを設定すれば、特定の閾値を超えたときにSNS経由で通知を送ることができます。
5. EC2インスタンスにCloudWatch Agentを導入する
デフォルトでは収集できない詳細なメモリ使用量やプロセス単位の情報を監視したい場合は、 CloudWatch Agentのインストールが必要です。
以下はAmazon LinuxへのCloudWatch Agentインストール例です。
sudo yum install amazon-cloudwatch-agent
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a start \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json \
-s
設定ウィザードを使えば対話式で設定ファイルを作成できます。CloudWatch Agentを用いることで、カスタムメトリクスも収集可能です。
6. CloudWatchアラームの設定で異常を自動通知
CloudWatchでは、任意のメトリクスに対してアラームを設定し、しきい値を超えた際にメールやSNS通知を飛ばせます。
たとえば、CPU使用率が80%を超えたときに通知するには以下の手順を実行します。
- CloudWatch → 「アラーム」 → 「アラームの作成」
- メトリクスとして「EC2 → Per-Instance Metrics」から対象インスタンスを選択
- CPUUtilizationを指定し、条件に「80%を超えたら」を設定
- 通知アクションでSNSトピック(通知先メールなど)を選択
- アラームの名前と説明をつけて作成
アラームの設定により、運用者は即時対応が可能になり、サービスダウンを未然に防ぐことができます。
7. CloudWatchダッシュボードで視覚的に管理
複数のメトリクスを1つの画面で一覧表示したいときは、CloudWatchのダッシュボード機能を活用します。
ダッシュボードは、チーム内の共有や障害監視のパネルとして非常に便利です。たとえば次のように活用できます。
- EC2ごとのCPU・ネットワーク・メモリを並べて表示
- 異常メトリクスに色付けしてすぐ気付けるようにする
- CloudWatch Logsと組み合わせて異常ログを確認
8.まとめ
AWS EC2インスタンスを運用するうえで、モニタリングは不可欠な要素です。予期せぬCPUスパイクやネットワークトラフィックの急増、ディスクIOの異常などに即時対応するためには、CloudWatchとの連携が大きな助けになります。
この記事では、Amazon CloudWatchを使ったEC2の監視方法、主要メトリクスの確認手順、アラームの設定、詳細なメモリ使用量を取得するためのCloudWatch Agentの導入、そしてダッシュボードによる視覚的な管理方法まで、幅広く解説しました。
特に、CloudWatchで確認できる代表的なメトリクスであるCPUUtilization、NetworkIn / NetworkOut、StatusCheckFailedなどは、サービスの稼働状況を把握する上で極めて重要です。これらを常に監視し、しきい値を超えたらSNS通知を飛ばすアラーム設定をしておけば、サーバーダウンなどのリスクを最小限に抑えることができます。
さらに、CloudWatch Agent を用いれば、メモリ使用率やプロセスごとの統計など、標準では取れない詳細情報もモニタリング対象とすることが可能です。以下は、EC2インスタンス上でCloudWatch Agentをインストール・起動するシンプルなスクリプト例です。
#!/bin/bash
sudo yum install -y amazon-cloudwatch-agent
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a start \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json \
-s
これにより、CloudWatch Logsと連携したログ監視や、カスタムメトリクスの収集とグラフ表示も可能になります。ダッシュボードでのメトリクス管理を組み合わせれば、マルチインスタンス環境でもひと目で状況が把握できます。
AWS初心者であっても、CloudWatchを使ったEC2モニタリングを理解すれば、クラウドサービスの運用・保守のレベルを一段上へ引き上げることができます。日常の運用業務で、定期的なメトリクスの確認、アラームの活用、ダッシュボードでの共有を習慣にしておくと、障害対応やパフォーマンス改善もスムーズになります。
最後に、CloudWatchとEC2の組み合わせでやっておきたいポイントを再確認しておきましょう。
- 基本メトリクス(CPU、ネットワーク、ディスク)を把握する
- CloudWatch Agentを導入して詳細情報を取得する
- アラーム設定により異常をリアルタイムで通知する
- ダッシュボードで複数メトリクスを一元管理する
生徒
「CloudWatchって最初は難しそうに感じてたけど、EC2のメトリクスをグラフで見られるのは便利ですね!」
先生
「そうだね。CPU使用率やネットワークトラフィックが急上昇したら、すぐに把握して対処できるのが強みなんだ。」
生徒
「CloudWatch Agentを使えば、もっと詳しく監視できるんですね。メモリやプロセスまで見られるのはすごいです!」
先生
「その通り。CloudWatchとEC2をしっかり連携して、アラームとダッシュボードまで使いこなせれば、プロのインフラエンジニアに近づけるよ!」