

# ALB アクセスログ用のテーブルを作成する
<a name="create-alb-access-logs-table"></a>

1. 次の `CREATE TABLE` ステートメントをコピーして Athena コンソールのクエリエディタに貼り付け、必要に応じて独自のログエントリ要件に合わせて変更します。Athena コンソールを開始する方法については、「[はじめに](getting-started.md)」を参照してください。`LOCATION` 句内のパスを Amazon S3 アクセスログフォルダの場所に置き換えます。アクセスログファイルの場所に関する詳細については、「*Application Load Balancer ユーザーガイド*」の「[アクセスログファイル](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-log-file-format)」を参照してください。

   各フィールドについては、「*Application Load Balancer のユーザーガイド*」の「[アクセスログのエントリ](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-log-entry-format)」を参照してください。
**注記**  
次の `CREATE TABLE` ステートメントには、最近追加された `classification` 列、`classification_reason` 列、および `conn_trace_id` 列 (「traceability ID」または「TID」) が含まれています。これらのエントリを含まないApplication Load Balancer アクセスログのテーブルを作成するには、`CREATE TABLE` ステートメントから対応する列を削除し、それに応じて正規表現を変更します。

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS alb_access_logs (
               type string,
               time string,
               elb string,
               client_ip string,
               client_port int,
               target_ip string,
               target_port int,
               request_processing_time double,
               target_processing_time double,
               response_processing_time double,
               elb_status_code int,
               target_status_code string,
               received_bytes bigint,
               sent_bytes bigint,
               request_verb string,
               request_url string,
               request_proto string,
               user_agent string,
               ssl_cipher string,
               ssl_protocol string,
               target_group_arn string,
               trace_id string,
               domain_name string,
               chosen_cert_arn string,
               matched_rule_priority string,
               request_creation_time string,
               actions_executed string,
               redirect_url string,
               lambda_error_reason string,
               target_port_list string,
               target_status_code_list string,
               classification string,
               classification_reason string,
               conn_trace_id string
               )
               ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
               WITH SERDEPROPERTIES (
               'serialization.format' = '1',
               'input.regex' = 
           '([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \"([^ ]*) (.*) (- |[^ ]*)\" \"([^\"]*)\" ([A-Z0-9-_]+) ([A-Za-z0-9.-]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" ([-.0-9]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^ ]*)\" \"([^\\s]+?)\" \"([^\\s]+)\" \"([^ ]*)\" \"([^ ]*)\" ?([^ ]*)? ?( .*)?'
               )
               LOCATION 's3://amzn-s3-demo-bucket/access-log-folder-path/'
   ```
**注記**  
新しい ALB ログフィールドが追加された場合に備えて、将来のログエントリを処理できるように、`input.regex` パラメータの末尾に *`?( .*)?`* パターンを必ず残しておくことをお勧めします。

1. Athena コンソールでクエリを実行します。クエリが完了すると、Athena が `alb_access_logs` テーブルを登録し、その中のデータに対してクエリを発行できるように準備します。