본문으로 건너뛰기

DNS 리졸버

Domain Name System(DNS)은 호스트가 인터넷에서 사용할 도메인 이름을 관리 및 운영하기 위해 개발된 시스템으로, IP 주소와 이 IP 주소에 대응되는 도메인 이름의 정보를 보유 및 검색하는 시스템입니다.
VPC 서비스에서 인스턴스를 생성할 때, DNS 리졸버에 의해 자동으로 고유한 DNS 호스트 이름을 할당받고, 이 호스트 이름에 연관된 IP 주소 정보가 자동으로 보관됩니다. 이를 통해 VPC 네트워크상에서 인스턴스 간 통신이 가능해지며, 퍼블릭 IP를 할당하면 인터넷과 통신하는 것이 가능해집니다.

DNS 리졸버 기본 사항

DNS 리졸버는 한 리전의 각 가용 영역(Availability Zone)에 자동으로 내장되는 DNS 서비스입니다. 이 서비스의 엔드포인트는 169.254.169.253으로 지정되어 있으며, VPC의 서브넷 상에서 인스턴스가 생성될 때 프라이빗 DNS 호스트 이름을 할당합니다.

예: IP 주소가 10.0.16.53인 호스트의 이름은 아래와 같은 구조로 생성됩니다.

  • host-10-0-16-53
안내
  • 2024년 2월 21일 기준, VPC의 DNS 리졸버 엔드포인트가 169.254.169.253으로 변경되었으며, 이전에 생성된 VPC의 DNS 리졸버 엔드포인트는 기존의 VPC 네트워크 IPv4 CIDR + 2의 주소를 유지하고 있습니다. 이는 단계적으로 마이그레이션될 예정입니다.

  • 기본 보안 그룹은 DNS 리졸버와의 DNS 요청을 허용합니다. 만약 기본 보안 그룹을 사용하지 않고 사용자 정의 보안 그룹만 사용할 경우 이에 대한 아웃바운드 규칙을 허용해야 합니다. 자세한 내용은 사용자 정의 보안 그룹을 참고하시기 바랍니다.

DNS 리졸버 쿼리 로깅

카카오클라우드는 VPC 내에서 발생한 DNS 리졸버 쿼리를 로깅할 수 있습니다. 이 로그를 통해 VPC 내 DNS 트래픽을 모니터링하여 DNS 상 문제 해결을 하거나, 네트워크 보안을 강화하는 데 활용할 수 있습니다.

안내
  • 2024년 2월 21일 이전에 생성된 VPC의 DNS 리졸버 엔드포인트인 기존의 VPC 네트워크 IPv4 CIDR + 2의 주소의 리졸버에서는 쿼리 로깅 기능을 제공하지 않습니다.
  • 2025년 6월 12일 기능 릴리스 이전에 생성되어 있던 VPC는 단계적으로 해당 기능을 사용할 수 있도록 마이그레이션 작업이 진행될 예정입니다. 관련 문의는 헬프데스크로 문의주시기 바랍니다.
쿼리 로그 파일

DNS 리졸버 쿼리 로깅을 설정하게 되면, 30분 간격으로 해당 VPC 내의 쿼리 로그 파일을 지정한 Object Storage 버킷에 저장합니다. 이 로그 파일 이름은 다음 형식을 사용합니다.

{bucket-name}/KCLogs/{region-name}/{year=yyyy/month=mm/day=dd}/{az-name}_{project-id}_{vpc-id}_{logger-id}_{start-time}_{end-time}.log.gz
요소설명
{bucket_name}쿼리 로그를 보관할 버킷의 이름
KCLogs기본으로 지정되는 접두사
{region-name}쿼리 로그가 집계되는 VPC가 속한 리전 이름
{year=yyyy/month=mm/day=dd}쿼리 로그가 전달된 날짜
{az-name}쿼리 로그가 집계된 가용 영역
{project-id}쿼리 로그가 집계된 프로젝트 ID
{vpc-id}쿼리 로그가 집계된 VPC ID
{logger-id}쿼리 로그를 집계하는 서비스 객체의 ID
{start-time}로깅이 시작된 날짜 및 시간
{end-time}로깅 간격이 끝나는 날짜 및 시간

로그 파일 저장
  • 원하는 기간만큼 버킷에 로그 파일을 저장할 수 있습니다. 또한, 버킷 정책인 Lifecycle 설정으로 로그 파일 유지 기간을 지정할 수도 있습니다. 자세한 설명은 Object Storage > Lifecycle 설정 문서를 참고하시기 바랍니다.
  • 쿼리 로그의 설정은 별도의 비용이 발생하지 않습니다. 하지만 버킷에 저장되는 동안 데이터 저장 요금이 발생합니다.
쿼리 로그 파일 처리

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

쿼리 로그 항목

DNS 리졸버 쿼리 로깅에 의해 수집되는 쿼리 로그 항목 필드를 순서대로 설명합니다. 쿼리 로그의 모든 필드는 ,으로 구분됩니다.

필드설명
version쿼리 로그의 버전
project_id쿼리 로그가 집계되는 VPC가 있는 프로젝트의 ID
region쿼리 로그가 집계되는 VPC가 있는 리전의 이름
vpc_id쿼리 로그가 집계되는 VPC의 ID
timestamp쿼리 발생 후 응답이 발생된 일시
query_name쿼리에 서술된 도메인 또는 서브도메인 이름이나 목적지 주소
record_typeDNS 레코드 유형
query_classDNS 쿼리에 대한 클래스 정보
response_codeDNS 응답 코드 정보
response_time쿼리에 대한 응답까지 걸린 시간
response_count쿼리에 대한 응답이 발생한 개수
response_size쿼리에 대한 응답 메시지의 크기
response_protocol쿼리에 대한 응답에 사용된 전송 계층(Transport Layer)의 프로토콜
버킷 요구 사항

DNS 리졸버 쿼리 로깅으로 수집되는 로그 정보는 지정한 Object Storage 버킷에 보관됩니다. 쿼리 로깅을 사용할 때 반드시 Object Storage의 버킷을 지정해야 하며, 아래의 요구 사항을 충족해야 합니다.

요구 사항

  • 버킷은 VPC와 같은 리전에 있어야 합니다.

정보
  • DNS 리졸버 쿼리 로깅에서 저장 대상으로 지정한 Object Storage 버킷이 삭제될 경우, 쿼리 로그가 정상적으로 저장되지 않습니다. 버킷을 삭제하였을 경우, 다시 설정하여 다른 버킷을 지정해 주시기 바랍니다.
  • DNS 리졸버 쿼리 로깅이 사용 상태로 설정된 상태에서 계정의 권한이 변경될 경우, 쿼리 로그가 정상적으로 정상적으로 저장되지 않습니다. DNS 리졸버 쿼리 로깅을 설정한 계정에 쿼리 로그를 설정할 수 있는 권한을 재설정하시기 바랍니다.
버킷 암호화 설정

DNS 리졸버 쿼리 로깅을 사용 시, 쿼리 로그를 암호화하여 버킷에 저장할지 여부를 결정할 수 있습니다. 보안을 위해 암호화 설정을 사용 상태로 설정하는 것을 권장합니다.

S3 액세스 키 요구 사항

DNS 리졸버 쿼리 로깅을 사용 시, S3 액세스 키가 요구됩니다. 사전에 S3 액세스 키를 생성한 후 사용하시기 바랍니다. S3 액세스 키는 계정 설정 > 자격 증명 > S3 액세스 키 탭에서 생성할 수 있습니다.