CloudFrontのアクセスログ設定方法
CloudFrontのディストリビューションにアクセスログを設定する
Contents
概要
- CloudFrontにアクセスログを設定する方法を紹介します。CloudFrontにアクセスログを設定することで、ユーザーリクエストをログに記録することができます。
- CloudFrontのアクセスログは、S3の指定バケットに保存されます。S3バケットのアクセス許可は、後述します。
CloudFrontの設定
- CloudFrontのコンソールで、Distributionを選択します。
- Generalタブにおいて、Edit を押下して設定を編集します。
- LoggingをOnにします。アクセスログを保存するS3のバケット名を指定します。同一アカウントのS3バケットを指定する場合は選択肢から選び、異なるアカウントのS3バケットを指定する場合は直接入力します。
- ファイル名のプレフィックスをオプションで指定できます。
- 「Yes, Edit」ボタンを押下して、設定変更を適用します。
- 設定変更が適用されると下記画面になります。
ログ記録の確認
S3バケットのログ記録を確認する
- S3バケットにログ記録が開始されたことを確認します。gz圧縮され、ファイルが保存されていることが確認できます。
ファイル名の形式
- CloudFront が Amazon S3 バケットに保存する各ログファイルの名前には、次のファイル名形式が使用されます。(出典:Amazon CloudFront 開発者ガイド)
- 日付と時刻は協定世界時 (UTC) です。
bucket-name.s3.amazonaws.com/optional-prefix/distribution-ID. YYYY-MM-DD-HH.unique-ID.gz
- たとえば、バケット名が mylogs、プレフィックスが myprefix/、ディストリビューション ID が EMLARXS9EXAMPLE であれば、ファイル名は次のようになります。
mylogs.s3.amazonaws.com/myprefix/EMLARXS9EXAMPLE.2014-11-14-20.RT4KCN4SGK9.gz
参考情報
- その他ログ記録の仕組みやログの形式は、下記ドキュメントを参照下さい。
S3バケットのアクセス許可
- CloudFrontのアクセスログを保存するS3バケットのアクセスコントロールリストを確認します。CloudFrontでアクセスログを有効にすると、CloudFront は自動的に、awslogsdelivery アカウントに FULL_CONTROL のアクセス許可を付与します。
- S3バケットのアクセスコントロールリストを確認すると、下記の「他の AWS アカウントのアクセス」に下記正規IDが追加され、FULL_CONTROL のアクセス許可が付与されたことが確認できます。
c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0
- もし、上記正規IDが追加されていない場合は、手動で正規IDとアクセス許可を設定する必要があります。詳細は、ドキュメントを参照ください。
CloudFrontのアクセスログが記録されないとき
- CloudFrontのアクセスログが記録されないときは、S3バケットのアクセス権限に、下記awslogsdelivery アカウントが追加され、FULL_CONTROL のアクセス許可が設定されていることを確認します。
c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0