

# 넷플로우 로그용 테이블 생성 및 쿼리
<a name="querying-network-firewall-logs-sample-netflow-logs-table"></a>

1. 다음 샘플 DDL 문을 넷플로우 로그의 구조에 맞게 수정하세요. 최신 버전 로그의 열을 포함하도록 문을 업데이트해야 할 수 있습니다. 자세한 내용은 *AWS Network Firewall 개발자 안내서*의 [방화벽 로그의 내용](https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-logging.html#firewall-logging-contents)을 참조하세요.

   ```
   CREATE EXTERNAL TABLE network_firewall_netflow_logs (
     firewall_name string,
     availability_zone string,
     event_timestamp string,
     event struct<
       timestamp:string,
       flow_id:bigint,
       event_type:string,
       src_ip:string,
       src_port:int,
       dest_ip:string,
       dest_port:int,
       proto:string,
       app_proto:string,
       tls_inspected:boolean,
       netflow:struct<
         pkts:int,
         bytes:bigint,
         start:string,
         `end`:string,
         age:int,
         min_ttl:int,
         max_ttl:int,
         tcp_flags:struct<
           syn:boolean,
           fin:boolean,
           rst:boolean,
           psh:boolean,
           ack:boolean,
           urg:boolean
           >
         >
       >
   )
   ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' 
   LOCATION 's3://amzn-s3-demo-bucket/{{path_to_netflow_logs_folder}}/';
   ```

1. `LOCATION` 절을 수정하여 Amazon S3의 로그 폴더를 지정합니다.

1. Athena 쿼리 편집기에서 `CREATE TABLE` 쿼리를 실행합니다. 쿼리가 완료된 후 Athena는 `network_firewall_netflow_logs` 테이블을 등록하여 쿼리 준비를 나타내는 데이터를 만듭니다.

## 예제 쿼리
<a name="querying-network-firewall-logs-netflow-log-sample-query"></a>

이 섹션의 샘플 넷플로우 로그 쿼리는 TLS 검사가 수행된 이벤트를 필터링합니다.

쿼리는 별칭을 사용하여 해당 열이 속한 `struct`를 보여주는 출력 열 제목을 생성합니다. 예를 들어 `event.netflow.bytes` 필드의 열 제목은 `event_netflow_bytes`이며 그냥 `bytes`가 아닙니다. 열 이름을 추가로 사용자 지정하려면 원하는 대로 별칭을 수정할 수 있습니다. 예를 들어 밑줄이나 기타 구분 기호를 사용하여 `struct` 이름과 필드 이름을 구분할 수 있습니다.

테이블 정의와 쿼리 결과에 표시할 필드를 기반으로 열 이름과 `struct` 참조를 수정해야 합니다.

```
SELECT
  event.src_ip AS event_src_ip,
  event.dest_ip AS event_dest_ip,
  event.proto AS event_proto,
  event.app_proto AS event_app_proto,
  event.tls_inspected AS event_tls_inspected,
  event.netflow.pkts AS event_netflow_pkts,
  event.netflow.bytes AS event_netflow_bytes,
  event.netflow.tcp_flags.syn AS event_netflow_tcp_flags_syn 
FROM network_firewall_netflow_logs 
WHERE event.tls_inspected = true
```