빠른 시작: Azure PowerShell을 사용하여 Azure 프라이빗 DNS 영역 만들기
이 문서에서는 Azure PowerShell을 사용하여 첫 번째 프라이빗 DNS 영역 및 레코드를 만드는 단계를 안내합니다.
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
DNS 영역은 특정 도메인의 DNS 레코드를 호스트하는 데 사용됩니다. Azure DNS에서 도메인 호스팅을 시작하려면 해당 도메인 이름의 DNS 영역을 만들어야 합니다. 그러면 이 DNS 영역 안에 도메인의 각 DNS 레코드가 생성됩니다. 가상 네트워크에 프라이빗 DNS 영역을 게시하려면 영역 내에서 레코드를 확인할 수 있는 가상 네트워크 목록을 지정합니다. 이것을 연결된 가상 네트워크라고 합니다. 자동 등록이 활성화된 경우 Azure DNS는 가상 머신이 생성되고, 해당 IP 주소를 변경하거나 삭제될 때마다 영역 레코드를 업데이트합니다.
필수 조건
Azure 구독이 아직 없는 경우 시작하기 전에 무료 계정을 만듭니다.
원하는 경우 Azure CLI를 사용하여 이 빠른 시작을 완료할 수 있습니다.
Azure Cloud Shell
Azure는 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 호스트합니다. Cloud Shell에서 Bash 또는 PowerShell을 사용하여 Azure 서비스 작업을 수행할 수 있습니다. 로컬 환경에 아무 것도 설치할 필요 없이 Azure Cloud Shell의 미리 설치된 명령을 사용하여 이 문서의 코드를 실행할 수 있습니다.
Azure Cloud Shell을 시작하려면 다음을 수행합니다.
옵션 | 예제/링크 |
---|---|
코드 또는 명령 블록의 오른쪽 상단에서 시도를 선택합니다. 시도를 선택해도 코드 또는 명령이 Cloud Shell에 자동으로 복사되지 않습니다. | |
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 단추를 선택하여 브라우저에서 Cloud Shell을 엽니다. | |
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다. |
Azure Cloud Shell을 사용하려면:
Cloud Shell을 시작합니다.
코드 블록(또는 명령 블록)에서 복사 단추를 선택하여 코드 또는 명령을 복사합니다.
Windows 및 Linux에서 Ctrl+Shift+V를 선택하거나 macOS에서 Cmd+Shift+V를 선택하여 코드 또는 명령을 Cloud Shell 세션에 붙여넣습니다.
Enter를 선택하여 코드 또는 명령을 실행합니다.
리소스 그룹 만들기
먼저 DNS 영역을 포함할 리소스 그룹을 만듭니다.
New-AzResourceGroup -name MyAzureResourceGroup -location "eastus"
프라이빗 DNS 영역 만들기
DNS 영역은 New-AzPrivateDnsZone
cmdlet을 사용하여 생성됩니다.
다음 예제에서는 myAzureVNet이라는 가상 네트워크를 만듭니다. 그런 다음, MyAzureResourceGroup 리소스 그룹에 private.contoso.com이라는 DNS 영역을 만들고, DNS 영역을 MyAzureVnet 가상 네트워크에 연결하고, 자동 등록을 활성화합니다.
Install-Module -Name Az.PrivateDns -force
$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.2.0.0/24"
$vnet = New-AzVirtualNetwork `
-ResourceGroupName MyAzureResourceGroup `
-Location eastus `
-Name myAzureVNet `
-AddressPrefix 10.2.0.0/16 `
-Subnet $backendSubnet
$zone = New-AzPrivateDnsZone -Name private.contoso.com -ResourceGroupName MyAzureResourceGroup
$link = New-AzPrivateDnsVirtualNetworkLink -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Name "mylink" `
-VirtualNetworkId $vnet.id -EnableRegistration
이름 확인(자동 호스트 이름 등록 제외)에 대한 영역을 만들려는 경우 -EnableRegistration
매개 변수를 생략할 수 있습니다.
DNS 프라이빗 영역 나열
Get-AzPrivateDnsZone
에서 영역 이름을 생략하면, 리소스 그룹의 모든 영역을 열거할 수 있습니다. 이 작업은 영역 개체의 배열을 반환합니다.
$zones = Get-AzPrivateDnsZone -ResourceGroupName MyAzureResourceGroup
$zones
Get-AzPrivateDnsZone
에서 영역 이름 및 리소스 그룹 이름을 모두 생략하여 Azure 구독의 모든 영역을 열거할 수 있습니다.
$zones = Get-AzPrivateDnsZone
$zones
테스트 가상 머신 만들기
이제 프라이빗 DNS 영역을 테스트할 수 있도록 두 대의 가상 머신을 만듭니다.
New-AzVm `
-ResourceGroupName "myAzureResourceGroup" `
-Name "myVM01" `
-Location "East US" `
-subnetname backendSubnet `
-VirtualNetworkName "myAzureVnet" `
-addressprefix 10.2.0.0/24 `
-OpenPorts 3389
New-AzVm `
-ResourceGroupName "myAzureResourceGroup" `
-Name "myVM02" `
-Location "East US" `
-subnetname backendSubnet `
-VirtualNetworkName "myAzureVnet" `
-addressprefix 10.2.0.0/24 `
-OpenPorts 3389
가상 머신 만들기를 완료하는 데 몇 분 정도 걸립니다.
추가 DNS 레코드 만들기
New-AzPrivateDnsRecordSet
cmdlet을 사용하여 레코드 집합을 만듭니다. 다음 예제에서는 리소스 그룹 MyAzureResourceGroup의 DNS 영역 private.contoso.com에 상대적 이름 db가 포함된 레코드를 만듭니다. 레코드 집합의 정규화된 이름은 db.private.contoso.com입니다. 레코드 형식은 "A"이고, IP 주소는 "10.2.0.4"이며, TTL은 3600초입니다.
New-AzPrivateDnsRecordSet -Name db -RecordType A -ZoneName private.contoso.com `
-ResourceGroupName MyAzureResourceGroup -Ttl 3600 `
-PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address "10.2.0.4")
DNS 레코드 보기
사용자 영역에 DNS 레코드를 나열하려면 다음을 실행하세요.
Get-AzPrivateDnsRecordSet -ZoneName private.contoso.com -ResourceGroupName MyAzureResourceGroup
프라이빗 영역 테스트
이제 private.contoso.com 프라이빗 영역에 대한 이름 확인을 테스트할 수 있습니다.
인바운드 ICMP를 허용하도록 VM 구성
이름 확인을 테스트하는 ping 명령을 사용할 수 있습니다. 따라서 인바운드 ICMP 패킷을 허용하도록 두 대의 가상 머신에서 방화벽을 구성합니다.
VM을 만들 때 사용한 사용자 이름 및 암호를 사용하여 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 milliseconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PS C:\>
리소스 정리
더 이상 필요 없다면 MyAzureResourceGroup 리소스 그룹을 삭제하여 이 문서에서 만든 리소스를 삭제합니다.
Remove-AzResourceGroup -Name MyAzureResourceGroup