[DNS] Azure Private DNS에 대해서 알아보자

DNS
작성자
Roronoa
작성일
2019-03-07 13:12
조회
10117
Azure DNS는 무엇인가?

말그대로 Domain Name System이다.  밑에 그림처럼 유저가 www.naver.com으로 접근했을때 naver.com의 주소가 숫자 아이피로

nameserver를 거쳐서 바뀌어서 보내주면 그 주소를  2번의 숫자처럼 1.2.3.4 로 보내준다. 그 보내준 주소값(IP Address) 를 통하여

실제 VM이나 가상컴퓨터 로 접속해주는 것이다. 일반적으로 고우대디나 기타 도메인 업체의 네임서버는 기본값이 2개의 네임서버를

제공하나 Azure의 경우 네임서버는 4개를 기본값으로 제공한다. 가격의 경우 https://azure.microsoft.com/ko-kr/pricing/details/dns/

를 참조할수 있다. SLA 는 99.99% 보장한다.  사실 SLA에 대해 할말이 많다. 이거 실제 사용가격이 얼마 되지도 않는데 SLA 보장한다고

해서 실제로 만약 Azure DNS가 문제가 생겨도 문제가 생긴 시간만큼 보장되는데 한달동안 고장나도 얼마 안되는 보상이다. 서비스에 대한

SLA가 필요하다고 생각된다.. 언젠가 Google DNS와 AWS의 Route53 과 Azure DNS를 퍼포먼스와 부하테스트를 비교해보고 싶다.

 

AWS 의 Route53 과 머가 다른가?

우선 Azure의 경우 Azure DNS와 Traffic Manager가 합쳐진 것이 Route53이다. 단순히 Azure DNS 와 Route53은 비교할 수 없으며,

먼저 Azure DNS에서 안되는것이 무엇인가를 보기 전에 Route 53의 기능을 보자. 아마존의 Route 53은 마치 미국 고속도로 Route 1

과 TCP 도메인 포트인 53과 고속도로 Route가 합쳐져서 만들어졌다는 설이 있다. 어떤 이유에서든 모든 유저는 Route 53을 통하여

설정된 아마존의 4개의 도메인서버에서 가용성과 확장성을 가진채 IP 주소와 매칭된다. 또한 트래픽을 흐름에 따라서 지연 시간 기반

라우팅(지연시간에 따라서 연결할 트레픽을 관리), 지역 DNS(접속한 지역에서 가까운 지역으로 연결하는 관리), 가중치 기반 (라운드로빈)

방식으로 전역적으로 분산시킬수 있다. 또한 별도의 도메인 이름의 등록과 DNS의 직접연결도 가능하며 도메인에 대한 모든설정을 관리할수 있다.

자 그럼 무조건 Route 53이 좋냐? 전혀 그렇지 않다. Route 53보다 Azure DNS가 일반적으로 아주약간 빠르다.

또한 Azure DNS가 Traffic Manager와 함께 쓰면 (Nested Traffic Manager)  Route  53보다 훨씬 다양한 시나리오를 커버할수 있지만

거의 같다고 할수 있다. (모호한 표현으로 대처)


현재 Azure DNS의 Private Domain 사설 도메인은 Preview입니다 (2019. 3)

 

Azure Private Domain이란 무엇인가?

자 이제 메인 요리인 Azure DNS의 Private Domain을 알아보자. 이를 알기전에 이미 가상네트워크에 대한 기본을 알고 읽어야 감이 올수 있다.

온프레미스 시절부터 실제 네트워크에 Private IP(사설 IP) 주소가 가상네트워크에 적용되며 온프레미스 시절에 네트워크에서도 IP대신 도메인

으로 설정을 원할때 보통 도메인서버를 내부 내트워크에 설정해서 만들곤 했다.(이제 이것이 필요없어진것이다.) 물론 내부망에 사설 VM이나

머신에 도메인 서버 하나 만들어서 각 Private IP를 도메인에 매핑하면 된다. Azure DNS에 원래 이 기능이 없었는데 왜 만들어줬을까? (필요하니깐 ㅋㅋ)

사설이든지 공개 망이든지 IP 로 연결할때의 장점과 단점 도메인으로 연결할때의 장점과 단점이 있지만 일반적으로는 도메인으로 연결하는것이 좋다.

단점도 있지만 IP의 경우 소유권이 없어지거나 다양한 이유에 의해 읽기가 쉽고 ....(사실 익숙해지면 아이피따위의 숫자정도)는 물론 100대 넘어가면

슬슬 뇌의 망각기능이 On되기 때문에 ... 아무튼 엄마가 좋냐 아빠가 좋냐 차이를 이렇다라고 결론내고 싶지 않다.

결론적으로 Azure Private Domain은 Azure Virtual Network의 주소공간(Address Space)의 디바이스에 연결이 가능하여 내부적으로 도메인으로 연동되게 할수 있다.

2019년 3월 기준으로 이는 Preview이며 GA되면 쓰고 싶지만 내 운명은 Preview 운명이므로 운명을 거스르지 않겠다. 당연히 Preview이므로

Azure Portal에서는 사용이 안되며 궁긍의 마지막 필살기 Powershell 느님으로 사용 가능하다. 자 파워쉘 ... 이름은 역시 완전 파워풀하다.

자 생성부분만 파워쉘로 하고 나머지는 포털에서 되니 너무 PowerShell 느님을 싫어하지 않길 바란다.

 

자 Azure Portal의 PowerShell느님은 로그인이 필요없다. 마이그로소프트 공식문서에 파워쉘 느님으로 DNS 만드는 방법이 친히 저술되어 있으며

한글로 기계 번역 되어있다. (공식문서에 있는 글을 굳이 여기에 써놓지 않는다. 공식문서에 잘못된 부분만 여기에 적어놓음)

https://docs.microsoft.com/ko-kr/azure/dns/private-dns-getstarted-powershell

자 위에 공식 마이크로소프트의 문서는 가상네트워크를 새로 만들어야만 사설DNS를 만들수 있다.

그럼 존재하는 가상네트워크는 어떻함? 자 파워쉘 느님을 사용할 절호의 기회이다.
untitile369

안타깝게도 위에 파워쉘 스크립트는 손으로 치셔야 합니다. 세상은 쉽지 않거든요! 자 대신 왜 저 코드를 쳐야 하는지 잠깐 언급해보겠습니다.

존재하는 Vnet에 리스트를 가져오기 위해서 &vnet 변수에서 Get method를 사용해서 불러온후 Private 변수를 ZoneType에 넣었으며 이 변수를

가지고 가상네트워크와 DNS를 연동합니다. 라고 할수 있습니다.

https://docs.microsoft.com/ko-kr/powershell/module/azurerm.dns/set-azurermdnszone?view=azurermps-6.13.0

위에 링크를 가시면 파워쉘을 더 공부하실수 있으나 밑에 사진처럼 공식문서에 오타로 인해 Virtual이란 단어가 Virual 로 오타가 있어서

파워쉘느님의 빨간줄을 보실수 있을것입니다 T를 추가 해주시고 사용하면됩니다. 아 ~ 고마운 공식문서~! 다되는것만 있으면 난 직업을

잃었을껀데 고맙습니다. T는 소문자로 사용하세요
untitile369
자 파워쉘느님의 3줄을 사용할정도 수준이 안되면 좀 더 공부를 하셔야 합니다. 파워쉘느님을 설치해본적 없는 분은 공부를 더 하시고

이 부분을 해결하셔야 합니다. 아하 물론 GA가 되고 파워쉘이 필요없다면 이 글은 필요없게 됩니다.

자 궁극적으로 Azure ASE(App Service Environment)를 사용하려면 Private Domain이 필요하기때문에 이 글이 존재하게된 이유입니다

이 다음 글은 Azure ILB ASE 웹서비스의 끝판왕인 격리 Web Service를 사용하기 위한 필수사항이기 때문에 써놓았습니다.