기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Network Load Balancer의 액세스 로그
Elastic Load Balancing은 Network Load Balancer와 설정된 TLS 연결에 대한 자세한 정보를 캡처하는 액세스 로그를 제공합니다. 이러한 액세스 로그를 사용하여 트래픽 패턴을 분석하고 문제를 해결할 수 있습니다.
중요
액세스 로그는 로드 밸런서에 TLS 리스너가 있고 로그에 TLS 요청에 대한 정보만 포함된 경우에만 생성됩니다. 액세스 로그는 최대한 요청을 기록합니다. 모든 요청을 완벽하게 기록하기 위한 용도가 아니라 요청 특성을 이해하는 데 액세스 로그를 사용하는 것이 좋습니다.
액세스 로깅은 Elastic Load Balancing의 옵션 기능으로, 기본적으로 비활성화되어 있습니다. 로드 밸런서에 대해 액세스 로그를 활성화하면 Elastic Load Balancing은 로그를 압축 파일로 캡처하여 이를 지정된 Amazon S3 버킷에 저장합니다. 액세스 로그는 언제든지 비활성화할 수 있습니다.
Amazon S3-managed형 암호화 키(SSE-S3)를 사용하거나 S3 버킷에 대해 고객 관리형 키(SSE-KMS CMK)를 사용하여 Key Management Service를 사용하여 서버 측 암호화를 활성화할 수 있습니다. 각 액세스 로그 파일은 S3 버킷에 저장되기 전에 자동으로 암호화되고, 액세스할 때 해독됩니다. 암호화된 로그 파일이나 암호화되지 않은 로그 파일을 액세스하는 방식과 다르지 않으므로 별도의 조치가 필요 없습니다. 각 로그 파일은 고유 키로 암호화되며,이 키 자체는 정기적으로 교체되는 KMS 키로 암호화됩니다. 자세한 내용은 Amazon S3 사용 설명서의 Amazon S3 암호화 지정(SSE-S3) 및 AWS KMS (SSE-KMS)를 사용한 서버 측 암호화 지정을 참조하세요. Amazon S3
액세스 로그에 대한 추가 요금은 없습니다. Amazon S3의 스토리지 비용은 청구되지만, Amazon S3로 로그 파일을 전송하기 위해 Elastic Load Balancing에서 사용하는 대역폭에 대해서는 요금이 부과되지 않습니다. 스토리지 비용에 대한 자세한 내용은 Amazon S3 요금
액세스 로그 파일
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
- bucket
-
S3 버킷의 이름.
- 접두사
-
버킷의 접두사(논리적 계층 구조)입니다. 접두사를 지정하지 않는 경우 로그는 버킷의 루트 수준에 저장됩니다.
- aws-account-id
-
소유자의 AWS 계정 ID입니다.
- region
-
로드 밸런서 및 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 사용 설명서의 스토리지 수명 주기 관리를 참조하세요.
액세스 로그 항목
다음 표에서는 액세스 로그 항목의 필드를 순서대로 설명합니다. 모든 필드는 공백으로 구분됩니다. 새 필드가 도입되면 로그 항목 끝에 추가됩니다. 로그 파일을 처리할 때 예상하지 못했던 방식으로 로그 항목이 끝나면 모든 필드를 무시해야 합니다.
필드 | 설명 |
---|---|
형식 |
리스너 유형. 지원되는 값은 |
version |
로그 항목의 버전입니다. 현재 버전은 2.0입니다. |
시간 |
TLS 8601 형식의 ISO 연결 끝에 기록된 시간입니다. |
elb |
로드 밸런서의 리소스 ID입니다. |
리스너 |
연결에 대한 TLS 리스너의 리소스 ID입니다. |
client:port |
클라이언트의 IP 주소 및 포트입니다. |
destination:port |
대상의 IP 주소 및 포트입니다. 클라이언트가 로드 밸런서에 직접 연결하는 경우 대상은 리스너입니다. 클라이언트가 VPC 엔드포인트 서비스를 사용하여 연결하는 경우 대상은 VPC 엔드포인트입니다. |
connection_time |
연결이 시작될 때부터 종료될 때까지 걸린 총 시간(단위: 밀리 초)입니다. |
tls_handshake_time |
클라이언트 측 지연을 포함하여 TLS 연결이 설정된 후 TCP 핸드셰이크가 완료되는 총 시간은 밀리초입니다. 이 시간은 connection_time 필드에 포함됩니다. |
received_bytes |
해독 후 클라이언트에서 로드 밸런서가 수신한 바이트의 수입니다. |
sent_bytes |
암호화 전에 로드 밸런서가 클라이언트로 전송한 바이트의 수입니다. |
incoming_tls_alert |
로드 밸런서가 클라이언트로부터 수신한 Word 알림이 있는 경우 해당 TLS 알림의 정수 값입니다. 그렇지 않으면 이 값은 -로 설정됩니다. |
chosen_cert_arn |
클라이언트에 제공된 인증서의 ARN입니다. 유효한 클라이언트 hello 메시지가 전송되지 않을 경우, 이 값은 -로 설정됩니다. |
chosen_cert_serial |
추후 사용 예약. 이 값은 항상 -로 설정됩니다. |
tls_cipher |
클라이언트와 OpenSSL 형식으로 협상된 암호 제품군입니다. TLS 협상이 완료되지 않으면이 값이 -로 설정됩니다. |
tls_protocol_version |
문자열 형식으로 클라이언트와 협상된 TLS 프로토콜입니다. 가능한 값은 |
tls_named_group |
추후 사용 예약. 이 값은 항상 -로 설정됩니다. |
domain_name |
클라이언트 hello 메시지에서 server_name 확장명의 값입니다. 이 값은 URL로 인코딩됩니다. 유효한 클라이언트 hello 메시지가 전송되지 않거나 확장명이 없을 경우, 이 값은 -로 설정됩니다. |
alpn_fe_protocol |
클라이언트와 협상한 애플리케이션 프로토콜(문자열 형식)입니다. 가능한 값은 |
alpn_be_protocol |
대상과 협상한 애플리케이션 프로토콜(문자열 형식)입니다. 가능한 값은 |
alpn_client_preference_list |
클라이언트 hello 메시지에서 application_layer_protocol_negotiation 확장의 값입니다. 이 값은 URL로 인코딩됩니다. 각 프로토콜은 큰따옴표로 묶여 있으며 프로토콜은 쉼표로 구분됩니다. ALPN 리스너에 TLS 정책이 구성되어 있지 않거나, 유효한 클라이언트 hello 메시지가 전송되지 않거나, 확장이 없는 경우이 값은 -로 설정됩니다. 문자열이 256바이트보다 길면 잘리게 됩니다. |
tls_connection_creation_time |
TLS 연결 시작 시 ISO 8601 형식으로 기록된 시간입니다. |
로그 항목 예제
다음은 로그 항목의 예제입니다. 보다 읽기 쉽도록 텍스트가 여러 줄에 나타납니다.
다음은 TLS 정책이 없는 ALPN 리스너의 예입니다.
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
다음은 TLS 정책이 있는 ALPN 리스너의 예입니다.
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
액세스 로그 파일 처리
액세스 로그 파일은 압축이 됩니다. Amazon S3 콘솔을 사용하여 파일을 열면 파일이 압축되지 않고 정보가 표시됩니다. 파일을 다운로드하는 경우에는 압축을 해제해야 정보를 볼 수 있습니다.
웹 사이트에서 요청이 많은 경우에는 로드 밸런서가 수 기가바이트의 데이터로 로그 파일을 생성할 수 있습니다. line-by-line 처리를 사용하여 대량의 데이터를 처리하지 못할 수 있습니다. 따라서 병렬 처리 솔루션을 제공하는 분석 도구를 사용해야 할 수 있습니다. 예를 들어, 다음과 같은 분석 도구를 사용하여 액세스 로그를 분석 및 처리할 수 있습니다.
-
Amazon Athena는 표준 SQL를 사용하여 Amazon S3의 데이터를 쉽게 분석할 수 있는 대화형 쿼리 서비스입니다. 자세한 내용은 Amazon Athena 사용 설명서의 Network Load Balancer 로그 쿼리 방법을 참조하세요.