다음을 통해 공유


PowerShell을 사용하여 DNS 영역을 관리하는 방법

이 문서는 Azure PowerShell을 사용하여 DNS 영역을 관리하는 방법을 보여줍니다. 플랫폼 간 Azure CLI 또는 Azure Portal을 사용하여 DNS 영역을 관리할 수도 있습니다.

이 가이드에서는 특히 공용 DNS 영역을 다룹니다. Azure PowerShell을 사용하여 Azure DNS에서 프라이빗 영역 관리에 대한 자세한 내용은 Azure PowerShell을 사용하여 Azure DNS Private Zones 시작을 참조하세요.

DNS 영역은 특정 도메인의 DNS 레코드를 호스트하는 데 사용됩니다. Azure DNS에서 도메인 호스팅을 시작하려면 해당 도메인 이름의 DNS 영역을 만들어야 합니다. 그러면 이 DNS 영역 안에 도메인의 각 DNS 레코드가 생성됩니다.

예를 들어 'contoso.com' 도메인은 'mail.contoso.com'(메일 서버) 및 'www.contoso.com'(웹 사이트)과 같은 여러 DNS 레코드를 포함할 수 있습니다.

Azure DNS에서 DNS 영역을 만드는 경우:

  • 영역 이름은 리소스 그룹 내에서 고유해야 하며, 영역이 존재해서는 안 됩니다. 그렇지 않으면 작업이 실패합니다.
  • 서로 다른 리소스 그룹이나 Azure 구독에서는 동일한 영역 이름을 다시 사용할 수 있습니다.
  • 복수 영역이 동일한 이름을 공유할 경우 인스턴스는 각각 다른 이름 서버 주소에 할당됩니다. 도메인 이름 등록 기관에는 한 가지 주소 집합만 구성할 수 있습니다.

참고 항목

Azure DNS에서 해당 도메인 이름으로 DNS 영역을 만들기 위해 도메인을 소유할 필요는 없습니다. 하지만 도메인 이름 등록 기관에 도메인 이름의 올바른 이름 서버로 Azure DNS 이름 서버를 구성하려면 도메인을 소유해야 합니다.

자세한 내용은 Azure DNS에 도메인 위임을 참조하세요.

Azure DNS를 위한 Azure PowerShell 설정

시작하기 전에

Important

PowerShell에서 이 Azure 기능을 사용하려면 AzureRM 모듈이 설치되어 있어야 합니다. 이 모듈은 Windows PowerShell 5.1에만 사용할 수 있는 이전 모듈로, 새로운 기능은 더 이상 받지 않습니다. PowerShell의 동일한 버전에 대해 설치된 경우 AzAzureRM 모듈은 호환되지 않습니다. 두 버전이 모두 필요한 경우:

  1. PowerShell 5.1 세션에서 Az 모듈을 제거합니다.
  2. PowerShell 5.1 세션에서 AzureRM 모듈을 설치합니다.
  3. PowerShell Core 6.x 이상을 다운로드하고 설치합니다.
  4. PowerShell Core 세션에서 Az 모듈을 설치합니다.

구성을 시작하기 전에 다음 항목이 있는지 확인합니다.

Azure 계정에 로그인

PowerShell 콘솔을 열고 계정에 연결합니다. 자세한 내용은 Azure PowerShell로 로그인을 참조하세요.

Connect-AzAccount

구독 선택

계정에 대한 구독을 확인합니다.

Get-AzSubscription

사용할 Azure 구독을 선택합니다.

Select-AzSubscription -SubscriptionName "your_subscription_name"

리소스 그룹 만들기

Azure 리소스 관리자를 사용하려면 모든 리소스 그룹이 위치를 지정해야 합니다. 이 위치는 해당 리소스 그룹에서 리소스의 기본 위치로 사용됩니다. 그러나 모든 DNS 리소스는 국가별이 아니라 전역이므로 리소스 그룹의 위치 선택이 Azure DNS에 영향을 주지 않습니다.

기존 리소스 그룹을 사용하는 경우에는 이 단계를 건너뛸 수 있습니다.

New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"

DNS 영역 만들기

DNS 영역은 New-AzDnsZone cmdlet을 사용하여 생성됩니다.

다음 예제에서는 MyDNSResourceGroup이라는 리소스 그룹에 contoso.com이라는 DNS 영역을 만듭니다.

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

다음 예제에서는 두 Azure Resource Manager 태그, project = demoenv = test를 사용하여 DNS 영역을 만드는 방법을 보여 줍니다.

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

DNS 영역 가져오기

DNS 영역을 가져오려면 Get-AzDnsZone cmdlet을 사용합니다. 이 작업은 Azure DNS의 기존 영역에 해당하는 DNS 영역 개체를 반환합니다. 이 개체는 영역에 대한 데이터(예: 레코드 집합 수)를 포함하지만 레코드 집합 자체는 포함하지 않습니다(Get-AzDnsRecordSet 참조).

Get-AzDnsZone -Name contoso.com –ResourceGroupName MyDNSResourceGroup

Name                  : contoso.com
ResourceGroupName     : myresourcegroup
Etag                  : 00000003-0000-0000-8ec2-f4879750d201
Tags                  : {project, env}
NameServers           : {ns1-01.azure-dns.com., ns2-01.azure-dns.net., ns3-01.azure-dns.org.,
                        ns4-01.azure-dns.info.}
NumberOfRecordSets    : 2
MaxNumberOfRecordSets : 5000

DNS 영역 나열

Get-AzDnsZone에서 영역 이름을 생략하면, 리소스 그룹의 모든 영역을 열거할 수 있습니다. 이 작업은 영역 개체의 배열을 반환합니다.

$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList

Get-AzDnsZone에서 영역 이름 및 리소스 그룹 이름을 모두 생략하여 Azure 구독의 모든 영역을 열거할 수 있습니다.

$zoneList = Get-AzDnsZone
$zoneList

DNS 영역 업데이트

Set-AzDnsZone를 사용하여 DNS 영역 리소스를 변경할 수 있습니다. 이 cmdlet은 영역 내의 DNS 레코드 집합을 업데이트하지 않습니다(DNS 레코드를 관리하는 방법참조). 영역 리소스 자체의 속성을 업데이트하는 데만 사용됩니다. 이러한 쓰기 가능 영역 속성은 현재 영역 리소스에 대한 Azure Resource Manager '태그'로 제한됩니다.

다음 두 가지 방법 중 하나를 사용하여 DNS 영역을 업데이트합니다.

영역 이름 및 리소스 그룹을 사용하여 영역을 지정합니다.

이 접근 방법은 기존 영역 태그를 지정된 값으로 대체합니다.

Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

$zone 개체를 사용하여 영역을 지정합니다.

이 방법은 기존 영역 개체를 검색하고, 태그를 수정한 다음, 변경 내용을 커밋합니다. 이러한 방식으로 기존 태그를 보존할 수 있습니다.

# Get the zone object
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

# Remove an existing tag
$zone.Tags.Remove("project")

# Add a new tag
$zone.Tags.Add("status","approved")

# Commit changes
Set-AzDnsZone -Zone $zone

$zone 개체와 함께 Set-AzDnsZone을 사용하는 경우 동시 변경 내용을 덮어쓰지 않도록 Etag 검사가 사용됩니다. 선택적 -Overwrite 스위치를 사용하여 이러한 검사를 무시할 수 있습니다.

DNS 영역 삭제

Remove-AzDnsZone cmdlet을 사용하여 DNS 영역을 삭제할 수 있습니다.

참고 항목

DNS 영역을 삭제하면 영역 내의 모든 DNS 레코드도 삭제됩니다. 이 작업은 실행 취소할 수 없습니다. DNS 영역을 사용 중인 경우 영역이 삭제되면 영역을 사용하는 서비스가 실패합니다.

실수로 영역이 삭제되는 것을 방지하려면 DNS 영역 및 레코드를 보호하는 방법을 참조하세요.

다음 두 가지 방법 중 하나를 사용하여 DNS 영역을 삭제합니다.

영역 이름 및 리소스 그룹 이름을 사용하여 영역을 지정합니다.

Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

$zone 개체를 사용하여 영역을 지정합니다.

Get-AzDnsZone에서 반환된 $zone 개체를 사용하여 삭제될 영역을 지정할 수 있습니다.

$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone

영역 개체를 매개 변수로 전달하는 대신 파이프할 수도 있습니다.

Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone

Set-AzDnsZone과 마찬가지로, $zone 개체를 사용하여 영역을 지정하면 동시 변경 내용을 삭제하지 않도록 Etag 검사가 사용됩니다. 이러한 검사를 무시하려면 -Overwrite 스위치를 사용합니다.

확인 메시지 표시

New-AzDnsZone, Set-AzDnsZoneRemove-AzDnsZone cmdlet은 모두 확인 메시지를 표시하도록 지원합니다.

$ConfirmPreference PowerShell 기본 설정 변수 값에 Medium 이하의 값이 있는 경우 New-AzDnsZoneSet-AzDnsZone은 확인 메시지를 표시합니다. DNS 영역을 삭제하면 잠재적으로 원치 않는 조건이 발생할 수 있으므로 Remove-AzDnsZone cmdlet은 $ConfirmPreference PowerShell 변수가 None 이외의 값을 갖는 경우 확인 메시지를 표시합니다.

$ConfirmPreference의 기본값은 High이므로 Remove-AzDnsZone는 기본적으로 확인 메시지를 표시합니다.

-Confirm 매개 변수를 사용하여 현재 $ConfirmPreference 설정을 재정의할 수 있습니다. -Confirm 또는 -Confirm:$True를 지정하는 경우 cmdlet은 실행하기 전에 확인을 위한 메시지를 표시합니다. -Confirm:$False를 지정하는 경우 cmdlet은 확인을 위한 메시지를 표시하지 않습니다.

-Confirm$ConfirmPreference에 대한 자세한 내용은 기본 설정 변수 정보를 참조하세요.

다음 단계

DNS 영역에서 레코드 집합 및 레코드 관리 방법을 알아봅니다.
Azure DNS에 도메인을 위임하는 방법을 알아봅니다.
Azure DNS PowerShell 참조 설명서를 검토합니다.