Azure SQL Database에 대한 DNS 별칭
적용 대상: Azure SQL 데이터베이스 Azure Synapse Analytics
Azure SQL Database에는 DNS(Domain Name System) 서버가 있습니다. PowerShell 및 REST API는 논리적 SQL 서버 이름에 대한 DNS 별칭을 만들고 관리하기 위한 호출을 허용합니다.
서버 이름 대신 DNS 별칭을 사용할 수 있습니다. 클라이언트 프로그램은 연결 문자열에 이 별칭을 사용할 수 있습니다. DNS 별칭은 클라이언트 프로그램을 다른 서버로 리디렉션할 수 있는 번역 계층을 제공합니다. 이 계층은 모든 클라이언트와 해당 연결 문자열을 찾아서 편집해야 하는 어려움을 덜어줍니다.
참고 항목
Azure Synapse Analytics에서 Azure SQL 논리 서버 DNS 별칭은 전용 SQL 풀(이전의 DW)만 지원합니다. Azure Synapse 작업 영역의 전용 SQL 풀에서는 현재 DNS 별칭이 지원되지 않습니다. 차이점은 무엇일까요?
DNS 별칭의 일반적인 용도에는 다음과 같은 경우가 포함됩니다.
- 서버에 대한 기억하기 쉬운 이름을 만듭니다.
- 초기 개발 중에 별칭은 테스트 서버를 참조할 수 있습니다. 애플리케이션이 라이브 상태가 되면 프로덕션 서버를 참조하도록 별칭을 수정할 수 있습니다. 테스트에서 프로덕션 환경으로 전환하기 위해 서버에 연결되는 여러 클라이언트의 구성을 수정할 필요는 없습니다.
- 애플리케이션의 유일한 데이터베이스가 다른 서버로 이동된 경우를 가정해 보겠습니다. 여러 클라이언트의 구성을 수정하지 않고도 별칭을 수정할 수 있습니다.
- 지역 가동 중단 중에 지역 복원을 사용하여 다른 서버 및 지역에서 데이터베이스를 복구합니다. 기존 클라이언트 애플리케이션이 다시 연결할 수 있도록 새 서버를 가리키도록 기존 별칭을 수정할 수 있습니다.
인터넷의 DNS(이름 시스템)기본
인터넷은 DNS를 사용합니다. DNS는 사용자에게 친숙한 이름을 사용자 서버의 이름으로 변환합니다.
하나의 DNS 별칭이 있는 시나리오
시스템을 새 서버로 전환해야 한다고 가정하겠습니다. 과거에는 모든 클라이언트 프로그램의 모든 연결 문자열 찾아 업데이트해야 했습니다. 그러나 이제 연결 문자열 DNS 별칭을 사용하는 경우 별칭 속성만 업데이트해야 합니다.
Azure SQL Database의 DNS 별칭 기능은 다음과 같은 시나리오에서 도움이 됩니다.
테스트 ~ 프로덕션 환경
클라이언트 프로그램 개발을 시작할 때 연결 문자열 DNS 별칭을 사용하도록 합니다. 별칭의 속성이 사용자 서버의 테스트 버전을 가리키도록 합니다.
나중에 새 시스템이 프로덕션 환경으로 전환되면 별칭의 속성이 서버를 가리키도록 업데이트합니다. 클라이언트 프로그램을 변경할 필요는 없습니다.
지역 간 지원
재해 복구는 서버를 다른 지리적 지역으로 이동할 수 있습니다. DNS 별칭을 사용하지 않던 시스템의 경우, 모든 클라이언트에 대한 모든 연결 문자열을 찾아서 업데이트할 필요는 없습니다. 대신 사용자는 이제 사용자의 Azure SQL 데이터베이스를 호스팅하는 새 서버를 참조하도록 별칭을 업데이트할 수 있습니다.
DNS 별칭의 속성
다음 속성은 서버의 각 DNS 별칭에 적용됩니다.
- 고유 이름: 생성하는 각 별칭 이름은 서버 이름과 마찬가지로 모든 서버에서 고유합니다.
- 서버가 필요합니다: DNS 별칭은 정확히 하나의 서버를 참조하지 않으면 만들 수 없으며 서버가 이미 존재해야 합니다. 업데이트된 별칭은 항상 정확히 하나의 기존 서버를 참조해야 합니다.
- 서버를 삭제하면 Azure 시스템에서 서버를 참조하는 모든 DNS 별칭도 삭제합니다.
- 어떤 지역에도 바인딩되지 않음: DNS 별칭은 지역에 바인딩되지 않습니다. DNS 별칭을 지리적 지역에 있는 서버를 참조하도록 업데이트할 수 있습니다.
- 그러나 다른 서버를 참조하도록 별칭을 업데이트하는 경우 두 서버가 동일한 Azure 구독에 있어야 합니다.
- 사용 권한: DNS 별칭을 관리하려면 사용자에게 서버 기여자 권한 이상이 있어야 합니다. 자세한 내용은 Azure Portal에서 Azure 역할 기반 액세스 제어 시작을 참조하세요.
DNS 별칭 관리하기
REST API 또는 PowerShell cmdlet을 사용하여 DNS 별칭을 프로그래밍 방식으로 관리할 수 있습니다.
REST API를 사용하여 Azure SQL 데이터베이스 DNS 별칭 관리
REST API에 대한 설명서는 다음 웹 위치 근처에서 사용할 수 있습니다.
PowerShell을 사용하여 Azure SQL 데이터베이스 DNS 별칭 관리
REST API를 호출하는 PowerShell cmdlet을 사용할 수 있습니다. PowerShell 예시: Azure SQL 데이터베이스에 대한 DNS 별칭용 PowerShell을 참조하세요.
코드 예제에 사용된 cmdlet은 다음과 같습니다.
- New-AzSqlServerDNSAlias: Azure SQL Database 서비스 시스템에 새 DNS 별칭을 만듭니다. 별칭은 서버 1을 참조합니다.
- Get-AzSqlServerDnsAlias: 서버 1에 할당된 모든 DNS 별칭을 가져와서 나열합니다.
- Set-AzSqlServerDnsAlias: 별칭이 참조하도록 구성된 서버 이름을 서버 1에서 서버 2로 수정합니다.
- Remove-AzSqlServerDNSAlias: 별칭의 이름을 사용하여 서버 2에서 DNS 별칭을 제거합니다.
참고 항목
이 문서에서는 Azure와 상호 작용하는 데 권장되는 PowerShell 모듈인 Azure Az PowerShell 모듈을 사용합니다. Az PowerShell 모듈을 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
중요
PowerShell Azure Resource Manager 모듈은 여전히 지원되지만 향후 모든 개발은 Az.Sql 모듈에 집중됩니다. 이러한 cmdlet은 AzureRM.Sql을 참조하세요. Az 모듈 및 AzureRm 모듈의 명령에 대한 인수는 실질적으로 동일합니다.
제한 사항
현재, DNS 별칭에는 다음과 같은 제한이 있습니다.
- 최대 2분 지연: DNS 별칭을 업데이트하거나 제거하는 데 최대 2분이 걸립니다.
- 짧은 지연에 관계없이 별칭은 레거시 서버에 대한 클라이언트 연결 참조를 즉시 중지합니다.
- DNS 조회: 지금은 지정된 DNS 별칭이 참조하는 서버를 검사 수 있는 유일한 방법은 DNS 조회를 수행하는 것입니다.
- DNS 별칭에는 명명 제한이 적용됩니다.