비공개 또는 공개 영역의 리소스 레코드 세트에 대한 DNS 라우팅 정책을 구성하여 특정 기준에 따라 트래픽을 조정할 수 있습니다. 특정 라우팅 정책 값으로 리소스 레코드 세트를 만들어 이러한 정책을 설정합니다. 이 값은 Cloud DNS에서 쿼리 트래픽을 라우팅하는 방식을 결정합니다.
Cloud DNS는 다음 라우팅 정책을 지원합니다.
가중치가 적용된 라운드 로빈(WRR) 라우팅 정책: WRR 라우팅 정책을 사용하여 DNS 이름의 각 리소스 레코드 세트에 서로 다른 가중치를 할당합니다. WRR 라우팅 정책은 구성된 가중치에 따라 트래픽이 분산되도록 하는 데 도움이 됩니다. WRR과 위치정보 라우팅 정책의 결합은 지원되지 않습니다.
위치정보 라우팅 정책: 위치정보 라우팅 정책을 사용하여 소스 위치정보를 지정하고 지역에 해당하는 응답을 제공합니다. 위치정보 라우팅 정책은 트래픽 소스와 정확하게 일치하는 정책 항목이 없는 경우 소스 위치와 가장 가까운 일치 항목을 적용합니다.
- 지오펜싱이 있는 위치정보 라우팅 정책: 지오펜싱이 있는 위치정보 라우팅 정책을 사용하여 특정 위치정보의 모든 엔드포인트가 비정상인 경우에도 트래픽을 특정 위치정보로 제한할 수 있습니다.
장애 조치 라우팅 정책: 장애 조치 라우팅 정책을 사용하여 활성 백업 구성을 설정합니다.
다음 비공개 영역에는 DNS 라우팅 정책을 구성할 수 없습니다.
- 전달 영역
- DNS 피어링 영역
- 관리형 역방향 조회 영역
- 서비스 디렉터리 영역
WRR 라우팅 정책
WRR 라우팅 정책을 사용하면 DNS 대상별로 서로 다른 가중치를 지정할 수 있으며 Cloud DNS는 가중치에 따라 트래픽을 분산시킵니다. 이 정책을 사용하여 수동 active-active
또는 active-passive
구성을 지원할 수 있습니다. 또한 서비스의 프로덕션 버전과 실험용 버전 간에 트래픽을 분할할 수 있습니다.
Cloud DNS는 내부 부하 분산기 및 외부 엔드포인트의 라우팅 정책 내에서 상태 점검 및 장애 조치를 지원합니다. Cloud DNS를 사용하면 엔드포인트가 상태 점검에 실패할 때 자동 장애 조치가 가능합니다. 장애 조치 중에 Cloud DNS는 나머지 정상 엔드포인트 간의 트래픽 분할을 자동으로 조정합니다. 자세한 내용은 상태 점검을 참조하세요.
위치정보 라우팅 정책
위치정보 라우팅 정책을 사용하면 소스 지역(Google Cloud 리전)에서 발생한 트래픽을 특정 DNS 대상에 매핑할 수 있습니다. 이 정책을 사용하여 트래픽의 출처를 기준으로 서로 다른 서비스 인스턴스에 수신 요청을 분산할 수 있습니다. 이 기능을 Google Cloud 외부의 트래픽에 사용하거나, Google Cloud 내에서 발생하여 내부 패스 스루 네트워크 부하 분산기로 향하는 트래픽에 사용할 수 있습니다. Cloud DNS는 쿼리가 Google Cloud에 입력되는 리전을 소스 지역으로 사용합니다.
위치정보 라우팅 정책은 다음과 같은 방식으로 공개 DNS와 비공개 DNS의 소스를 다르게 매핑합니다.
- 공개 DNS의 경우 쿼리의 클라이언트 서브넷의 소스 IP 주소나 DNS의 확장 메커니즘(EDNS)이 사용됩니다.
- 비공개 DNS의 경우 EDNS 클라이언트 서브넷이 사용되지 않습니다. 대신 쿼리 위치는 쿼리의 패킷을 보내는 시스템의 위치입니다.
- VPC 네트워크의 네트워크 인터페이스가 있는 Compute Engine 가상 머신(VM) 인스턴스의 쿼리인 경우, 쿼리의 위치는 VM 인스턴스가 포함된 리전입니다.
- 인바운드 서버 정책 진입점에서 수신된 쿼리인 경우, 쿼리 위치는 Cloud VPN 터널, Cloud Interconnect VLAN 연결 또는 쿼리 패킷을 수신한 라우터 어플라이언스의 리전입니다. 진입점의 IP 주소 리전은 관련이 없습니다. 자세한 내용은 인바운드 쿼리의 네트워크 및 리전을 참조하세요.
Cloud DNS는 내부 부하 분산기 및 외부 엔드포인트의 라우팅 정책 내에서 상태 점검 및 장애 조치를 지원합니다. Cloud DNS를 사용하면 엔드포인트가 상태 점검에 실패할 때 자동 장애 조치가 가능합니다. 위치정보 라우팅 정책을 사용하면 트래픽이 소스 트래픽에 다음으로 가까운 위치정보로 장애 조치됩니다.
지오펜싱이 있는 위치정보 라우팅 정책
지오펜싱은 해당 리전 내의 모든 엔드포인트가 상태 점검에 실패하더라도 트래픽이 특정 리전으로 전달되도록 보장합니다.
지오펜싱이 사용 중지되고 특정 위치정보에서 상태 점검 실패가 발생하면 다음으로 가까운 위치정보로 트래픽이 자동 장애 조치됩니다. 하지만 지오펜싱이 사용 설정된 경우에는 이 자동 장애 조치가 발생하지 않습니다. 권한 서버로서 Cloud DNS는 값을 반환해야 하며, 이 시나리오에서 Cloud DNS는 엔드포인트가 상태 점검에 실패할 때 모든 IP 주소를 변경 없이 그대로 반환합니다.
장애 조치 라우팅 정책
장애 조치 라우팅 정책을 사용하면 VPC 네트워크 내의 내부 리소스에 고가용성을 제공하도록 활성 백업 구성을 설정할 수 있습니다.
정상 작동 시 Cloud DNS는 항상 active
세트의 IP 주소를 반환합니다. active
세트의 모든 IP 주소가 비정상 상태가 되면 Cloud DNS는 backup
세트의 IP 주소를 제공합니다. backup
을 위치정보 라우팅 정책으로 구성하면 위치정보 라우팅 정책 섹션에 설명된 대로 작동합니다. 내부 부하 분산기에 backup
세트를 구성하면 Cloud DNS에서 모든 백업 가상 IP(VIP) 주소를 상태 점검합니다.
Cloud DNS를 사용하면 백업 VIP 주소가 작동하는지 확인할 수 있도록 백업 VIP 주소로 트래픽을 점진적으로 트리클할 수 있습니다. 백업으로 전송되는 트래픽 비율을 0에서 1 사이의 비율로 구성할 수 있습니다. 트래픽 100% 를 백업 VIP 주소로 전송하여 장애 조치를 수동으로 트리거할 수 있습니다. 일반적인 값은 0.1입니다. 상태 점검은 내부 부하 분산기와 외부 엔드포인트에만 적용될 수 있습니다.
상태 확인
Cloud DNS는 다음 내부 부하 분산기 및 외부 엔드포인트에 대한 라우팅 정책 내에서 상태 점검 및 장애 조치를 지원합니다.
- 내부 애플리케이션 부하 분산기(리전별 및 리전 간)
- 내부 패스 스루 네트워크 부하 분산기
- 내부 프록시 네트워크 부하 분산기(미리보기)
- 외부 엔드포인트
관리형 영역에서 상태 점검을 사용하고 DNS Security Extensions(DNSSEC)가 사용 설정된 경우 각 정책 항목(WRR 또는 위치정보) 내에 단일 IP 주소만 사용할 수 있습니다. 특정 정책에서 상태를 점검한 IP 주소와 상태를 점검하지 않은 IP 주소를 혼합할 수는 없습니다.
Cloud DNS 레코드 및 상태 점검을 구성할 때 유의해야 할 권장사항에 관한 자세한 내용은 권장사항을 참고하세요.
내부 부하 분산기의 상태 점검
내부 부하 분산기의 상태 점검은 비공개 영역에서만 사용할 수 있습니다.
내부 애플리케이션 부하 분산기와 내부 프록시 네트워크 부하 분산기의 경우 Cloud DNS는 라우팅 결정 중에 부하 분산기 자체 상태를 고려합니다. 부하 분산기에서 쿼리를 수신하면 트래픽을 정상적인 백엔드 서비스에만 배포합니다. 정상 백엔드가 존재할 수 있게 하려면 관리형 인스턴스 그룹(MIG)과 같은 서비스를 사용하여 백엔드 수명 주기를 관리하면 됩니다. Cloud DNS는 개별 백엔드 상태를 인식할 필요가 없으며 부하 분산기에서 이 태스크를 처리합니다.
내부 패스 스루 네트워크 부하 분산기의 경우 Cloud DNS는 부하 분산기의 개별 백엔드 인스턴스에서 상태 정보를 확인합니다. Cloud DNS는 기본 20% 기준점을 적용하고 백엔드 인스턴스의 20% 이상이 정상이면 부하 분산기 엔드포인트가 정상으로 간주됩니다. DNS 라우팅 정책은 이 기준에 따라 엔드포인트를 정상 또는 비정상으로 표시하고 그에 따라 트래픽을 라우팅합니다.
단일 내부 패스 스루 네트워크 부하 분산기 가상 IP 주소(VIP)에는 여러 백엔드 인스턴스가 있을 수 있습니다. 내부 패스 스루 네트워크 부하 분산기에 백엔드 인스턴스가 없어도 Cloud DNS는 여전히 정상이라고 간주합니다. 상태 점검이 제대로 작동하려면 부하 분산기 구성 내에 백엔드 인스턴스를 최소 하나 이상 지정하세요.
엔드포인트가 비정상으로 표시되면 다음 조건이 발생할 수 있습니다.
- 정책에 프로그래밍된 VIP 주소가 여러 개 있으면 정상 VIP 주소만 반환됩니다.
정책 버킷에 대해 프로그래밍된 모든 VIP 주소가 비정상이면 정책 줄이 실패한 것입니다. 다음 동작이 적용됩니다.
- WRR 정책의 경우 Cloud DNS는 정책에 정의된 나머지 정상 엔드포인트 간에 트래픽을 비례하여 분산합니다.
- 펜싱이 사용 설정되지 않은 위치정보 정책의 경우 트래픽이 정책에 정의된 소스 Google Cloud 리전에 다음으로 가장 가까운 지역에 있는 엔드포인트로 전환됩니다.
- 지오펜싱이 사용 설정된 위치정보 정책의 경우 Cloud DNS는 정책에 정의된 소스 Google Cloud 리전과 가장 가까운 VIP 주소로 트래픽을 분산합니다.
- 장애 조치 정책의 경우 Cloud DNS가 정책에 정의된 백업 엔드포인트로 트래픽을 전환합니다.
- 모든 정책 버킷이 비정상이면 Cloud DNS는 모든 엔드포인트가 정상인 것처럼 작동합니다. 이 시나리오에서는 응답하지 않는 엔드포인트에 트래픽이 분산될 수 있습니다.
내부 부하 분산기의 상태 점검에 대한 자세한 내용은 상태 점검 개요를 참고하세요.
외부 엔드포인트의 상태 점검(미리보기)
외부 엔드포인트 상태 점검은 공개 영역에서만 사용 가능합니다. 상태 점검할 엔드포인트에는 공개 인터넷을 통해 액세스할 수 있어야 합니다. 지정된 엔드포인트는 전역 외부 애플리케이션 부하 분산기 VIP, 리전 외부 애플리케이션 부하 분산기 VIP, 전역 외부 프록시 네트워크 부하 분산기 VIP, 온프레미스 엔드포인트 또는 공개 인터넷을 통해 액세스할 수 있는 다른 모든 엔드포인트를 포함한 모든 외부 IP 주소 및 포트일 수 있습니다.
다음과 같은 시나리오에서는 외부 엔드포인트에 상태 점검을 사용하세요.
- 전역 외부 애플리케이션 부하 분산기 백엔드 또는 전역 외부 프록시 네트워크 부하 분산기 백엔드가 비정상 상태가 되면 트래픽을 리전 외부 애플리케이션 부하 분산기로 경로 변경합니다.
- 특정 리전 외부 애플리케이션 부하 분산기의 백엔드가 비정상 상태가 되면 트래픽을 다른 리전 외부 애플리케이션 부하 분산기로 경로 변경합니다.
- 온프레미스 엔드포인트 또는 공개 인터넷에서 연결할 수 있는 기타 엔드포인트의 상태를 모니터링합니다.
외부 엔드포인트에 대한 상태 점검이 포함된 DNS 라우팅 정책을 만들면 Cloud DNS에서 엔드포인트로 상태 점검 프로브를 전송합니다. 이러한 상태 점검 프로브는 지정된 세 개의 Google Cloud 소스 리전에서 시작됩니다. 각 지역의 상태 점검 프로버는 독립적으로 실행되며 Cloud DNS는 결과를 합산하여 엔드포인트의 전반적인 상태를 확인합니다. 각 리전 내에서 세 개의 상태 점검 프로버 인스턴스가 각 엔드포인트를 프로빙합니다. 프로브 하나가 실패하더라도 Cloud DNS는 나머지 프로브를 사용하여 엔드포인트의 상태를 계속 확인할 수 있습니다. 즉, 각 엔드포인트마다 총 9개의 프로버가 있으며 각 프로브는 상태 점검의 확인 간격에서 지정한 빈도로 발생합니다. 라우팅 정책 및 상태 정보의 파라미터에 따라 Cloud DNS가 엔드포인트를 선택하고 트래픽을 선택된 엔드포인트로 라우팅합니다.
Cloud DNS는 TCP, HTTP, HTTPS 프로토콜을 지원하며 다음 사항에 주의해야 합니다.
- TCP 요청 필드는 지원되지 않습니다.
- HTTP, HTTPS, TCP의
proxyHeader
필드는 지원되지 않습니다.
SSL, HTTP/2, gRPC 프로토콜은 지원되지 않습니다.
TCP 프로토콜의 경우 Cloud DNS가 엔드포인트에 연결하려고 시도합니다.
HTTP 및 HTTPS 프로토콜의 경우 Cloud DNS는 엔드포인트가 HTTP 응답 코드 200
을 반환하는지 확인합니다. 또한 콘텐츠 기반 상태 점검을 구성할 수 있습니다. 여기서 Cloud DNS는 응답에 특정 문자열이 포함되어 있는지 확인합니다.
내부 부하 분산기의 상태 점검과 달리 외부 엔드포인트에 대한 Cloud DNS 상태 점검은 고정 IP 주소 범위에서 발생하지 않습니다. 프로브 소스 IP 주소 범위는 시간이 지남에 따라 변경될 수 있습니다.
상태 점검을 만들 때 지정하는 프로토콜과 포트는 상태 점검 프로브가 실행되는 방식을 결정합니다. 포트를 지정하지 않으면 Cloud DNS에서 포트 80
을 사용합니다. 상태 점검이 올바르게 작동하도록 하려면 모든 소스 IP 주소와 상태 점검에 구성된 특정 포트에서 상태 점검 프로브를 허용하도록 방화벽 규칙을 구성합니다.
상태 점검 프로브를 허용하도록 방화벽을 구성하지 않은 경우 프로브가 실패하므로 Cloud DNS는 차단된 엔드포인트를 비정상적으로 간주합니다. 모든 엔드포인트가 비정상적으로 반환되면 Cloud DNS는 비정상적이더라도 모든 엔드포인트를 결과로 제공합니다.
상태 점검 간격
Cloud DNS는 상태 점검 간격에 따라 주기적으로 상태 점검 프로브를 보냅니다. 예를 들어 상태 점검 간격이 30초이면 Cloud DNS는 30초마다 하나의 상태 점검 프로브를 전송합니다.
Cloud DNS 외부 엔드포인트 상태 점검의 경우 상태 점검 간격은 30~300초여야 합니다.
가중치가 적용된 라운드 로빈 라우팅 정책 및 상태 점검
Cloud DNS는 두 값을 포함하여 0에서 1,000 사이의 가중치를 지원합니다. 상태 점검이 포함되면 다음 작업이 수행됩니다.
- 가중치가 모두 0인 여러 대상을 구성하면 트래픽이 대상 간에 균등하게 분산됩니다.
- 0이 아닌 새로운 가중치를 구성하면 기본 대상이 되고 모든 트래픽이 해당 대상으로 이동합니다.
- 0이 아닌 가중치로 대상을 계속 추가하면 Cloud DNS는 각 요청에서 대상 간에 트래픽 분할을 동적으로 계산하여 트래픽을 적절히 분산합니다. 예를 들어 가중치가 0, 25, 75인 대상 3개를 구성한 경우 가중치가 0인 대상은 트래픽을 분담하지 않고, 가중치가 25인 대상은 트래픽의 1/4을 분담하고, 나머지 대상은 수신 트래픽의 3/4을 분담합니다.
- 상태 점검이 가중치가 0이 아닌 대상과 연결되고 가중치가 없는 대상과 연결되지 않은 경우 가중치가 없는 대상은 항상 정상으로 간주됩니다. 0이 아닌 모든 레코드가 비정상이면 Cloud DNS는 가중치가 없는 레코드를 반환합니다.
- 상태 점검이 0이 아닌 가중치가 있는 레코드 및 가중치가 0인 레코드와 모두 연결되어 있는 경우 모든 레코드가 상태 점검에 실패하면 Cloud DNS가 가중치가 0이 아닌 모든 대상을 반환하고 가중치가 0인 대상을 무시합니다.
- Cloud DNS가 요청자에게 반환할 가중치 버킷(단일 정책 항목)을 선택하면 해당 가중치 버킷의 IP 주소만 반환됩니다. 가중치 버킷에 IP 주소를 하나만 지정하면 응답에 해당 IP 주소만 포함됩니다. 가중치 버킷에 IP 주소가 두 개 이상 있는 경우 Cloud DNS는 모든 IP 주소를 무작위 순서로 반환합니다.
위치정보 라우팅 정책 및 상태 점검
상태 점검이 사용 설정된 위치정보 라우팅 정책에 대해서는 다음과 같은 결과가 발생합니다.
- 정책에 여러 IP 주소가 구성되어 있고 모든 IP 주소에 상태 점검이 있으면 정상 IP 주소만 반환됩니다.
- 상태 점검된 IP 주소와 상태 점검되지 않은 IP 주소가 혼재되어 있고 상태 점검된 모든 IP 주소가 실패하면 Cloud DNS에서 상태 점검이 구성되지 않은 모든 IP 주소를 반환합니다. 이 시나리오에서는 다음으로 가장 가까운 지역으로의 자동 장애 조치가 수행되지 않습니다.
상태 확인 로깅
Cloud DNS는 상태 점검 로깅을 지원하며 이러한 IP 주소를 참조하는 DNS 이름을 쿼리할 때 상태 점검이 사용 설정된 IP 주소의 상태를 로깅합니다.
상태 점검 로깅을 사용하면 다음을 수행할 수 있습니다.
- 라우팅 정책이 예상대로 작동하는지 확인합니다. 예를 들면 다음과 같습니다.
- 위치정보 정책의 경우 정책이 올바른 지역을 감지하고 올바른 리소스 레코드 데이터 세트를 반환하는지 확인할 수 있습니다.
- WRR 정책의 경우 정책이 올바른 가중치로 IP 주소를 반환하는지 확인할 수 있습니다.
- 실패한 특정 백엔드 및 IP 주소의 인프라 문제를 식별합니다.
- 특정 백엔드가 포함되지 않거나 특정 백엔드만 반환되는 문제를 해결합니다.
자세한 내용은 상태 점검 로깅 정보를 참조하세요.
DNS 라우팅 정책에 지원되는 레코드 유형
DNS 라우팅 정책은 Cloud DNS에서 지원하는 레코드 유형을 모두 지원하지 않습니다.
지원되는 레코드 유형은 다음과 같습니다.
레코드 유형 | 설명 |
---|---|
A | 내부(비공개 영역) 및 외부(공개 영역) 상태 점검을 위한 IPv4 주소입니다. |
AAAA | 외부(공개 영역) 상태 점검을 위한 IPv6 주소입니다. |
CNAME | 표준 이름. 상태 점검은 지원되지 않습니다. |
MX | 메일 교환 레코드. 상태 점검은 지원되지 않습니다. |
SRV | 호스트/포트(RFC 2782). 상태 점검은 지원되지 않습니다. |
TXT | 텍스트 데이터. 상태 점검은 지원되지 않습니다. |