Skip to main content

Access Log

BNS Load Balancing 서비스는 사용자의 Load Balancer로 전송된 요청에 대한 자세한 정보를 캡처하는 Access Log 기능을 제공합니다. Access Log는 트래픽 패턴을 분석하고, 문제를 해결하는 데 활용될 수 있습니다. 수집되는 정보의 경우, Network Load Balancer(NLB)와 Application Load Balancer(ALB)에 따라 수집되는 정보가 다릅니다.

Access Log는 '옵션' 기능으로, 기본적으로 '비활성'으로 설정되어 있습니다. Load Balancer에 대해 Access Log를 활성화하면 Log를 캡처하여 압축 파일을 지정한 버킷에 저장하면 됩니다. Access Log는 언제든지 비활성할 수 있습니다.

Access Log 기능 활성화 시 스토리지 비용이 청구되지만, Log 파일을 전송하기 위한 네트워킹 비용에 대해서는 요금이 부과되지 않습니다. 스토리지 비용에 대한 자세한 내용은 요금 안내를 참고하시기 바랍니다.

Access Log 파일

BNS Load Balancing 서비스는 Access Log 기능 활성화 시 30분 간격으로 각 ALB 또는 NLB에 대한 Log 파일을 게시합니다. Access Log의 파일 이름은 다음 형식을 사용합니다.

{use-_bucket-name}/KCLogs/{region-name}/yyyy/mm/dd/{az-name}_{project-id}_{lb-type}_{load-balancer-id}_{end-time}_{ip-address}.log.gz
요소설명
{user_bucket_name}Access Log를 보관할 버킷의 이름
KCLogs기본으로 지정되는 접두사
{region-name}Load Balancer 및 버킷의 리전명
yyyy/mm/ddLog가 전달된 날짜
{az-name}Load Balancer의 Availability Zone(AZ)
{project-id}Load Balancer의 프로젝트 ID
{lb-type}Load Balancer 유형
- NLB: Network Load Balancer 또는 ALB: Application Load Balancer
{load-balancer-id}Load Balancer의 리소스 ID
{end-time}로깅 간격이 끝나는 날짜와 시간
{ip-address}요청을 처리한 Load Balancer의 IP 주소

Log 파일 저장

원하는 기간만큼 버킷에 Log 파일을 저장할 수 있습니다. 또한, 버킷 정책인 Life Cycle 설정으로 Log 파일 유지 기간을 지정할 수도 있습니다. 자세한 설명은 Object Storage > Life Cycle 설정 문서를 참고하시기 바랍니다.

Access Log 항목

카카오클라우드 BNS Load Balancing 서비스의 Access Log 항목 필드를 순서대로 설명합니다. Access Log 필드는 NLB, ALB에 따라 다음과 같이 구분되며, 모든 필드는 ,으로 구분됩니다.

Application Load Balancer 필드
필드설명
project_id프로젝트의 ID
timeLoad Balancer가 클라이언트에 응답을 생성한 시간
lb_idLoad Balancer의 리소스 ID
client_port요청을 하는 클라이언트의 IP 주소 및 포트
target_portTarget Group의 Target에 대한 IP 주소 및 포트
target_status_code대상의 응답 상태 코드
- 대상으로 연결이 설정되고 대상이 응답을 전송한 경우에만 이 값을 기록
requestHTTP 메서드와 요청 타깃
- HTTP 메서드: 주어진 리소스에 수행하길 원하는 행동으로, GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH로 구분
- 요청 타깃: URL, 프로토콜, 포트, 도메인의 절대 경로이며, HTTP 메서드에 따라 형식이 변경됨
user_agent요청을 보낸 클라이언트를 식별하는 사용자 에이전트 문자열
ssl_cipherSSL 암호 정보
ssl_protocolSSL 프로토콜 정보
request_creation_timeLoad Balancer가 클라이언트에서 요청을 받은 시간
Network Load Balancer, Direct Server Return Network Load Balancer 필드
필드설명
project_id프로젝트의 ID
timeLoad Balancer가 클라이언트에 응답을 생성한 시간
lb_idLoad Balancer의 리소스 ID
listener_id연결을 위한 Listener의 리소스 ID
client_port요청을 하는 클라이언트의 IP 주소 및 포트
destination_port대상의 IP 주소 및 포트
- 클라이언트가 Load Balancer에 직접 연결하는 경우의 대상: Listener
- 클라이언트가 VPC 엔드포인트 서비스를 사용하여 연결하는 경우의 대상: VPC 엔드포인트
tls_cipher예약된 필드
tls_protocol_version예약된 필드

버킷 요구 사항

Access Log를 활성화할 때 반드시 Object Storage의 버킷을 지정해야 합니다. 이때, Access Log를 저장할 버킷은 다음의 요구 사항을 충족해야 합니다.

요구 사항

  • 버킷은 Load Balancer와 같은 리전에 있어야 합니다.
  • 선택한 버킷의 '암호화 설정'이 '사용 안함'으로 설정되어 있어야 합니다.

지원 예정 안내

버킷 암호화 설정을 '사용' 상태로 Access Log를 저장하는 기능은 추후 지원 예정입니다.

사용자 액세스 키 요구 사항

Access Log를 활성화할 때 반드시 사용자 액세스 키 ID 및 페어가 되는 액세스 보안 키를 선택해야 합니다. 액세스 보안 키는 사용자 액세스 키를 발급할 때 확인할 수 있습니다. 단, 생성된 사용자 액세스 키는 만료 기한이 지정되지 않은 상태여야 합니다.

Access Log 활성화 및 비활성화

Load Balancer에 대한 Access Log를 콘솔에서 활성화 또는 비활성화하려면 다음 문서를 참고하시기 바랍니다.

Access Log 파일 처리

Access Log 파일은 압축 파일 형태로 저장됩니다. 파일을 다운로드하는 경우 압축을 해제해야 정보를 볼 수 있습니다.