【AWS入門】CloudWatch Logsとは?仕組みと使い方をわかりやすく解説|ログ監視・分析の基本
生徒
「AWSでサーバーを動かしているのですが、エラーが出たときにどこを確認すればいいのかわかりません。」
先生
「それなら、AWSのCloudWatch Logsを使うとよいですね。ログを一元管理して、エラーやアクセス情報を確認できます。」
生徒
「CloudWatch Logsって何ですか?初心者でも使えますか?」
先生
「もちろんです。仕組みと使い方を順番に学べば、EC2やLambdaのログ監視もできるようになりますよ。」
1. CloudWatch Logsとは何か
CloudWatch Logsとは、AWSが提供するログ管理サービスです。サーバーやアプリケーションのログをクラウド上に保存し、検索や監視、分析ができる仕組みです。
AWS環境では、EC2、Lambda、ECS、API Gatewayなどさまざまなサービスが動いています。これらのサービスが出力するログをまとめて管理できるのがCloudWatch Logsです。
ログ監視、エラーログ確認、アクセスログ分析、セキュリティ監査など、システム運用に欠かせない役割を担っています。AWS初心者がまず覚えるべき重要サービスのひとつです。
2. CloudWatch Logsの仕組み
CloudWatch Logsは、ロググループとログストリームという単位で管理されます。
- ロググループはログの大きな分類
- ログストリームは個別のログデータ
例えば、EC2サーバー用のロググループを作成し、その中に複数のログストリームが保存されるイメージです。
アプリケーションがログを出力し、CloudWatchエージェントやAWSサービス経由でCloudWatch Logsへ送信されます。保存されたログは、検索やフィルタ、メトリクス変換、アラーム設定などが可能です。
この仕組みにより、ログの集中管理とリアルタイム監視が実現します。
3. CloudWatch Logsの主な機能
CloudWatch Logsには、初心者でも活用しやすい便利な機能が多くあります。
まずログの検索機能です。特定のキーワードやエラーメッセージを素早く見つけられます。
次にメトリクスフィルター機能です。ログ内の特定文字列を検出し、数値データとして扱えます。これによりエラー発生回数を可視化できます。
さらにCloudWatchアラームと連携することで、エラー発生時に通知を送ることも可能です。通知はSNSと連携してメール送信できます。
ログの保存期間も設定できるため、コスト最適化にも役立ちます。運用管理とコスト管理の両立ができる点も特徴です。
4. EC2のログをCloudWatch Logsに送信する方法
EC2のログをCloudWatch Logsへ送るには、CloudWatchエージェントをインストールします。以下はAmazon Linuxでの例です。
sudo yum install amazon-cloudwatch-agent
インストール完了
設定ファイルを作成します。
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/messages",
"log_group_name": "ec2-messages-log",
"log_stream_name": "{instance_id}"
}
]
}
}
}
}
エージェントを起動します。
sudo amazon-cloudwatch-agent-ctl -a start
agent started
これでEC2ログがCloudWatch Logsに送信されます。AWS初心者でも手順通り進めれば設定できます。
5. Lambdaのログを確認する方法
Lambdaは自動的にCloudWatch Logsへログを出力します。特別な設定は不要です。
Lambda関数内で以下のように出力します。
exports.handler = async (event) => {
console.log("処理開始");
return "完了";
};
実行後、CloudWatch Logsのロググループに自動保存されます。エラーが発生した場合もスタックトレースが記録されるため、デバッグに役立ちます。
サーバーレス環境でもログ監視が簡単にできる点は、AWSの大きなメリットです。
6. Logs Insightsでログ分析する方法
CloudWatch Logs Insightsを使うと、SQLのようなクエリでログ分析ができます。
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20
このクエリはエラーログを新しい順に表示します。
大量のログデータから必要な情報だけ抽出できるため、障害対応やパフォーマンス分析に役立ちます。ログ分析スキルはAWSエンジニアにとって重要です。
7. CloudWatch Logsの料金と注意点
CloudWatch Logsは保存容量と取り込みデータ量に応じて課金されます。ログを大量に保存するとコストが増加します。
そのため、保存期間の設定や不要ログの削除が重要です。運用設計時にログ保持ポリシーを決めておくと安心です。
またIAM権限設定も重要です。誤った権限設定はセキュリティリスクになります。最小権限の原則を守りましょう。
CloudWatch LogsはAWS運用管理の基盤サービスです。ログ監視、エラー検知、セキュリティ対策、パフォーマンス分析まで幅広く活用できます。AWS初心者はまずログの見方から覚え、少しずつ分析や自動通知へとステップアップしていきましょう。
まとめ
今回はAWSにおけるログ管理サービスであるCloudWatch Logsについて、仕組みから使い方までを基礎から確認しました。CloudWatch Logsは、EC2やLambdaなどのAWSサービスが出力するログを一元管理できる非常に重要なサービスです。システム運用においてログ監視は欠かせない作業であり、エラーログ確認、アクセスログ分析、セキュリティ監査、パフォーマンス分析など、さまざまな場面で活用されます。
まずCloudWatch Logsの基本として、ロググループとログストリームという構造を理解しました。ロググループはログの大きな分類であり、その中にログストリームが存在します。この構造を理解することで、AWS環境で複数のサーバーやアプリケーションを運用していても、整理された形でログを管理できます。AWS初心者にとっても、この考え方を押さえることがログ監視の第一歩になります。
次に、CloudWatchエージェントを利用してEC2のログをCloudWatch Logsへ送信する方法を学びました。Linux環境でエージェントをインストールし、設定ファイルを作成し、エージェントを起動するという流れでした。これにより、オンプレミスのように個別にログインして確認するのではなく、クラウド上で集中管理できるようになります。運用効率の向上という観点でも非常に重要です。
また、Lambdaは特別な設定をしなくても自動的にCloudWatch Logsへログが保存される点も確認しました。サーバーレス環境でもログ監視やエラー確認が容易にできるため、障害対応やデバッグがスムーズになります。AWSを活用したモダンなシステム開発では、ログの確認方法を知っているかどうかでトラブル対応の速度が大きく変わります。
さらに、Logs Insightsを使ったログ分析も重要なポイントでした。大量のログの中から特定のエラーメッセージだけを抽出したり、発生回数を確認したりすることで、問題の傾向分析が可能になります。単にログを見るだけでなく、分析するという視点を持つことで、より高度なAWS運用が実現します。
料金面についても理解しておく必要があります。CloudWatch Logsは取り込みデータ量や保存容量に応じて課金されます。そのため、保存期間の設定や不要ログの削除といったコスト管理も大切です。ログ監視とコスト最適化を両立させることが、AWS運用の基本姿勢といえます。
ここで、ログ出力の確認を行う簡単なJavaサンプルプログラムを振り返ってみましょう。アプリケーション側でログを出力し、それをCloudWatch Logsに集約するという流れをイメージしてください。
public class CloudWatchLogSample {
public static void main(String[] args) {
System.out.println("アプリケーション開始");
try {
int result = 10 / 2;
System.out.println("計算結果: " + result);
} catch (Exception e) {
System.out.println("エラー発生: " + e.getMessage());
}
System.out.println("アプリケーション終了");
}
}
実行結果は次のようになります。このような標準出力やエラー出力がログとして収集され、CloudWatch Logsで確認できるイメージです。
アプリケーション開始
計算結果: 5
アプリケーション終了
Linux環境でログファイルを確認する基本コマンドもあわせて復習しておきましょう。ログ監視の基礎として、ファイル内容の確認は重要です。
cat /var/log/messages
システムログの内容が表示される
このように出力されたログがCloudWatchエージェントによってAWSへ送信され、CloudWatch Logs上で一元管理されます。ログ監視、ログ分析、エラー検知、アラーム通知、セキュリティ対策まで一貫して行えることが大きな強みです。
AWS初心者の方は、まずログの見方を理解し、次にフィルタ検索やLogs Insightsによる分析、そしてアラーム通知設定へと段階的に学習していくことをおすすめします。CloudWatch Logsを使いこなせるようになれば、AWS運用管理の基礎がしっかり身につきます。
生徒
CloudWatch Logsは、AWSのログ管理サービスで、EC2やLambdaのログをまとめて管理できる仕組みだと理解できました。
先生
その通りです。ロググループとログストリームの構造を理解することが、ログ監視の基本になります。
生徒
EC2ではCloudWatchエージェントを使ってログを送信し、Lambdaは自動的に保存されるのも便利ですね。
先生
はい。さらにLogs Insightsを使えば、エラーログの検索やログ分析も簡単にできます。ログ分析は障害対応の力を高めます。
生徒
料金は保存容量と取り込み量で決まるので、保存期間の設定も大切だとわかりました。ログ監視とコスト管理の両方が重要ですね。
先生
その理解で完璧です。CloudWatch Logsを活用できれば、AWS運用管理、エラー検知、セキュリティ対策まで幅広く対応できます。まずは実際にログを確認するところから始めてみましょう。