ちょっと話題の記事

AWSから出力されるいろいろなログまとめ

2014.10.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。望月です。
AWSではたくさんのサービスが提供されており、基本的にはそのサービスの中身はブラックボックスです。その機能を利用したいときには内部仕様を知らなくても全く問題ないのですが、障害調査の時などには、「AWSのサービスで何が起きていたのだろう」ということを確認するためにログが調べられると便利ですよね。

現在AWSで提供されているいくつかのサービスでは、各サービスのログがS3に定期的に転送されて閲覧可能になる機能が用意されています。この機能を利用すれば、時間が経過した後でも色々なモニタリングや調査ができるようになりますので、ロギング機能に関しては出来る限りOnにしておくことをお勧めします。

ですが、サービスによってログの形式や配信タイミングなどが異なります。
以下に代表的なサービスのロギング方式についてまとめてみましたので、まとめとしてご利用下さい。

まとめ

ログの種類 保存形式 取得方法 保存間隔 ログの形式
CloudFrontアクセスログ 圧縮済み(.gz) ディストリビューション毎に指定したS3バケット 1時間に1度。リクエスト数により複数ファイルになる場合あり。 アクセスログ - Amazon CloudFront
ELBアクセスログ 非圧縮(.log) ELB毎に指定したS3バケットの、指定したprefix 5分毎か60分毎を選択可能 アクセスログ - Elastic Load Balancing
S3アクセスログ 非圧縮(拡張子なし) 指定したS3バケット、prefix以下に「prefix[YYYY-mm-DD-HH-MM-SS-UniqueString]」の形式で配信 配信間隔についての明記なし サーバーアクセスログの形式 - Amazon Simple Storage Service
CloudTrail API操作ログ 圧縮済(.json.gz) 指定したS3バケット、prefix以下に「AWSLogs/[Account ID]/CloudTrail/[region]/[YYYY]/[MM]/[DD]/file_name.json.gz」の形式で配信 5分毎 Record Body Contents - AWS CloudTrail
RDS インスタンスログ 非圧縮 APIコール「rds-watch-db-logfile」および「rds-download-db-logfile」を利用して取得 DBのタイプおよびログファイルの種類によって異なる Working with Database Log Files - Amazon Relational Database Service
EC2 システムログ 非圧縮 APIコール「ec2-get-console-output」によって取得 ほぼ同時だが、時差はあり。最大で64KBまで保持 コンソール出力の取得とインスタンスの再起動 - Amazon Elastic Compute Cloud