

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Network Load Balancer 모니터링
<a name="load-balancer-monitoring"></a>

다음 기능을 사용하여 로드 밸런서를 모니터링하고 트래픽 패턴을 분석하며 로드 밸런서 및 대상의 문제를 해결할 수 있습니다.

**CloudWatch 지표**  
Amazon CloudWatch를 사용하여 로드 밸런서 및 대상에 대한 데이터 포인트에 대한 통계를 정렬된 시계열 데이터 집합으로 검색할 수 있습니다(*지표*라고 함). 이러한 지표를 사용하여 시스템이 예상대로 수행되고 있는지 확인할 수 있습니다. 자세한 내용은 [Network Load Balancer의 CloudWatch 지표](load-balancer-cloudwatch-metrics.md) 단원을 참조하십시오.

**VPC 흐름 로그**  
VPC 흐름 로그를 사용하여 Network Load Balancer로 들어오고 나가는 트래픽에 대한 세부 정보를 캡처할 수 있습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)를 참조하세요.  
로드 밸런서의 각 네트워크 인터페이스에 대한 흐름 로그를 생성합니다. 로드 밸런서 서브넷당 한 개의 네트워크 인터페이스가 있습니다. Network Load Balancer의 네트워크 인터페이스를 식별하려면 네트워크 인터페이스의 설명 필드에서 로드 밸런서의 이름을 찾습니다.  
Network Load Balancer를 통한 각 연결은 두 가지 항목을 가집니다. 프론트엔드 연결은 클라이언트와 로드 밸런서 사이의 연결이고 백엔드 연결은 로드 밸런서와 대상 사이의 연결입니다. 대상 그룹의 클라이언트 IP 보존 특성이 사용된 경우 연결이 클라이언트의 연결로 인스턴스에 표시됩니다. 그렇지 않으면 연결의 소스 IP가 로드 밸런서의 프라이빗 IP 주소입니다. 인스턴스의 보안 그룹이 클라이언트로부터의 연결을 허용하지 않고 로드 밸런서 서브넷 네트워크 ACL이 연결을 허용하면 로드 밸런서의 네트워크 인터페이스 로그는 프론트엔드 연결과 백엔드 연결에 대해 '승인 확인'를 표시하고 인스턴스의 네트워크 인터페이스 로그는 그 연결에 대해 '거절 확인'를 표시합니다.  
Network Load Balancer에 연결된 보안 그룹이 있는 경우 보안 그룹에서 허용하거나 거부하는 트래픽에 대한 항목이 흐름 로그에 포함됩니다. TLS 리스너가 있는 Network Load Balancer의 경우 거부된 항목만 흐름 로그 항목에 반영됩니다.

**Amazon CloudWatch Internet Monitor**  
Internet Monitor를 사용하여 인터넷 문제가에서 호스팅되는 애플리케이션과 최종 사용자 간의 성능 AWS 및 가용성에 미치는 영향을 파악할 수 있습니다. 또한 다른 서비스를 사용하도록 전환하거나 다른 서비스를 통해 워크로드로 트래픽을 다시 라우팅하여 애플리케이션의 예상 지연 시간을 개선하는 방법을 거의 실시간으로 탐색할 수 있습니다 AWS 리전. 자세한 내용은 [Amazon CloudWatch Internet Monitor API 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-InternetMonitor.html)을 참조하세요.

**액세스 로그**  
액세스 로그를 사용하면 로드 밸런서에 대한 TLS 요청에 관하여 자세한 정보를 캡처할 수 있습니다. 로그 파일은 Amazon S3에 저장된 상태입니다. 또한 이러한 액세스 로그를 사용하여 트래픽 패턴을 분석하고 대상의 문제를 해결할 수 있습니다. 자세한 내용은 [Network Load Balancer의 액세스 로그](load-balancer-access-logs.md) 단원을 참조하십시오.

**CloudTrail 로그**  
 AWS CloudTrail 를 사용하여 Elastic Load Balancing API에 대한 호출에 대한 자세한 정보를 캡처하고 Amazon S3에 로그 파일로 저장할 수 있습니다. 이러한 CloudTrail 로그를 사용하여 어떤 요청이 이루어졌는지, 어떤 소스 IP 주소에서 요청을 했는지, 누가 언제 요청했는지 등을 확인할 수 있습니다. 자세한 내용은 [CloudTrail을 사용하여 Elastic Load Balancing에 대한 API 호출 로깅](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/cloudtrail-logs.html)을 참조하세요.

# Network Load Balancer의 CloudWatch 지표
<a name="load-balancer-cloudwatch-metrics"></a>

Elastic Load Balancing은 로드 밸런서와 대상을 위해 Amazon CloudWatch에 데이터 포인트를 게시합니다. CloudWatch를 사용하면 이러한 데이터 포인트에 대한 통계를 정렬된 시계열 데이터 세트로 검색할 수 있습니다. 이러한 통계를 *지표*라고 합니다. 지표를 모니터링할 변수로 생각하면 데이터 요소는 시간에 따른 변수의 값을 나타냅니다. 예를 들어 지정된 기간 동안 로드 밸런서에 대한 정상 상태 대상의 총 수를 모니터링할 수 있습니다. 각 데이터 요소에는 연결된 타임스탬프와 측정 단위(선택 사항)가 있습니다.

지표를 사용하여 시스템이 예상대로 수행되고 있는지 확인할 수 있습니다. 예를 들어 CloudWatch 경보를 생성하여 지정된 지표를 모니터링할 수 있으며, 지표가 허용 범위를 벗어난다고 간주되는 경우 작업(예: 이메일 주소로 알림 전송)를 시작할 수 있습니다.

Elastic Load Balancing은 요청이 로드 밸런서를 통과하는 경우에만 지표를 CloudWatch에 보고합니다. 로드 밸런서를 통과하는 요청이 있는 경우 Elastic Load Balancing은 60초 간격으로 지표를 측정하고 전송합니다. 로드 밸런서를 통과하고 있는 요청이 없는 경우나 지표에 대한 데이터가 없는 경우에는 지표가 보고되지 않습니다. 보안 그룹이 있는 Network Load Balancer의 경우 보안 그룹에서 거부한 트래픽은 CloudWatch 지표에 캡처되지 않습니다.

자세한 설명은 [Amazon CloudWatch 사용자 가이드](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.

**Topics**
+ [Network Load Balancer 지표](#load-balancer-metrics-nlb)
+ [Network Load Balancer의 지표 차원](#load-balancer-metric-dimensions-nlb)
+ [Network Load Balancer 지표에 대한 통계](#metric-statistics)
+ [로드 밸런서에 대한 CloudWatch 지표 보기](#view-metric-data)

## Network Load Balancer 지표
<a name="load-balancer-metrics-nlb"></a>

`AWS/NetworkELB` 네임스페이스에는 다음 지표가 포함되어 있습니다.


| 지표 | 설명 | 
| --- | --- | 
| ActiveFlowCount |  클라이언트에서 대상까지의 동시 흐름(또는 연결)의 총 수입니다. 이 지표에는 SYN\$1SENT 및 ESTABLISHED 상태의 연결만 포함됩니다. TCP 연결은 로드 밸런서에서 종료되지 않으므로 대상에 대한 TCP 연결을 여는 클라이언트는 단일 흐름으로 계산됩니다. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Average`, `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ActiveFlowCount\$1TCP |  클라이언트에서 대상까지의 동시 TCP 흐름(또는 연결)의 총 수입니다. 이 지표에는 SYN\$1SENT 및 ESTABLISHED 상태의 연결이 포함됩니다. TCP 연결은 로드 밸런서에서 종료되지 않으므로 대상에 대한 TCP 연결을 여는 클라이언트는 단일 흐름으로 계산됩니다. **보고 기준**: 0이 아닌 값이 있을 때 **통계**: 가장 유용한 통계는 `Average`, `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ActiveFlowCount\$1TLS |  클라이언트에서 대상까지의 동시 TLS 흐름(또는 연결)의 총 수입니다. 이 지표에는 SYN\$1SENT 및 ESTABLISHED 상태의 연결이 포함됩니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Average`, `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ActiveFlowCount\$1UDP |  클라이언트에서 대상까지의 동시 UDP 흐름(또는 연결)의 총 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Average`, `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ActiveZonalShiftHostCount |  현재 영역 전환에 참여하고 있는 대상 수입니다. **보고 기준**: 로드 밸런서가 영역 전환에 대해 옵트인된 경우 보고됩니다. **통계**: 가장 유용한 통계는 `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ClientTLSNegotiationErrorCount |  클라이언트와 TLS 리스너 간의 협상 중에 실패한 전체 TLS 핸드셰이크의 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ConsumedLCUs |  로드 밸런서에서 사용하는 로드 밸런서 용량 단위(LCU) 수. 시간 단위로 사용한 LCU 수만큼 요금을 지불하면 됩니다. 자세한 내용은 [Elastic Load Balancing 요금](https://aws.amazon.com/elasticloadbalancing/pricing/)을 참조하세요. **보고 기준**: 항상 보고. **통계**: 모두 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ConsumedLCUs\$1TCP |  TCP의 로드 밸런서에서 사용하는 로드 밸런서 용량 단위(LCU) 수. 시간 단위로 사용한 LCU 수만큼 요금을 지불하면 됩니다. 자세한 내용은 [Elastic Load Balancing 요금](https://aws.amazon.com/elasticloadbalancing/pricing/)을 참조하세요. **보고 기준**: 0이 아닌 값이 있는 경우. **통계**: 모두 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ConsumedLCUs\$1TLS |  TLS의 로드 밸런서에서 사용하는 로드 밸런서 용량 단위(LCU) 수. 시간 단위로 사용한 LCU 수만큼 요금을 지불하면 됩니다. 자세한 내용은 [Elastic Load Balancing 요금](https://aws.amazon.com/elasticloadbalancing/pricing/)을 참조하세요. **보고 기준**: 0이 아닌 값이 있는 경우. **통계**: 모두 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ConsumedLCUs\$1UDP |  UDP의 로드 밸런서에서 사용하는 로드 밸런서 용량 단위(LCU) 수. 시간 단위로 사용한 LCU 수만큼 요금을 지불하면 됩니다. 자세한 내용은 [Elastic Load Balancing 요금](https://aws.amazon.com/elasticloadbalancing/pricing/)을 참조하세요. **보고 기준**: 0이 아닌 값이 있는 경우. **통계**: 모두 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| HealthyHostCount |  정상 상태로 간주되는 대상 수. 이 지표에는 대상으로 등록된 Application Load Balancer가 포함되지 않습니다. **보고 기준**: 등록된 대상이 있는 경우 보고됩니다. **통계**: 가장 유용한 통계는 `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| NewFlowCount |  해당 기간 동안 클라이언트에서 대상까지 설정되는 새로운 흐름(또는 연결)의 총 수입니다. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| NewFlowCount\$1TCP |  해당 기간 동안 클라이언트에서 대상까지 설정되는 새로운 TCP 흐름(또는 연결)의 총 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| NewFlowCount\$1TLS |  해당 기간 동안 클라이언트에서 대상까지 설정되는 새로운 TLS 흐름(또는 연결)의 총 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| NewFlowCount\$1UDP |  해당 기간 동안 클라이언트에서 대상까지 설정되는 새로운 UDP 흐름(또는 연결)의 총 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| NewFlowCount\$1QUIC |  해당 기간 동안 라우팅 결정이 필요했던 UDP 데이터그램의 총 개수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| PeakBytesPerSecond |  10초의 샘플링 기간 동안 계산된 초당 평균 처리 바이트 수가 가장 높은 값입니다. 이 지표에는 상태 확인 트래픽이 포함되지 않습니다. **보고 기준**: 항상 보고 **통계**: 가장 유용한 통계는 `Maximum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| PeakPacketsPerSecond |  샘플링 기간 동안 10초마다 계산되는 최고 평균 패킷 속도(초당 처리되는 패킷)입니다. 이 지표에는 상태 확인 트래픽이 포함됩니다. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Maximum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| PortAllocationErrorCount |  클라이언트 IP 변환 작업 중 임시 포트 할당 오류의 총 수입니다. 0이 아닌 값은 클라이언트 연결이 끊어졌음을 나타냅니다. 참고: Network Load Balancer는 클라이언트 주소 변환을 수행할 때 각각의 고유 대상(IP 주소 및 포트)에 대해 55,000건의 동시 연결 또는 분당 약 55,000건의 연결을 지원합니다. 포트 할당 오류를 해결하려면 대상 그룹에 더 많은 대상을 추가하세요. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ProcessedBytes |  TCP/IP 헤더를 포함하여 로드 밸런서가 처리하는 총 바이트 수. 이 수는 대상부터의 트래픽, 대상까지의 트래픽, 마이너스 상태 확인 트래픽을 포함합니다. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ProcessedBytes\$1TCP |  TCP 리스너에서 처리한 총 바이트 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ProcessedBytes\$1TLS |  TLS 리스너에서 처리한 총 바이트 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ProcessedBytes\$1UDP |  UDP 리스너에서 처리한 총 바이트 수입니다. **보고 기준**: 0이 아닌 값이 있을 때 **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ProcessedBytes\$1QUIC |  QUIC 리스너에서 처리한 총 바이트 수입니다. **보고 기준**: 0이 아닌 값이 있을 때 **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ProcessedPackets |  로드 밸런서에서 처리한 총 패킷 수입니다. 여기에는 대상부터의 트래픽, 대상까지의 트래픽, 상태 확인 트래픽을 포함합니다. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| RejectedFlowCount |  로드 밸런서에서 거부한 총 흐름(또는 연결) 수입니다. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Average`, `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| RejectedFlowCount\$1TCP |  로드 밸런서에서 거부한 TCP 흐름(또는 연결) 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| ReservedLCUs |  LCU 예약을 사용하여 로드 밸런서에 예약된 로드 밸런서 용량 단위(LCU)의 수입니다. **보고 기준**: 0이 아닌 값이 있을 때 **통계**: 모두 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| SecurityGroupBlockedFlowCount\$1Inbound\$1ICMP |  로드 밸런서 보안 그룹의 인바운드 규칙에서 거부한 새 ICMP 메시지 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| SecurityGroupBlockedFlowCount\$1Inbound\$1TCP |  로드 밸런서 보안 그룹의 인바운드 규칙에서 거부한 새 TCP 흐름 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| SecurityGroupBlockedFlowCount\$1Inbound\$1UDP |  로드 밸런서 보안 그룹의 인바운드 규칙에서 거부한 새 UDP 흐름 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| SecurityGroupBlockedFlowCount\$1Outbound\$1ICMP |  로드 밸런서 보안 그룹의 아웃바운드 규칙에서 거부한 새 ICMP 메시지 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| SecurityGroupBlockedFlowCount\$1Outbound\$1TCP |  로드 밸런서 보안 그룹의 아웃바운드 규칙에서 거부한 새 TCP 흐름 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| SecurityGroupBlockedFlowCount\$1Outbound\$1UDP |  로드 밸런서 보안 그룹의 아웃바운드 규칙에서 거부한 새 UDP 흐름 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| TargetTLSNegotiationErrorCount |  TLS 리스너와 대상 간의 협상 중에 실패한 전체 TLS 핸드셰이크의 수입니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| TCP\$1Client\$1Reset\$1Count |  클라이언트에서 대상까지 전송된 재설정(RST) 패킷의 총 수입니다. 이러한 재설정은 클라이언트에 의해 생성되고 로드 밸런서에 의해 전달됩니다. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| TCP\$1ELB\$1Reset\$1Count |  로드 밸런서에 의해 생성되는 재설정(RST) 패킷의 총 수입니다. 자세한 내용은 [문제 해결](load-balancer-troubleshooting.md#elb-reset-count-metric)을 참조하세요. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| TCP\$1Target\$1Reset\$1Count |  대상에서 클라이언트로 전송된 재설정(RST) 패킷의 총 수입니다. 이러한 재설정은 대상에 의해 생성되고 로드 밸런서에 의해 전달됩니다. **보고 기준**: 항상 보고. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| UnHealthyHostCount |  비정상 상태로 간주되는 대상 수. 이 지표에는 대상으로 등록된 Application Load Balancer가 포함되지 않습니다. **보고 기준**: 등록된 대상이 있는 경우 보고됩니다. **통계**: 가장 유용한 통계는 `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| UnhealthyRoutingFlowCount |  라우팅 장애 조치 작업(페일 오픈)을 사용하여 라우팅된 흐름(또는 연결) 수. 이 지표는 TLS 리스너에서 지원되지 않습니다. **보고 기준**: 0이 아닌 값이 있을 때. **통계**: 가장 유용한 통계는 `Sum`입니다.  | 
| ZonalHealthStatus |  로드 밸런서가 정상이라고 간주하는 가용 영역 수입니다. 로드 밸런서는 정상 상태인 가용 영역에 대해 1을 내보내고, 비정상 상태인 각 가용 영역에 대해 0을 내보냅니다. **보고 기준**: 상태 확인을 활성화한 경우 보고됩니다. **통계**: 가장 유용한 통계는 `Maximum` 및 `Minimum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 
| QUIC\$1Unknown\$1Server\$1ID\$1Packet\$1Drop\$1Count |  Network Load Balancer에서 대상과 연결되지 않은 서버 ID를 포함하여 드롭된 UDP 데이터그램의 수입니다. **보고 기준**: QUIC 리스너에 대해서만 보고됩니다. **통계**: 가장 유용한 통계는 `Sum`입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)  | 

## Network Load Balancer의 지표 차원
<a name="load-balancer-metric-dimensions-nlb"></a>

로드 밸런서 측정치를 필터링하려면 다음 차원을 사용하십시오.


| 차원 | 설명 | 
| --- | --- | 
| AvailabilityZone |  가용 영역을 기준으로 지표 데이터를 필터링합니다.  | 
| LoadBalancer |  로드 밸런서를 기준으로 지표 데이터를 필터링합니다. 로드 밸런서는 다음과 같이 지정합니다. net/*load-balancer-name*/*1234567890123456*(로드 밸런서 ARN의 마지막 구간).  | 
| TargetGroup |  대상 그룹을 기준으로 지표 데이터를 필터링합니다. 대상 그룹은 다음과 같이 지정합니다. targetgroup/*target-group-name*/*1234567890123456*(대상 그룹 ARN의 마지막 구간).  | 

## Network Load Balancer 지표에 대한 통계
<a name="metric-statistics"></a>

CloudWatch는 Elastic Load Balancing에서 게시한 지표 데이터 포인트를 기반으로 통계를 제공합니다. 통계는 지정한 기간에 걸친 지표 데이터 집계입니다. 통계를 요청하면 지표 이름 및 차원으로 반환된 데이터 스트림이 식별됩니다. 차원이란 지표를 고유하게 식별하는 데 도움이 되는 이름/값 쌍을 말합니다. 예를 들어 특정 가용 영역에서 시작된 로드 밸런서를 지원하는 정상 상태의 모든 EC2 인스턴스에 대한 통계를 요청할 수 있습니다.

`Minimum` 및 `Maximum` 통계는 각 샘플링 창에서 개별 로드 밸런서 노드가 보고한 최소 및 최대 데이터 포인트 값을 반영합니다. `HealthyHostCount` 최댓값을 늘리면 `UnHealthyHostCount` 최솟값이 감소합니다. 최대 `HealthyHostCount` 값을 모니터링하여 최대 `HealthyHostCount` 값이 필요한 최솟값 아래로 떨어지거나 `0`이 되면 알람을 호출하는 것이 좋습니다. 이렇게 하면 대상이 비정상 상태가 된 시기를 식별하는 데 도움이 될 수 있습니다. 또한 최소 `UnHealthyHostCount` 값을 모니터링하여 최소 `UnHealthyHostCount` 값이 `0`을 초과했을 때 알람을 호출하는 것이 좋습니다. 이렇게 하면 등록된 대상이 더 없을 때 이를 알 수 있습니다.

`Sum` 통계는 모든 로드 밸런서 노드의 집계 값입니다. 지표에는 기간별 보고서가 여러 개 있기 때문에 `Sum`은 모든 로드 밸런서 노드에서 집계된 지표에만 적용할 수 있습니다.

`SampleCount` 통계는 측정된 샘플의 수입니다. 지표는 샘플링 간격 및 이벤트를 토대로 수집이 되기 때문에 일반적으로 이 통계는 유용하지 않습니다. 예를 들어 `HealthyHostCount`에 대해 `SampleCount`는 각 로드 밸런서 노드가 보고하는 샘플 수를 기반으로 하며 정상 호스트 수는 아닙니다.

## 로드 밸런서에 대한 CloudWatch 지표 보기
<a name="view-metric-data"></a>

Amazon EC2 콘솔을 사용하여 로드 밸런서에 대한 CloudWatch 지표를 볼 수 있습니다. 이 측정치들은 모니터링 그래프로 표시됩니다. 로드 밸런서가 활성 상태로 요청을 수신 중에 있으면 모니터링 그래프에 데이터 요소가 표시됩니다.

또는 CloudWatch 콘솔을 사용하여 로드 밸런서에 대한 지표를 볼 수 있습니다.

**콘솔을 사용한 메트릭 확인**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 대상 그룹을 기준으로 필터링한 지표를 보려면 다음 작업을 수행합니다.

   1. 탐색 창에서 **대상 그룹**을 선택합니다.

   1. 대상 그룹을 선택하고 **모니터링**을 선택합니다.

   1. (선택 사항) 시간을 기준으로 결과를 필터링하려면 **다음에 대한 데이터 표시**에서 시간 범위를 선택합니다.

   1. 단일 지표를 크게 보려면 그래프를 선택합니다.

1. 로드 밸런서를 기준으로 필터링한 지표를 보려면 다음 작업을 수행합니다.

   1. 탐색 창에서 **로드 밸런서**를 클릭합니다.

   1. 로드 밸런서를 선택하고 **모니터링**을 선택합니다.

   1. (선택 사항) 시간을 기준으로 결과를 필터링하려면 **다음에 대한 데이터 표시**에서 시간 범위를 선택합니다.

   1. 단일 지표를 크게 보려면 그래프를 선택합니다.

**CloudWatch 콘솔을 사용하여 지표를 보려면**

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 탐색 창에서 **지표**를 선택합니다.

1. **NetworkELB** 네임스페이스를 선택합니다.

1. (선택 사항) 모든 차원의 지표를 보려면 검색 필드에 이름을 입력합니다.

**를 사용하여 지표를 보려면 AWS CLI**  
사용 가능한 지표의 목록을 표시하려면 아래 [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 명령을 사용하세요.

```
aws cloudwatch list-metrics --namespace AWS/NetworkELB
```

**를 사용하여 지표에 대한 통계를 가져오려면 AWS CLI**  
지정된 지표 및 차원에 대한 통계를 구하려면 아래 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 명령을 사용하세요. CloudWatch는 각각의 고유한 차원의 조합을 별도의 지표로 처리합니다. 특별 게시가 되지 않은 차원의 조합을 사용해 통계를 검색할 수는 없습니다. 지표 생성 시 사용한 것과 동일하게 차원을 지정해야 합니다.

```
aws cloudwatch get-metric-statistics --namespace AWS/NetworkELB \
--metric-name UnHealthyHostCount --statistics Average  --period 3600 \
--dimensions Name=LoadBalancer,Value=net/my-load-balancer/50dc6c495c0c9188 \
Name=TargetGroup,Value=targetgroup/my-targets/73e2d6bc24d8a067 \
--start-time 2017-04-18T00:00:00Z --end-time 2017-04-21T00:00:00Z
```

다음은 예제 출력입니다.

```
{
    "Datapoints": [
        {
            "Timestamp": "2017-04-18T22:00:00Z",
            "Average": 0.0,
            "Unit": "Count"
        },
        {
            "Timestamp": "2017-04-18T04:00:00Z",
            "Average": 0.0,
            "Unit": "Count"
        },
        ...
    ],
    "Label": "UnHealthyHostCount"
}
```

# Network Load Balancer의 액세스 로그
<a name="load-balancer-access-logs"></a>

Elastic Load Balancing은 사용자의 Network Load Balancer에 설정된 TLS 연결에 대한 자세한 정보를 캡처하는 액세스 로그를 제공합니다. 이러한 액세스 로그를 사용하여 트래픽 패턴을 분석하고 문제를 해결할 수 있습니다.

**중요**  
 이 섹션에서 설명하는 기존의 ‘레거시’ 액세스 로그는 계속 사용할 수 있지만, Network Load Balancer는 이제 CloudWatch Logs를 통해 향상된 로깅 옵션을 제공합니다. CloudWatch Logs는 Amazon CloudWatch Logs, Amazon Data Firehose, Amazon Simple Storage Service를 포함하여 더욱 유연한 전송 옵션을 제공합니다. 이러한 개선된 로깅 옵션을 구성하려면 로드 밸런서의 ***통합*** 탭을 방문하십시오. Cloudwatch 로그에 대한 자세한 내용은 [Network Load Balancer의 CloudWatch 로그](load-balancer-cloudwatch-logs.md) 섹션을 참조하세요.

**중요**  
로드 밸런서에 TLS 리스너가 있고 로그가 TLS 요청에 관한 정보만 포함하는 경우에만 액세스 로그가 생성됩니다. 액세스 로그는 최대한 요청을 기록합니다. 모든 요청을 완벽하게 기록하기 위한 용도가 아니라 요청 특성을 이해하는 데 액세스 로그를 사용하는 것이 좋습니다.

액세스 로깅은 Elastic Load Balancing의 옵션 기능으로, 기본적으로 비활성화되어 있습니다. 로드 밸런서에 대해 액세스 로그를 활성화하면 Elastic Load Balancing은 로그를 압축 파일로 캡처하여 이를 지정된 Amazon S3 버킷에 저장합니다. 액세스 로그는 언제든지 비활성화할 수 있습니다.

S3 버킷에 대해 Amazon S3 관리형 암호화 키(SSE-S3) 또는 고객 관리형 키(SSE-KMS CMK)와 함께 키 관리 서비스를 사용하여 서버 측 암호화를 활성화할 수 있습니다. 각 액세스 로그 파일은 S3 버킷에 저장되기 전에 자동으로 암호화되고, 액세스할 때 해독됩니다. 암호화된 로그 파일이나 암호화되지 않은 로그 파일을 액세스하는 방식과 다르지 않으므로 별도의 조치가 필요 없습니다. 각 로그 파일은 고유 키로 암호화되며, 주기적으로 바뀌는 KMS 키를 사용하여 키 자체가 암호화됩니다. 자세한 내용은 [ Amazon S3 사용 설명서의 Amazon S3 암호화 지정(SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-s3-encryption.html) *및 Amazon S3*[를 사용한 서버 측 암호화 지정 AWS KMS (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)을 참조하세요.

액세스 로그에 대한 추가 요금은 없습니다. Amazon S3의 스토리지 비용은 청구되지만, Amazon S3로 로그 파일을 전송하기 위해 Elastic Load Balancing에서 사용하는 대역폭에 대해서는 요금이 부과되지 않습니다. 스토리지 비용에 대한 자세한 내용은 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)을 참조하세요.

**Topics**
+ [액세스 로그 파일](#access-log-file-format)
+ [액세스 로그 항목](#access-log-entry-format)
+ [액세스 로그 파일 처리](#log-processing-tools)
+ [액세스 로그 활성화](enable-access-logs.md)
+ [액세스 로그 비활성화](disable-access-logs.md)

## 액세스 로그 파일
<a name="access-log-file-format"></a>

Elastic Load Balancing은 5분마다 각 로드 밸런서 노드에 대한 로그 파일을 게시합니다. 로그 전달은 결과의 일관성이 있습니다. 로드 밸런서는 같은 기간 동안 여러 개의 로그를 전달할 수 있습니다. 이러한 상황은 보통 사이트에 트래픽이 많은 경우에 발생합니다.

액세스 로그의 파일 이름은 다음 형식을 사용합니다.

```
bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_net.load-balancer-id_end-time_random-string.log.gz
```

*버킷*  
S3 버킷의 이름.

*접두사*  
버킷의 접두사(논리적 계층 구조)입니다. 접두사를 지정하지 않는 경우 로그는 버킷의 루트 수준에 저장됩니다.

*aws-account-id*  
소유자의 AWS 계정 ID입니다.

*리전*.  
로드 밸런서 및 S3 버킷을 위한 리전입니다.

*yyyy*/*mm*/*dd*  
로그가 전달된 날짜입니다.

*load-balancer-id*  
로드 밸런서의 리소스 ID입니다. 리소스 ID에 포함되어 있는 슬래시(/)가 마침표(.)로 대체됩니다.

*end-time*  
로깅 간격이 끝나는 날짜와 시간입니다. 예를 들어, 종료 시간이 20181220T2340Z이면 23시 35분과 23시 40분 사이에 발생한 요청에 대한 항목들이 포함됩니다.

*random-string*  
시스템에서 생성된 임의 문자열입니다.

다음은 로그 파일 이름의 예제입니다.

```
s3://my-bucket/prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2020/05/01/123456789012_elasticloadbalancing_us-east-2_net.my-loadbalancer.1234567890abcdef_20200501T0000Z_20sg8hgm.log.gz
```

원하는 기간만큼 버킷에 로그 파일을 저장할 수 있습니다. 그러나 Amazon S3 수명 주기 규칙을 정의하여 자동으로 로그 파일을 보관하거나 삭제할 수도 있습니다. 자세한 내용은 *Amazon S3 사용 설명서*의 [스토리지 수명 주기 관리](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)를 참조하세요.

## 액세스 로그 항목
<a name="access-log-entry-format"></a>

다음 표에서는 액세스 로그 항목의 필드를 순서대로 설명합니다. 모든 필드는 공백으로 구분됩니다. 새 필드가 도입되면 로그 항목 끝에 추가됩니다. 로그 파일을 처리할 때 예상하지 못했던 방식으로 로그 항목이 끝나면 모든 필드를 무시해야 합니다.


| 필드 | 설명 | 
| --- | --- | 
| 형식 |  리스너 유형. 지원되는 값은 `tls`입니다.  | 
| 버전 |  로그 항목의 버전입니다. 현재 버전은 2.0입니다.  | 
| 시간 |  TLS 연결이 끝나면 ISO 8601 형식으로 기록되는 시간입니다.  | 
| elb |  로드 밸런서의 리소스 ID입니다.  | 
| 리스너 |  연결을 위한 TLS 리스너의 리소스 ID입니다.  | 
| client\$1port |  클라이언트의 IP 주소 및 포트입니다.  | 
| destination\$1port |  대상의 IP 주소 및 포트입니다. 클라이언트가 로드 밸런서에 직접 연결하는 경우 대상은 리스너입니다. 클라이언트가 VPC 엔드포인트 서비스를 사용하여 연결하는 경우 대상은 VPC 엔드포인트입니다.  | 
| connection\$1time |  연결이 시작될 때부터 종료될 때까지 걸린 총 시간(단위: 밀리 초)입니다.  | 
| tls\$1handshake\$1time |  클라이언트 측 지연을 포함해 TCP 연결이 설정된 후 TLS 핸드셰이크가 완료되는 데 걸리는 총 시간(단위: 밀리 초)입니다. 이 시간은 `connection_time` 필드에 포함됩니다. TLS 핸드셰이크가 없거나 TLS 핸드셰이크에 실패하면 이 값은 `-`(으)로 설정됩니다.  | 
| received\$1bytes |  해독 후 클라이언트에서 로드 밸런서가 수신한 바이트의 수입니다.  | 
| sent\$1bytes |  암호화 전에 로드 밸런서가 클라이언트로 전송한 바이트의 수입니다.  | 
| incoming\$1tls\$1alert |  클라이언트로부터 로드 밸런서가 수신한 TLS 알림의 정수 값(있는 경우). 그렇지 않으면 이 값은 `-`(으)로 설정됩니다.  | 
| chosen\$1cert\$1arn |  클라이언트에 제공된 인증서의 ARN입니다. 유효한 클라이언트 hello 메시지가 전송되지 않을 경우, 이 값은 `-`(으)로 설정됩니다.  | 
| chosen\$1cert\$1serial |  추후 사용 예약. 이 값은 항상 `-`(으)로 설정됩니다.  | 
| tls\$1cipher |  클라이언트와 협상한 암호 그룹(OpenSSL 형식). TLS 협상이 완료되지 않을 경우, 이 값은 `-`(으)로 설정됩니다.  | 
| tls\$1protocol\$1version |  클라이언트와 협상한 TLS 프로토콜(문자열 형식)입니다. 가능한 값은 `tlsv10`, `tlsv11`, `tlsv12` 및 `tlsv13`입니다. TLS 협상이 완료되지 않을 경우, 이 값은 `-`(으)로 설정됩니다.  | 
| tls\$1keyexchange |  TLS 또는 PQ-TLS에 대한 핸드셰이크 중에 사용되는 키 교환입니다. TLS 또는 PQ-TLS 협상이 완료되지 않으면이 값이 로 설정됩니다`-`.  | 
| domain\$1name |  클라이언트 hello 메시지에서 server\$1name 확장명의 값입니다. 이 값은 URL로 인코딩된 것입니다. 유효한 클라이언트 hello 메시지가 전송되지 않거나 확장명이 없을 경우, 이 값은 `-`(으)로 설정됩니다.  | 
| alpn\$1fe\$1protocol |  클라이언트와 협상한 애플리케이션 프로토콜(문자열 형식)입니다. 가능한 값은 `h2`, `http/1.1` 및 `http/1.0` 입니다. TLS 리스너에 ALPN 정책이 구성되어 있지 않거나, 일치하는 프로토콜이 없거나, 유효한 프로토콜 목록이 전송되지 않은 경우 이 값은 `-`(으)로 설정됩니다.  | 
| alpn\$1be\$1protocol |  대상과 협상한 애플리케이션 프로토콜(문자열 형식)입니다. 가능한 값은 `h2`, `http/1.1` 및 `http/1.0` 입니다. TLS 리스너에 ALPN 정책이 구성되어 있지 않거나, 일치하는 프로토콜이 없거나, 유효한 프로토콜 목록이 전송되지 않은 경우 이 값은 `-`(으)로 설정됩니다.  | 
| alpn\$1client\$1preference\$1list |  클라이언트 hello 메시지에서 application\$1layer\$1protocol\$1negotiation 확장의 값입니다. 이 값은 URL로 인코딩된 것입니다. 각 프로토콜은 큰따옴표로 묶여 있으며 프로토콜은 쉼표로 구분됩니다. TLS 리스너에 ALPN 정책이 구성되어 있지 않거나, 유효한 클라이언트 hello 메시지가 전송되지 않거나, 확장이 없을 경우, 이 값은 `-`(으)로 설정됩니다. 문자열이 256바이트보다 길면 잘리게 됩니다.  | 
| tls\$1connection\$1creation\$1time |  TLS 연결이 시작되면 ISO 8601 형식으로 기록되는 시간입니다.  | 

### 로그 항목 예제
<a name="access-log-entry-examples"></a>

다음은 로그 항목의 예제입니다. 보다 읽기 쉽도록 텍스트가 여러 줄에 나타납니다.

다음은 ALPN 정책이 없는 TLS 리스너의 예입니다.

```
tls 2.0 2018-12-20T02:59:40 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd 
72.21.218.154:51341 172.100.100.185:443 5 2 98 246 - 
arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 - 
ECDHE-RSA-AES128-SHA tlsv12 - 
my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com
- - - 2018-12-20T02:59:30
```

다음은 ALPN 정책이 있는 TLS 리스너의 예입니다.

```
tls 2.0 2020-04-01T08:51:42 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd 
72.21.218.154:51341 172.100.100.185:443 5 2 98 246 - 
arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 - 
ECDHE-RSA-AES128-SHA tlsv12 - 
my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com
h2 h2 "h2","http/1.1" 2020-04-01T08:51:20
```

## 액세스 로그 파일 처리
<a name="log-processing-tools"></a>

액세스 로그 파일은 압축이 됩니다. Amazon S3 콘솔을 사용하여 파일을 열면 파일이 압축되지 않고 정보가 표시됩니다. 파일을 다운로드하는 경우에는 압축을 해제해야 정보를 볼 수 있습니다.

웹 사이트에서 요청이 많은 경우에는 로드 밸런서가 수 기가바이트의 데이터로 로그 파일을 생성할 수 있습니다. 라인별 처리로는 이렇게 대량의 데이터를 처리할 수 없습니다. 따라서 병렬 처리 솔루션을 제공하는 분석 도구를 사용해야 할 수 있습니다. 예를 들어, 다음과 같은 분석 도구를 사용하여 액세스 로그를 분석 및 처리할 수 있습니다.
+ Amazon Athena는 표준 SQL을 사용해 Amazon S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스입니다. 자세한 내용은 *Amazon Athena 사용 설명서*의 [Network Load Balancer 로그 쿼리 방법](https://docs.aws.amazon.com/athena/latest/ug/networkloadbalancer-classic-logs.html)을 참조하세요.
+ [Loggly](https://documentation.solarwinds.com/en/success_center/loggly/content/admin/s3-ingestion-auto.htm)
+ [Splunk](https://splunk.github.io/splunk-add-on-for-amazon-web-services/)
+ [Sumo Logic](https://www.sumologic.com/application/elb/)

# Network Load Balancer의 액세스 로그 활성화
<a name="enable-access-logs"></a>

로드 밸런서에 대한 액세스 로그를 활성화할 때는 로드 밸런서가 로그를 저장할 S3 버킷의 이름을 지정해야 합니다. 버킷에 액세스 로그를 쓰는 Elastic Load Balancing 권한을 부여하는 버킷 정책이 이 버킷에 있어야 합니다.

**중요**  
로드 밸런서에 TLS 리스너가 있고 로그가 TLS 요청에 관한 정보만 포함하는 경우에만 액세스 로그가 생성됩니다.

## 버킷 요구 사항
<a name="access-logging-bucket-requirements"></a>

기존 버킷을 사용하거나 액세스 로그 전용 버킷을 생성할 수 있습니다. 버킷은 다음 요구 사항을 충족해야 합니다.

**요구 사항**
+ 버킷은 로드 밸런서와 같은 리전에 있어야 합니다. 서로 다른 계정에서 버킷과 로드 밸런서를 소유할 수 있습니다.
+ 지정하는 접두사에는 `AWSLogs`가 포함되지 않아야 합니다. `AWSLogs`로 시작하는 파일 이름의 일부가 지정하는 버킷 이름과 접두사 뒤에 추가됩니다.
+ 버킷에 대한 액세스 로그 쓰기 권한을 부여하는 버킷 정책이 이 버킷에 있어야 합니다. 버킷 정책은 버킷에 대한 액세스 권한을 정의하기 위해 액세스 정책 언어로 작성된 JSON 문의 집합입니다.

**버킷 정책 예제**  
다음은 예제 정책입니다. `Resource` 요소에서 *amzn-s3-demo-destination-bucket*을 액세스 로그의 S3 버킷 이름으로 바꿉니다. 버킷 접두사를 사용하지 않는 경우 *Prefix/*를 생략해야 합니다. 에서 로드 밸런서를 사용하여 AWS 계정의 ID를 `aws:SourceAccount`지정합니다. `aws:SourceArn`에서 *region*과 *012345678912*를 각각 로드 밸런서의 리전과 계정 ID로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSLogDeliveryWrite",
    "Statement": [
        {
            "Sid": "AWSLogDeliveryAclCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": [
                        "012345678912"
                    ]
                },
                "ArnLike": {
                    "aws:SourceArn": [
                        "arn:aws:logs:us-east-1:012345678912:*"
                    ]
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/Prefix/AWSLogs/account-ID/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": [
                        "012345678912"
                    ]
                },
                "ArnLike": {
                    "aws:SourceArn": [
                        "arn:aws:logs:us-east-1:012345678912:*"
                    ]
                }
            }
        }
    ]
}
```

------<a name="access-log-bucket-encryption"></a>

**암호화(Encryption)**

다음 방법 중 하나를 사용하여 Amazon S3 액세스 로그 버킷에 대해 서버 측 암호화를 활성화할 수 있습니다.
+ Amazon S3 관리형 키(SSE-S3)
+ AWS KMS 에 저장된 키 AWS Key Management Service (SSE-KMS) †

† Network Load Balancer 액세스 로그를 사용하면 AWS 관리형 키를 사용할 수 없으며 고객 관리형 키를 사용해야 합니다.

자세한 내용은 [ Amazon S3 사용 설명서의 Amazon S3 암호화 지정(SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-s3-encryption.html) *및 Amazon S3*[를 사용한 서버 측 암호화 지정 AWS KMS (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)을 참조하세요.

키 정책은 서비스가 로그를 암호화하고 해독할 수 있도록 허용해야 합니다. 다음은 예제 정책입니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## 액세스 로그 구성
<a name="configure-access-logs"></a>

요청 정보를 캡처하고 로그 파일을 S3 버킷에 전송하도록 다음과 같은 절차에 따라 액세스 로그를 구성합니다.

------
#### [ Console ]

**액세스 로그를 활성화하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **로드 밸런서**를 클릭합니다.

1. 로드 밸런서 이름을 선택하여 세부 정보 페이지를 엽니다.

1. **속성** 탭에서 **편집**을 선택합니다.

1. **모니터링**에서 **액세스 로그**를 켭니다.

1. **S3 URI**로 로그 파일의 S3 URI를 입력합니다. 지정하는 URI는 접두사 사용 여부에 따라 달라집니다.
   + 접두사가 있는 URI: s3://*amzn-s3-demo-logging-bucket*/*logging-prefix*
   + 접두사가 없는 URI: s3://*amzn-s3-demo-logging-bucket*

1. **변경 사항 저장**을 선택합니다.

------
#### [ AWS CLI ]

**액세스 로그를 활성화하려면**  
관련 속성과 함께 [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html) 명령을 사용합니다.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes \
        Key=access_logs.s3.enabled,Value=true \
        Key=access_logs.s3.bucket,Value=amzn-s3-demo-logging-bucket \
        Key=access_logs.s3.prefix,Value=logging-prefix
```

------
#### [ CloudFormation ]

**액세스 로그를 활성화하려면**  
관련 속성을 포함하도록 [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html) 리소스를 업데이트합니다.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-nlb
      Type: network
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "access_logs.s3.enabled"
          Value: "true"
        - Key: "access_logs.s3.bucket"
          Value: "amzn-s3-demo-logging-bucket"
        - Key: "access_logs.s3.prefix"
          Value: "logging-prefix"
```

------

# Network Load Balancer의 액세스 로그 비활성화
<a name="disable-access-logs"></a>

언제든지 로드 밸런서에 대한 액세스 로그를 비활성화할 수 있습니다. 액세스 로그를 비활성화하면 액세스 로그는 사용자가 삭제할 때까지 S3 버킷에 남아 있습니다. 자세한 내용은 *Amazon S3 사용 설명서*의 [S3 버킷 생성, 구성 및 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)을 참조하세요.

------
#### [ Console ]

**액세스 로그를 비활성화하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **로드 밸런서**를 클릭합니다.

1. 로드 밸런서 이름을 선택하여 세부 정보 페이지를 엽니다.

1. **속성** 탭에서 **편집**을 선택합니다.

1. **모니터링**에서 **액세스 로그**를 끕니다.

1. **변경 사항 저장**을 선택합니다.

------
#### [ AWS CLI ]

**액세스 로그를 비활성화하려면**  
[modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html) 명령을 사용합니다.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes Key=access_logs.s3.enabled,Value=false
```

------