【初心者向け】Amazon CloudWatch Logsについてまとめてみた

記事タイトルとURLをコピーする

こんにちは! 現在テクサポ課(いわゆるサポート問い合わせの課)でOJT中の日高です!

Amazon CloudWatchって機能が多くて混乱しちゃいますよね....
ってことでCloudWatchについてIT初心者がまとめてみたシリーズの第2弾です。

第1弾としてAmazon CloudWatch Metricsについてまとめているのでよかったらご覧ください!! blog.serverworks.co.jp

今回はAmazon CloudWatch Logs(今後はCloudWatch Logsと記載)について見ていきたいと思います。

サービスの概要

CloudWatch Logsは、独自のアプリケーションや各種AWSサービスのログを収集して監視や保存を行うサービスです。
利用方法としてはAmazon EC2 インスタンスおよびオンプレミスサーバーにCloudWatch エージェントをインストールし設定を行うことで利用を開始できます。
お気づきになられた方もいらっしゃると思いますが、オンプレミス上のサーバーからログを収集することも可能になっています!

本記事ではCloudWatch エージェントのインストール方法等については触れず、CloudWatch Logsのサービスの全体像を理解してもらうことを目的にします!
ただCloudWatch エージェントのインストール方法が気になる方は、該当のドキュメントを記載しておくので確認してみてください。

docs.aws.amazon.com

サービスの詳細

本記事で理解していただきたいCloudWatch Logsの全体像の構成を先に記載させてもらいます。

サービスで登場する概念

ログイベント

ログイベントとは、アプリケーションやAWSサービスにより出力されたログの内容です。
例として、VPCフローログのログイベントを見てみましょう。(数字等はランダムに記載しています)

2022-12-07T17:08:58.000+09:00 2 (アカウントID) eni-×××××××14a5 〇〇.〇〇.〇〇.〇〇  〇〇.〇〇.〇〇.〇〇 40355 443 6 1 40 153432428 42624244 ACCEPT OK

このように1つのログインベントはレコード単位で記録され、タイムスタンプ(2022-12-07T17:08:58.000+09:00)とログメッセージ(タイムスタンプ以降の文字列)で構成されています。

ログストリーム

ログストリームはEC2インスタンスなど同じソース上から、出力されたログイベントの集まりです。

ロググループ

複数のログストリームを集めたものです。
1つのロググループに1つ以上のログストリームが存在しています。

サービスの機能

フィルタについて

CloudWatch Logsでは特定の文字列をフィルタによってログを抽出したり、抽出したログをLambda等に転送できます。
また、ログをCloudWatch Metrics上のメトリクスとして集計することも可能です。
具体的には「サブスクリプションフィルタ」と「メトリクスフィルタ」の2つがあります。

サブスクリプションフィルタ

特定の文字列をフィルタリングし、Lambda、OpenSearch Service、Kinesis Data Streams、kinesis Data Firehoseに連携することが可能です。(2022年12月13日現在)
サブスクリプションフィルタを活用することで、上記のAWSサービスと連携してログの分析や可視化、S3へのログの長期保存が実現できます。

ただ注意点として以下の2つがあります。
①1つのロググループにつきサブスクリプションフィルタは2つまでという制約がある(※変更はできない)
②文字列のフィルタリングに正規表現が利用できない

メトリクスフィルタ

指定した文字列でログをフィルタリングして、CloudWatch Metricsのカスタムメトリクスとして集計が可能になるフィルタです。
コンソール上で一定期間内に発生したエラーを見たい場合などに利用できます。

メトリクスフィルタの注意点も2つあります! ①文字列のフィルタリングに正規表現が利用できない ②ロググループごとにメトリクスフィルタは100個まで利用可能

Logs Insights

CloudWatch Logsのログデータに対し、独自の構文を使ってデータを検索したり分析したりすることができる機能です。
従量課金制で、スキャンしたデータに応じて料金がかかります。

また、クエリ実行した結果は、棒グラフ、折れ線グラフ、積み上げグラフ、パイチャートなどで可視化をすることができます。
ただ注意点としてはクエリのタイムアウトが15分と定められているので、検索に時間を要する場合はAtenaの利用がいいかと思います。

まとめ

本記事ではCloudWatch Logsについて簡単にまとめて見ました。
なんとなく全体像がつかめたでしょうか??
誰かのお力になれていれば幸いです!

日高 僚太(執筆記事の一覧)

EC部ソリューションアーキテクト2課 / AWS認定資格 12冠

2022年IT未経験で新卒入社しました。
最近はダーツとサウナが気になっています!
記事に関するお問い合わせや修正依頼⇒ hidaka@serverworks.co.jp