S3,CloudFrontのアクセスログをとる
S3やCloud Frontにファイルを置いて閲覧させるようにしたならば、当然﹁アクセスログはどうなるの?!﹂と聞かれることでしょう。
もちろんアクセスログを取得することができます。
■S3 ログについてのドキュメントはこちら。 Amazon Simple Storage Service Developer Guide - Server Access Logging http://docs.amazonwebservices.com/AmazonS3/latest/dev/ServerLogs.html ログのフォーマットは一般的なWebサーバーのログとは違っています。 Amazon Simple Storage Service Developer Guide - Server Access Log Format http://docs.amazonwebservices.com/AmazonS3/latest/dev/LogFormat.html ●AWS Management ConsoleでS3 Bucketのログ取得設定をする方法 まず、Bucketのプロパティで﹁logging﹂を選択。 Enabledにチェック。 Target Bucket でログを出力するBucketを選択。 Target Prefix を指定。ここで指定するのはログの出力ファイルににつけるPrefixです。 例‥ Log/s3/hayashih-test1/ これでTarget bucket直下にこの階層のフォルダが作られて、その中ににログのファイルが入ります。 ﹁/﹂で区切られるとそこがフォルダとして扱われます。﹁/﹂で区切っていない場合、文字列がそのままprefixとしてファイル名の先頭にくっつきます。
AWS-S3-Log posted by (C)kanpan
出力されるログファイルはテキストファイルです。1つのファイルではなく細かい複数のファイルに分かれます。
■CloudFront Amazon CloudFront FAQ http://aws.amazon.com/jp/cloudfront/faqs/#Can_I_get_access_to_request_logs_for_content_delivered_through_CloudFront Q. Amazon CloudFront を経由して配信されたコンテンツのログを取得できますか? はいCloudFront による配信を開始または修正する場合、アクセスのロギングを有効にすることができます。これが有効になっていると、本機能はW3C拡張フォーマットを用いて、自動的に詳細なログ情報を、指定された Amazon S3 バケット (bucket) に記述します。 ログについてのドキュメントはこちら。 Amazon CloudFront Developer Guide- Access Logs http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html ●AWS Management ConsoleでCloudFront Distributionのログ取得設定をする方法 対象にするDistributionを選ぶ。 右クリックで﹁Edit﹂を選択。 ﹁Edit Distributon﹂ウィンドウが開くので、 LoggingをOnに。 Select Log Bucket - or - Specify Log Bucket でログの保存先のS3 Bucketを選択。 Log Prefixを指定。 例: Log/cf/d1x0w7v4ub8556/ 私はDistributionを複数立ててそれぞれログをとる場合が多いので、Distributionのドメインネームをログの出力先フォルダ名に使うことが多いです。
AWS-CF-Log posted by (C)kanpan
出力されるログファイルはgz圧縮ファイルです。こちらも1つのファイルではなく細かい複数のファイルに分かれます。
■S3 ログについてのドキュメントはこちら。 Amazon Simple Storage Service Developer Guide - Server Access Logging http://docs.amazonwebservices.com/AmazonS3/latest/dev/ServerLogs.html ログのフォーマットは一般的なWebサーバーのログとは違っています。 Amazon Simple Storage Service Developer Guide - Server Access Log Format http://docs.amazonwebservices.com/AmazonS3/latest/dev/LogFormat.html ●AWS Management ConsoleでS3 Bucketのログ取得設定をする方法 まず、Bucketのプロパティで﹁logging﹂を選択。 Enabledにチェック。 Target Bucket でログを出力するBucketを選択。 Target Prefix を指定。ここで指定するのはログの出力ファイルににつけるPrefixです。 例‥ Log/s3/hayashih-test1/ これでTarget bucket直下にこの階層のフォルダが作られて、その中ににログのファイルが入ります。 ﹁/﹂で区切られるとそこがフォルダとして扱われます。﹁/﹂で区切っていない場合、文字列がそのままprefixとしてファイル名の先頭にくっつきます。
![AWS-S3-Log](http://art54.photozou.jp/pub/571/104571/photo/114279620.png)
■CloudFront Amazon CloudFront FAQ http://aws.amazon.com/jp/cloudfront/faqs/#Can_I_get_access_to_request_logs_for_content_delivered_through_CloudFront Q. Amazon CloudFront を経由して配信されたコンテンツのログを取得できますか? はいCloudFront による配信を開始または修正する場合、アクセスのロギングを有効にすることができます。これが有効になっていると、本機能はW3C拡張フォーマットを用いて、自動的に詳細なログ情報を、指定された Amazon S3 バケット (bucket) に記述します。 ログについてのドキュメントはこちら。 Amazon CloudFront Developer Guide- Access Logs http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html ●AWS Management ConsoleでCloudFront Distributionのログ取得設定をする方法 対象にするDistributionを選ぶ。 右クリックで﹁Edit﹂を選択。 ﹁Edit Distributon﹂ウィンドウが開くので、 LoggingをOnに。 Select Log Bucket - or - Specify Log Bucket でログの保存先のS3 Bucketを選択。 Log Prefixを指定。 例: Log/cf/d1x0w7v4ub8556/ 私はDistributionを複数立ててそれぞれログをとる場合が多いので、Distributionのドメインネームをログの出力先フォルダ名に使うことが多いです。
![AWS-CF-Log](http://art47.photozou.jp/pub/571/104571/photo/114279608.png)