Azure DNS 프라이빗 영역은 Azure 가상 네트워크 내에서 보안 이름 확인을 제공합니다. 프라이빗 DNS 영역의 범위를 하나 이상의 가상 네트워크로 지정할 수 있으며, 조직에서는 일반적으로 내부 애플리케이션에 사용합니다. 확인되는 호스트 이름은 인터넷을 통해 공개적으로 액세스할 수 없는 로컬 DNS 이름입니다. 확인된 IP 주소는 인터넷에서 액세스할 수 없는 개인 IP 주소인 경우가 많습니다. Azure DNS 특정 가용성 영역 또는 단일 지역에 바인딩되지 않는 전역 서비스입니다.
Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.
이 문서에서는 일시적인 오류 및 지역 전체 오류를 포함하여 다양한 잠재적인 중단 및 문제에 대해 Azure DNS 프라이빗 영역을 복원하도록 하는 방법을 설명합니다. 또한 Azure DNS 프라이빗 영역 SLA(서비스 수준 계약)에 대한 주요 정보를 제공합니다.
안정성을 위한 프로덕션 배포 권장 사항
프로덕션 워크로드의 경우 다음 권장 사항을 따르는 것이 좋습니다.
적절한 TTL 값을 구성합니다. 성능과 복구 시간의 균형을 맞추는 TTL(Time-to-Live) 값을 설정합니다. TTL 값을 낮추면 더 빠른 장애 조치(failover)가 가능하지만 쿼리 볼륨이 증가합니다. 프로덕션 워크로드의 시작점으로 300초(5분)를 고려합니다.
분할된 큰 DNS 영역: 큰 DNS 영역이 있는 경우 전체 안정성 및 운영 효율성을 개선하기 위해 영역을 분할하는 것이 좋습니다.
안정성 아키텍처 개요
이 섹션에서는 안정성 관점에서 가장 관련성이 높은 서비스가 작동하는 방식의 몇 가지 중요한 측면을 설명합니다. 이 섹션에서는 배포하고 사용하는 일부 리소스 및 기능을 포함하는 논리 아키텍처를 소개합니다. 또한 서비스의 작동 방식에 대한 세부 정보를 제공하는 물리적 아키텍처에 대해서도 설명합니다.
논리 아키텍처
배포하는 기본 리소스는 호스트 이름(도메인 이름)을 IP 주소에 매핑하는 DNS 레코드 집합을 나타내는 영역입니다. 영역이 확인하는 호스트 이름은 일반적으로 인터넷을 통해 공개적으로 액세스할 수 없는 로컬 DNS 이름입니다.
프라이빗 DNS 영역을 독립 실행형 리소스로 만들고 가상 네트워크 링크를 만들어 특정 가상 네트워크에 연결합니다. 이러한 가상 네트워크 내의 클라이언트에서 DNS 요청을 받으면 프라이빗 DNS 영역이 확인 프로세스에 참여합니다. DNS 영역에서 항목을 수동으로 만들거나 가상 네트워크 링크에서 VM의 자동 등록을 구성할 수 있습니다. Azure DNS 프라이빗 영역은 가상 네트워크를 명시적으로 피어링하지 않고도 Azure 지역에서 가상 네트워크 간의 DNS 확인을 지원합니다. 그러나 모든 가상 네트워크는 프라이빗 DNS 영역에 연결되어야 합니다.
DNS 이름 확인 프로세스 에는 신뢰할 수 있는 DNS 서버에 도달하기 전에 요청을 처리하는 DNS 확인자 및 중간 계층을 비롯한 여러 구성 요소가 포함됩니다. 프라이빗 영역은 TTL 값 및 캐싱 메커니즘을 포함하여 공용 영역과 동일한 DNS 프로토콜 및 동작을 사용합니다.
Important
전체 솔루션의 안정성은 가상 머신 및 부하 분산 장치와 같이 DNS 레코드가 참조하는 리소스의 구성에 따라 달라집니다.
이 문서에서는 이러한 리소스를 다루지 않지만 가용성 구성은 애플리케이션의 복원력에 직접적인 영향을 줍니다. 솔루션에서 Azure 서비스에 대한 안정성 가이드를 검토하여 각 서비스가 안정성 요구 사항을 지원하는 방법을 알아봅니다.
물리적 아키텍처
Azure DNS 비지정 서비스입니다. Microsoft 전 세계 여러 Azure 지역의 여러 가용성 영역에 인프라를 배포합니다. 이 디자인을 사용하면 다른 영역 또는 지역의 인프라가 해결 요청에 계속 응답하기 때문에 가용성 영역 또는 지역 중단 중에 Azure DNS 복원력을 유지할 수 있습니다.
Anycast, DNS 및 BGP(Border Gateway Protocol)와 같은 글로벌 인터넷 프로토콜은 들어오는 DNS 확인 요청을 가장 가까운 정상 Azure DNS 인프라로 자동으로 라우팅합니다.
일시적인 오류에 대한 복원력
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 일시적 결함 처리를 위한 권장 사항을 참조하세요.
Azure DNS 글로벌 DNS 인프라를 통해 일시적인 오류를 처리합니다.
DNS 확인 중에 일시적인 오류가 발생하는 경우 클라이언트 또는 중간 확인자는 요청을 다시 시도해야 합니다. 시간 제한 값을 적절하게 구성합니다. DNS 클라이언트에는 일반적으로 2~5초의 시간 제한이 충분합니다.
각 DNS 레코드의 생존 시간(TTL)도 솔루션이 장애를 처리하는 방식에 영향을 미칩니다. TTL이 매우 낮은 경우 클라이언트는 Azure DNS 더 많은 요청을 수행하여 일시적인 오류에 대한 더 많은 기회를 만듭니다. TTL이 매우 높은 경우 다른 IP 주소로 리디렉션해야 하는 백 엔드 서버의 실제 오류가 발생하는 경우 클라이언트는 TTL이 만료될 때까지 장애 조치(failover)가 지연될 수 있습니다. 가용성, 대기 시간 및 응답성의 균형을 맞추기 위해 TTL을 신중하게 구성합니다.
가용성 영역 오류에 대한 복원력
가용성 영역은 Azure 지역 내에서 물리적으로 별도의 데이터 센터 그룹입니다. 한 영역이 실패하면 서비스가 나머지 영역 중 하나로 전환될 수 있습니다.
Azure DNS 비지정 서비스로 작동합니다. Microsoft 여러 Azure 지역의 여러 가용성 영역에 인프라를 배포하고 해당 인프라 전체에서 프라이빗 DNS 영역에 변경 내용을 복제합니다. 가용성 영역을 선택하거나 영역 중복성을 구성하지 않습니다. 가용성 영역이 중단되는 동안 다른 영역 또는 지역의 인프라는 해결 요청에 계속 응답합니다.
VM(가상 머신)과 같은 단일 가용성 영역에 배포하는 리소스가 영역 실패 시 사용할 수 없게 되면 Azure DNS 엔드포인트 상태를 모니터링하지 않으므로 리소스의 구성된 IP 주소를 계속 반환합니다. 정상 상태인 영역의 리소스로 장애 조치한 경우 클라이언트가 해당 정상 리소스를 사용하도록 DNS 레코드를 업데이트할 책임은 사용자에게 있습니다. 또는 정상 영역의 VM으로 트래픽을 전송하는 영역 중복 부하 분산 장치 뒤에 리소스를 배치합니다.
지역 전체 오류에 대한 복원력
Azure DNS 프라이빗 영역은 영역 데이터를 전역적으로 사용할 수 있으므로 지역 중단에 대해 복원력이 있습니다. 지역에 중단이 있는 경우 VM과 같은 가상 네트워크 및 리소스를 사용할 수 없지만 이름 확인은 계속 작동합니다.
다음 예제에서는 여러 지역에서 프라이빗 영역 데이터를 계속 사용할 수 있는 방법을 보여 줍니다. 프라이빗 영역 azure.contoso.com 은 지역 A, 지역 B 및 지역 C의 세 지역에 있는 가상 네트워크에 연결됩니다. 지역 A 및 B 지역에서 자동 등록을 사용하도록 설정됩니다. 다이어그램은 중단이 발생한 지역 A를 보여줍니다.
지역 A에서 일시적인 중단이 발생한다고 가정합니다. 지역 B 및 C의 VM은 지역 A에서 자동 등록되는 이름을 포함하여 프라이빗 영역의 DNS 이름을 계속 쿼리할 수 있습니다. VM1을 사용할 수 없더라도 지역 A에서 VM1의 IP 주소를 계속 확인할 수 있습니다. 지역 A의 서비스 중단은 다른 지역의 이름 확인에 영향을 주지 않습니다.
앞선 예제에서는 솔루션이 다른 지역에 있는 VM1의 대체 VM으로 장애 조치되는 재해 복구 시나리오를 보여주지 않습니다. 그러나 프라이빗 영역은 전역적이므로 다른 지역의 가상 네트워크에서 VM1을 다시 만들어 워크로드를 인수할 수 있습니다.
여러 지역에 걸쳐 가상 네트워크 및 네트워킹 리소스를 만드는 경우 지역 간 장애 조치(failover)가 필요한 애플리케이션에 대한 다중 리전 전략을 계획하고 구현해야 합니다.
보안 위협 및 잘못된 구성에 대한 복원력
보안 공격 및 구성 오류는 DNS 영역에 대한 가장 중요한 안정성 위험 중 두 가지입니다. 특히 DNS 확인을 대상으로 하는 여러 종류의 공격 및 우발적인 잘못된 구성은 워크로드를 심각하게 방해할 수 있습니다.
프라이빗 DNS 영역과 관련된 포괄적인 보안 지침은 프라이빗 DNS 영역 및 레코드 보호를 참조하세요.
서비스 중단에 대한 복원력
Azure DNS 애플리케이션이 특정 조건을 충족하는 경우 100% 가용성 SLA를 사용하는 매우 복원력 있는 서비스입니다. 서비스 중단은 매우 드문 일이지만 네트워크 또는 기타 인프라 문제로 인해 Azure DNS 서비스에 대한 연결이 중단됩니다.
서비스 중단 모니터링
Microsoft 지역이 다운된 경우 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 지역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
서비스 중단 테스트
Azure Chaos Studio DNS 확인 문제를 시뮬레이션하는 오류 집합을 제공합니다. 예를 들어 Chaos Studio 에이전트는 DNS 오류 오류 유형을 제공하고 AKS(Azure Kubernetes Service) Chaos Mesh는 DNS 비정상 상황 기능을 제공합니다. 이러한 오류 유형을 사용하여 DNS 확인 요청이 실패할 때 애플리케이션 및 인프라가 응답하는 방식을 테스트할 수 있으며, 이는 부분 네트워크 오류 중에 발생할 수 있습니다.
포털 및 관리 도구 중단에 대한 복원력
Azure 포털에서 DNS 영역을 관리하는 경우, 특히 플랫폼 중단 중에 DNS 영역을 다시 구성해야 하는 경우 액세스할 수 없는 시나리오를 준비합니다.
다양한 도구를 사용하여 Azure DNS 프라이빗 영역을 배포하고 관리할 수 있습니다. Azure CLI 또는 Azure PowerShell 사용하여 프라이빗 영역을 관리하는 방법을 알아봅니다. 또는 Bicep 또는 Terraform과 같은 코드형 인프라(IaC)를 사용하여 프라이빗 존을 배포하고 구성합니다. 이러한 도구는 Azure 포털의 성능이 저하된 경우에도 계속 작동합니다.
백업 및 복원
Azure DNS 상태 비저장 서비스입니다. 프라이빗 DNS 영역에 대한 관리되는 백업 또는 특정 시점 복원을 제공하지 않습니다.
전체 Azure 리소스 구성을 유지하려면 Bicep 또는 Terraform과 같은 IaC를 사용하여 프라이빗 DNS 영역을 정의하고 원본 제어에 정의를 저장합니다. 정의를 사용하여 구성을 다시 배포할 수 있도록 정의를 주기적으로 테스트합니다.
서비스 유지 관리에 대한 복원력
Microsoft는 정기적으로 서비스 업데이트를 적용하고 다른 유지 관리를 수행합니다. Azure 플랫폼은 이러한 활동을 자동으로 처리하여 유지 관리가 원활하고 투명하도록 합니다. Azure Service Health 계획된 유지 관리를 통해 조언을 받지 않는 한 유지 관리 이벤트 중에 가동 중지 시간이 예상되지 않습니다.
서비스 수준 약정
Azure 서비스에 대한 SLA(서비스 수준 계약)는 각 서비스의 예상 가용성과 솔루션이 가용성 기대치를 달성하기 위해 충족해야 하는 조건을 설명합니다. 자세한 내용은 온라인 서비스에 대한 SLA를 참조하세요.
Azure DNS 특정 조건을 충족하는 경우 유효한 DNS 쿼리 응답에 대해 100% 가용성 SLA를 제공합니다. 이러한 조건에는 최소 60초 연속으로 실패한 요청을 다시 시도하는 것이 포함됩니다. 자세한 조건은 SLA 문서를 검토하세요.