빠른 시작: Azure CLI를 사용하여 Azure 프라이빗 DNS 영역 만들기
이 빠른 시작에서는 Azure CLI를 사용하여 첫 번째 프라이빗 DNS 영역 및 레코드를 만드는 단계를 설명합니다.
DNS 영역은 특정 도메인의 DNS 레코드를 호스트하는 데 사용됩니다. Azure DNS에서 도메인 호스팅을 시작하려면 해당 도메인 이름의 DNS 영역을 만들어야 합니다. 그러면 이 DNS 영역 안에 도메인의 각 DNS 레코드가 생성됩니다. 가상 네트워크에 프라이빗 DNS 영역을 게시하려면 영역 내에서 레코드를 확인할 수 있는 가상 네트워크 목록을 지정합니다. 이것을 연결된 가상 네트워크라고 합니다. 자동 등록이 활성화된 경우 Azure DNS는 가상 머신이 생성되고, 해당 IP 주소를 변경하거나 삭제될 때마다 영역 레코드를 업데이트합니다.
Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
사전 요구 사항
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
- Azure PowerShell을 사용하여 이 빠른 시작을 완료할 수도 있습니다.
리소스 그룹 만들기
먼저 DNS 영역을 포함할 리소스 그룹을 만듭니다.
az group create --name MyAzureResourceGroup --location "East US"
프라이빗 DNS 영역 만들기
다음 예제에서는 myAzureVNet이라는 가상 네트워크를 만듭니다. 그런 다음, MyAzureResourceGroup 리소스 그룹에 private.contoso.com이라는 DNS 영역을 만들고, DNS 영역을 MyAzureVnet 가상 네트워크에 연결하고, 자동 등록을 활성화합니다.
az network vnet create \
--name myAzureVNet \
--resource-group MyAzureResourceGroup \
--location eastus \
--address-prefix 10.2.0.0/16 \
--subnet-name backendSubnet \
--subnet-prefixes 10.2.0.0/24
az network private-dns zone create -g MyAzureResourceGroup \
-n private.contoso.com
az network private-dns link vnet create -g MyAzureResourceGroup -n MyDNSLink \
-z private.contoso.com -v myAzureVNet -e true
이름 확인(자동 호스트 이름 등록 제외)에 대한 영역을 만들려는 경우 -e false
매개 변수를 사용할 수 있습니다.
DNS 프라이빗 영역 나열
DNS 영역을 열거하려면 az network private-dns zone list
를 사용합니다. 도움말을 보려면 az network dns zone list --help
을 참조하세요.
리소스 그룹을 지정하면 리소스 그룹 내의 해당 영역만 나열합니다.
az network private-dns zone list \
-g MyAzureResourceGroup
리소스 그룹을 생략하면 구독의 모든 영역이 나열됩니다.
az network private-dns zone list
테스트 가상 머신 만들기
이제 프라이빗 DNS 영역을 테스트할 수 있도록 두 대의 가상 머신을 만듭니다.
az vm create \
-n myVM01 \
--admin-username AzureAdmin \
-g MyAzureResourceGroup \
-l eastus \
--subnet backendSubnet \
--vnet-name myAzureVnet \
--nsg NSG01 \
--nsg-rule RDP \
--image win2016datacenter
az vm create \
-n myVM02 \
--admin-username AzureAdmin \
-g MyAzureResourceGroup \
-l eastus \
--subnet backendSubnet \
--vnet-name myAzureVnet \
--nsg NSG01 \
--nsg-rule RDP \
--image win2016datacenter
가상 머신 만들기를 완료하는 데 몇 분 정도 걸립니다.
추가 DNS 레코드 만들기
DNS 레코드를 만들려면 az network private-dns record-set [record type] add-record
명령을 사용합니다. 도움말과 A 레코드를 추가하는 도움말은 az network private-dns record-set A add-record --help
를 참조하세요.
다음 예제에서는 리소스 그룹 MyAzureResourceGroup의 DNS 영역 private.contoso.com에 상대적 이름 db가 포함된 레코드를 만듭니다. 레코드 집합의 정규화된 이름은 db.private.contoso.com입니다. 레코드 형식은 "A"이고, IP 주소는 "10.2.0.4"입니다.
az network private-dns record-set a add-record \
-g MyAzureResourceGroup \
-z private.contoso.com \
-n db \
-a 10.2.0.4
DNS 레코드 보기
사용자 영역에 DNS 레코드를 나열하려면 다음을 실행하세요.
az network private-dns record-set list \
-g MyAzureResourceGroup \
-z private.contoso.com
프라이빗 영역 테스트
이제 private.contoso.com 프라이빗 영역에 대한 이름 확인을 테스트할 수 있습니다.
인바운드 ICMP를 허용하도록 VM 구성
이름 확인을 테스트하는 ping 명령을 사용할 수 있습니다. 따라서 인바운드 ICMP 패킷을 허용하도록 두 대의 가상 머신에서 방화벽을 구성합니다.
myVM01에 연결하고, 관리자 권한으로 Windows PowerShell 창을 엽니다.
다음 명령을 실행합니다.
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
myVM02에서 반복
이름별로 VM ping
myVM02 Windows PowerShell 명령 프롬프트에서 자동으로 등록된 호스트 이름을 사용하여 myVM01을 ping합니다.
ping myVM01.private.contoso.com
아래에 표시된 것과 유사한 출력이 표시됩니다.
PS C:\> ping myvm01.private.contoso.com Pinging myvm01.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time=1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms PS C:\>
이제 이전에 만든 db 이름을 ping합니다.
ping db.private.contoso.com
아래에 표시된 것과 유사한 출력이 표시됩니다.
PS C:\> ping db.private.contoso.com Pinging db.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PS C:\>
리소스 정리
더 이상 필요 없다면 MyAzureResourceGroup 리소스 그룹을 삭제하여 이 빠른 시작에서 만든 리소스를 삭제합니다.
az group delete --name MyAzureResourceGroup