【AWS】CloudWatchエージェントのインストールと設定方法を徹底解説!EC2監視・ログ収集の完全ガイド
生徒
「AWSでEC2のCPUやメモリを詳しく監視したいのですが、CloudWatchだけでは足りないのですか?」
先生
「標準のCloudWatchメトリクスではメモリやディスク使用率は取得できません。そのときに使うのがCloudWatchエージェントです。」
生徒
「CloudWatchエージェントは何をしてくれるのですか?」
先生
「EC2インスタンス内のメモリ、ディスク、ログファイルなどを収集し、Amazon CloudWatchへ送信してくれます。設定方法を順番に解説していきましょう。」
1. CloudWatchエージェントとは何か
CloudWatchエージェントとは、Amazon EC2などのサーバー内部情報を取得して、Amazon CloudWatchへ送信するための監視用エージェントです。AWS標準のCloudWatchメトリクスではCPU使用率などは確認できますが、メモリ使用率やディスク使用率、アプリケーションログの詳細監視までは取得できません。
そこでCloudWatchエージェントをインストールすることで、EC2の詳細監視、ログ収集、カスタムメトリクス送信が可能になります。AWS監視設計において非常に重要なコンポーネントです。
2. 事前準備とIAMロール設定
CloudWatchエージェントを利用するためには、EC2インスタンスに適切なIAMロールを付与する必要があります。CloudWatchへメトリクスやログを送信するための権限が必要だからです。
一般的には、CloudWatchAgentServerPolicyをアタッチしたIAMロールを作成し、EC2へ関連付けます。これを設定しないと、エージェントは正常にデータを送信できません。
IAMロールをEC2に関連付けた後、インスタンスへSSH接続して作業を行います。
3. LinuxにCloudWatchエージェントをインストールする方法
ここではAmazon Linux環境でCloudWatchエージェントをインストールする方法を解説します。多くのAWS初心者が利用する構成です。
sudo yum install amazon-cloudwatch-agent -y
Loaded plugins: priorities, update-motd, upgrade-helper
Installed:
amazon-cloudwatch-agent.x86_64 0:1.300000.0-1
Complete!
インストール後、エージェント設定ファイルを作成します。ウィザード形式で作成する方法が簡単です。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
CloudWatch Agent configuration wizard
対話形式で、メトリクス収集やログ収集の設定を行います。初心者はウィザード利用がおすすめです。
4. 設定ファイルの内容とカスタマイズ例
CloudWatchエージェントの設定はJSON形式で記述されます。例えば、メモリとディスク使用率を収集する場合は以下のようになります。
{
"metrics": {
"namespace": "EC2/Custom",
"metrics_collected": {
"mem": {
"measurement": [
"mem_used_percent"
],
"metrics_collection_interval": 60
},
"disk": {
"measurement": [
"used_percent"
],
"metrics_collection_interval": 60,
"resources": [
"/"
]
}
}
}
}
この設定により、EC2のメモリ使用率とルートディスク使用率を60秒間隔でCloudWatchへ送信できます。AWS監視設計では、取得間隔と名前空間の設計も重要なポイントです。
5. CloudWatchエージェントの起動と確認方法
設定ファイル作成後、エージェントを起動します。
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
Starting the CloudWatch Agent
起動後、ステータス確認も可能です。
sudo systemctl status amazon-cloudwatch-agent
active (running)
その後、AWSマネジメントコンソールのCloudWatch画面で、カスタムメトリクスが表示されているか確認します。
6. アプリケーションログをCloudWatch Logsへ送信する方法
CloudWatchエージェントでは、アプリケーションログをCloudWatch Logsへ送信できます。例えば、nginxのアクセスログを送信する設定は以下のようになります。
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/nginx/access.log",
"log_group_name": "nginx-access-log",
"log_stream_name": "{instance_id}"
}
]
}
}
}
}
この設定により、EC2上のログファイルが自動的にCloudWatch Logsへ転送されます。AWSログ監視や障害調査において非常に役立ちます。
7. CloudWatchエージェントを使った監視設計のポイント
AWS運用においては、CPU監視だけでなく、メモリ監視、ディスク監視、ログ監視を組み合わせることが重要です。CloudWatchエージェントを利用すれば、EC2の詳細監視が可能になります。
また、CloudWatchアラームと組み合わせることで、異常発生時にSNS通知を行うことも可能です。AWS監視設計では、メトリクス取得、アラーム設定、通知設計をセットで考えることが大切です。
初心者の方はまず、メモリ使用率とディスク使用率の取得から始めると理解が深まります。その後、ログ監視やカスタムメトリクスへと拡張していくとよいでしょう。
まとめ
今回はAWS環境におけるCloudWatchエージェントのインストール方法から設定方法、EC2監視、ログ収集、カスタムメトリクス送信までを体系的に解説しました。Amazon EC2の標準メトリクスだけでは取得できないメモリ使用率やディスク使用率、アプリケーションログ監視を実現するために、CloudWatchエージェントは非常に重要な役割を果たします。
AWS監視設計では、CPU監視だけで安心するのではなく、メモリ監視、ディスク監視、ログ監視、カスタムメトリクス監視を組み合わせることが安定運用の鍵となります。特に本番環境では、メモリ不足やディスク容量不足が原因でサービス停止につながるケースも少なくありません。そのため、CloudWatchエージェントを活用した詳細監視は、AWS運用において必須といえる知識です。
CloudWatchエージェントの導入手順は大きく分けて、IAMロール設定、Linuxへのインストール、設定ファイル作成、エージェント起動、動作確認という流れになります。この流れを正しく理解することで、AWS初心者の方でも確実にEC2監視環境を構築できます。
CloudWatchエージェント設定の再確認
例えば、メモリ使用率とディスク使用率を監視する基本的な設定は次のように記述します。設定ファイルはJSON形式で記述し、namespaceやmetrics_collection_intervalを適切に設計することが重要です。
{
"metrics": {
"namespace": "EC2/Custom",
"metrics_collected": {
"mem": {
"measurement": [
"mem_used_percent"
],
"metrics_collection_interval": 60
},
"disk": {
"measurement": [
"used_percent"
],
"metrics_collection_interval": 60,
"resources": [
"/"
]
}
}
}
}
このように設定することで、EC2内部の詳細情報がAmazon CloudWatchへ送信され、CloudWatchダッシュボードやCloudWatchアラームと連携できます。AWS監視設計では、単にデータを取得するだけでなく、どのメトリクスをどの間隔で取得するかを明確にすることが重要です。
エージェント起動の確認手順
設定反映後は、必ずエージェントの起動確認を行いましょう。Linux環境ではsystemctlコマンドで状態を確認できます。
sudo systemctl status amazon-cloudwatch-agent
active (running)
activeと表示されていれば正常起動です。もし起動していない場合は、IAMロール設定や設定ファイルのパス、JSON記述ミスを確認してください。AWS運用では確認作業が非常に重要です。
ログ監視の重要性
CloudWatchエージェントはメトリクス監視だけでなく、CloudWatch Logsへのログ転送も可能です。例えばnginxのアクセスログやアプリケーションログを収集すれば、障害発生時の原因調査が迅速に行えます。AWSログ監視はトラブルシューティングの効率を大きく向上させます。
監視設計では、メトリクス監視とログ監視を分離せず、統合的に考えることがポイントです。CloudWatchアラームとSNS通知を組み合わせることで、異常発生時に即座に通知を受け取ることも可能になります。これにより、可用性の高いAWSシステム運用が実現できます。
生徒
CloudWatchエージェントを使うことで、EC2のメモリ監視やディスク監視ができるようになることが理解できました。
先生
その通りです。標準のCloudWatchメトリクスだけでは取得できない情報を補完するのがCloudWatchエージェントの役割です。
生徒
IAMロール設定が重要だという点も印象に残りました。権限がなければデータを送信できないのですね。
先生
はい。AWSでは必ずIAM設計を意識してください。監視設計とセキュリティ設計は密接に関係しています。
生徒
メトリクス監視とログ監視を組み合わせることで、より安定したAWS運用ができることも理解できました。
先生
素晴らしいですね。AWS初心者の方は、まずEC2のメモリ使用率とディスク使用率監視から始め、徐々にログ監視やカスタムメトリクスへと拡張していきましょう。それが確実なスキル向上につながります。