AWS CloudFront standard logging v2 の注意点
CloudFront のアクセスログ v2 の話。
前置き
これまで少し使いづらかった CloudFront のログ配信機能がアップデートされました。
- Amazon CloudFront がアクセスログの追加のログ形式と宛先のサポートを開始 - AWS
- Configure standard logging (v2) - Amazon CloudFront
これまでの S3 へのログ配信は、Athena でパーティショニングするには自前で移動する必要がありました。
参考:Analyze your Amazon CloudFront access logs at scale | AWS Big Data Blog
v2 では、パーティション用のパス出力が標準サポートされました。 また、出力先もS3だけでなく、 CloudWatch Logs、Amazon Data Firehose (旧 Kinesis Data Firehose) への出力も行えるようになっています。
出力先は1つのみ
ドキュメントに記述がありますが、 v2 では S3、CloudWatch Logs、Data Firehose のどれか一つの配信先しか利用できません。
現在、配信ソースはディストリビューションごとに 1 つだけ持つことができます
マネジメントコンソール上では、 “Add” ボタンとなっており一見追加できそうですが、作成時にエラーになります。

This ResourceId has already been used in another Delivery Source in this account
従来の形式(Legacy)との併用は可能です。
CloudWatch Logs の Delivery リソース
CloudFront の設定ではありません。
CloudWatch Logs の Delivery リソースで設定します。
マネジメントコンソールからは直接確認できないため、意識しにくいかもしれません。
参考:TerraformでCloudFrontの標準ログv2を設定する - NIFTY engineering
CloudWatch Logs のv2の機構で配信されます。
一部の AWS サービスでは、新しい メソッドを使用してログを送信します。
CloudFront standard logging v2 もこの “一部” に含まれているようです。他に Bedrock knowledge bases のログ配信もこちらの機能で実現しているようです。
動作しているログ配信は、次の 3 つの要素で構成されます。 * 実際にログを送信するリソースを表す論理オブジェクトである DeliverySource。 * 実際の配信先を表す論理オブジェクトである DeliveryDestination。 * 配信ソースを配信先に接続する Delivery。
Delivery Source の削除
ドキュメントに記載がありますが、マネジメントコンソールから設定を削除しても消えません。
CloudFront コンソールから標準ログ記録を削除すると、配信と配信先のみが削除されます。AWS アカウントから配信ソースは削除されません。
中途半端感が否めないですが、 API(CLI) で削除する必要があります。
# 各種 Delivery リソースの一覧 aws logs describe-deliveries aws logs describe-delivery-destinations aws logs describe-delivery-sources # DeliverySource の削除 aws logs delete-delivery-source --name DeliverySourceName
マネジメントコンソール上での削除時には何も出力されないので気付き難いです。
残っていると再設定する際に前述のエラーになります。
パーティションパスの設定は待望の機能です。jsonなどの出力形式に対応したのも嬉しいです。
一部の操作性に改善の余地はありますが、今後のアップデートで改善されることを期待します。