「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
Amazon CloudFront ログのクエリ
ウェブディストリビューションのアクセスログを Amazon CloudFront にエクスポートするように Amazon Simple Storage Service. CDN を設定できます。これらのログを使用して、 が提供するウェブプロパティ全体でのユーザーのサーフィンパターンを調べます。CloudFront.
ログのクエリを開始する前に、使用する CloudFront ディストリビューションでウェブディストリビューションのアクセスログを有効にします。詳細については、Amazon 開発者ガイドのCloudFront「アクセスログ」を参照してください。
ログの保存先の Amazon S3 バケットを書き留めます。
この手順は、 のウェブディストリビューションのアクセスログ用です。CloudFront. RTMP ディストリビューションのストリーミングログには該当しません。
CloudFront ログのテーブルの作成
CloudFront テーブルを作成するには
-
次の DDL ステートメントをコピーしてAthena、 コンソールのクエリエディタに貼り付けます。ログを保存する
LOCATION
バケットの Amazon S3 を変更します。クエリエディタの使用については、「」開始方法を参照してください。このクエリではSerDe、デフォルトの を使用しますLazySimpleSerDe。 列
date
は の予約語であるため、バックティック (`) を使用してエスケープAthenaされます。詳細については、 を参照してください。予約キーワード.CREATE EXTERNAL TABLE IF NOT EXISTS default.cloudfront_logs ( `date` DATE, time STRING, location STRING, bytes BIGINT, request_ip STRING, method STRING, host STRING, uri STRING, status INT, referrer STRING, user_agent STRING, query_string STRING, cookie STRING, result_type STRING, request_id STRING, host_header STRING, request_protocol STRING, request_bytes BIGINT, time_taken FLOAT, xforwarded_for STRING, ssl_protocol STRING, ssl_cipher STRING, response_result_type STRING, http_version STRING, fle_status STRING, fle_encrypted_fields INT, c_port INT, time_to_first_byte FLOAT, x_edge_detailed_result_type STRING, sc_content_type STRING, sc_content_len BIGINT, sc_range_start BIGINT, sc_range_end BIGINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://
CloudFront_bucket_name
/CloudFront/' TBLPROPERTIES ( 'skip.header.line.count'='2' ) -
Athena コンソールでクエリを実行します。クエリが完了すると、Athena は
cloudfront_logs
テーブルを登録し、そのデータに対してクエリを発行できるように準備します。
CloudFront ログのクエリ例
次のクエリでは、2018 年 6 月 9 日~6 月 11 日に CloudFront で処理されたバイト数を加算します。date 列名は予約語であるため、二重引用符で囲みます。
SELECT SUM(bytes) AS total_bytes FROM cloudfront_logs WHERE "date" BETWEEN DATE '2018-06-09' AND DATE '2018-06-11' LIMIT 100;
クエリ結果から重複する行 (重複する空の行など) を削除するには、次の例のように SELECT DISTINCT
ステートメントを使用します。
SELECT DISTINCT * FROM cloudfront_logs LIMIT 10;
その他のリソース
Athena を使用して CloudFront ログのクエリを実行する方法の詳細については、AWS ビッグデータブログ
Amazon Athena を使用して AWS のサービスログを簡単にクエリする
Amazon CloudFront アクセスログを大規模
AWS Lambda 、 Amazon Athena Amazon Kinesis AnalyticsCloudFront を使用して Amazon