Amazon Athena とは
S3内のデータをSQLを使用して分析できるサービス。
CloudFront ログのテーブルの作成
以下のユーザーガイドに従って進める。
Amazon CloudFront ログのクエリ
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/cloudfront-logs.html
以下の DDL ステートメントを Athena コンソールのクエリエディタに貼り付け、38行目の
LOCATIONをログを保存する S3バケットに変更し、実行します。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39CREATE 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/' TBLPROPERTIES ( 'skip.header.line.count'='2' )cloudfront_logsテーブルが作成されます。[Edit Settings] (設定を編集) をクリックし、Amazon S3 内のクエリ結果の保存場所をセットアップ。私は
s3://CloudFront_bucket_name/athenaにしました。
CloudFront ログのクエリ例
date 列名は予約語であるため、二重引用符で囲みます。
| |
カラムが日付と時刻で分かれており、かつUTCのため日本時間に修正して出力します。
長い。もっといいやり方あるかもしれない。
| |