도메인 독립 가용성 그룹 만들기
적용 대상: SQL Server
Always On 가용성 그룹(AG)에는 기본 WSFC(Windows Server 장애 조치(failover) 클러스터)가 필요합니다. Windows Server 2012 R2를 통해 WSFC를 배포하려면 노드라고도 알려진 WSFC에 참여하는 서버가 동일한 도메인에 가입되어야 합니다. AD DS(Active Directory 도메인 서비스)에 관한 더 자세한 내용은 여기를 참조해 주세요.
AD DS 및 WSFC 종속성은 DBM(데이터베이스 미러링) 구성으로 이전에 배포된 것보다 더 복잡합니다. 이는 이러한 종속성 없이 인증서를 사용하여 여러 데이터 센터에 DBM을 배포할 수 있기 때문입니다. 두 개 이상의 데이터 센터에 걸쳐져 있는 기존의 가용성 그룹을 사용하려면 모든 서버는 동일한 Active Directory 도메인에 조인해야 합니다. 트러스트된 도메인이라도 다른 도메인은 작동하지 않습니다. 모든 서버는 동일한 WSFC의 노드 여야 합니다. 다음 그림에서는 이 구성을 보여 줍니다. SQL Server 2016(13.x) 이상 버전에는 다른 방식으로 이 목표를 달성하는 분산 AG도 있습니다.
Windows Server 2012 R2는 가용성 그룹과 함께 사용할 수 있는 특수한 형태의 Windows Server 장애 조치(failover) 클러스터인 Active Directory 분리 클러스터를 도입했습니다. 이 유형의 WSFC에서는 노드가 동일한 Active Directory 도메인에 여전히 가입되어야 하지만, 이 경우 WSFC는 도메인이 아니라 DNS를 사용합니다. 도메인이 여전히 관련되어 있으므로 Active Directory 분리 클러스터에서도 도메인이 필요하지 않은 환경을 제공하지 않습니다.
Windows Server 2016은 Active Directory 분리 클러스터, 즉 작업 그룹 클러스터를 기반으로 한 새로운 종류의 Windows Server 장애 조치(failover) 클러스터를 도입했습니다. 작업 그룹 클러스터를 사용하면 SQL Server에서 AD DS를 필요하지 않은 WSFC에 기반하여 가용성 그룹을 배포할 수 있습니다. SQL Server에서는 데이터베이스 미러링 시나리오에서 인증서가 필요한 것처럼 엔드포인트 보안에 인증서를 사용해야 합니다. 이러한 유형의 가용성 그룹을 도메인 독립 가용성 그룹이라고 합니다. 기본 작업 그룹 클러스터가 있는 가용성 그룹을 배포하면 WSFC를 구성할 노드에 대해 다음과 같은 조합을 지원할 수 있습니다.
- 노드가 도메인에 가입되어 있지 않습니다.
- 모든 노드는 서로 다른 도메인에 가입되어 있습니다.
- 노드가 도메인 가입 노드와 비도메인 가입 노드의 조합으로 섞여 있습니다.
다음 그림에서는 데이터 센터 1의 노드는 도메인에 가입되어 있지만, 데이터 센터 2의 노드는 DNS만 사용하는 도메인 독립 가용성 그룹의 예를 보여 줍니다. 이 경우에는 WSFC의 노드가 될 모든 서버에서 DNS 접미사를 설정합니다. 가용성 그룹에 액세스하는 모든 애플리케이션과 서버는 동일한 DNS 정보를 확인해야 합니다.
도메인 가용성 그룹은 여러 사이트 또는 재해 복구 시나리오에만 해당하는 것은 아닙니다. 단일 데이터 센터에 배포하고 기본 가용성 그룹과 함께 사용할 수도 있습니다. 이 구성은 표시된 것처럼 인증서와 함께 데이터베이스 미러링을 사용하여 달성할 수 있었던 것과 유사한 아키텍처를 제공합니다.
도메인 독립 가용성 그룹 배포에는 알려진 몇 가지 주의 사항이 있습니다.
쿼럼과 함께 사용할 수 있는 유일한 감시 유형은 Windows Server 2016에서 새로 나온 디스크 및 클라우드입니다. 가용성 그룹에서 공유 디스크를 사용하지 않을 가능성이 높기 때문에 디스크에 문제가 됩니다.
WSFC의 기본 작업 그룹 클러스터 변형은 PowerShell만 사용하여 만들 수 있는 한편, 장애 조치 클러스터 관리자를 사용하여 관리할 수 있습니다.
Kerberos가 필요한 경우 Active Directory 도메인에 연결된 표준 WSFC를 배포해야 하고 도메인 독립 그룹이 아마도 옵션은 아닐 수도 있을 것입니다.
수신기를 만들 수는 있지만 DNS에 등록해야만 사용할 수 있습니다. 이전에 언급된 것처럼 수신기에 대한 Kerberos 지원은 없습니다.
도메인이 없거나 함께 작동되도록 만들어진 것이 아닐 수 있기 때문에SQL Server에 연결하는 애플리케이션은 기본적으로 SQL Server 인증을 사용해야 합니다.
가용성 그룹 만드는 것에는 인증서가 사용됩니다.
모든 복제본 서버에서 DNS 접미사 설정 및 확인
도메인 독립 가용성 그룹의 작업 그룹 클러스터에는 공통 DNS 접미사가 필요합니다. 가용성 그룹에 대한 복제본을 호스팅할 각 Windows Server에서 DNS 접미사를 설정하고 확인하기 위해서는 다음 지침을 따라 해 보세요:
- Windows 키 + X 바로 가기를 사용해서 시스템을 선택합니다.
- 컴퓨터 이름과 전체 컴퓨터 이름이 같은 경우 DNS 접미사는 설정되지 않습니다. 예를 들어 컴퓨터 이름이
SERVER1
인 경우 전체 컴퓨터 이름의 값은SERVER1
이 아니어야 합니다.SERVER1.CONTOSO.LAB
와 같습니다.CONTOSO.LAB
은 DNS 접미사입니다. 작업 그룹의 값은WORKGROUP
입니다. DNS 접미사를 설정해야 하는 경우 설정 변경을 선택합니다. - 시스템 속성 대화 상자의 컴퓨터 이름 탭에서 변경을 선택합니다.
- 컴퓨터 이름/도메인 변경 대화 상자에서 자세히를 선택합니다.
- DNS 접미사 및 NetBIOS 컴퓨터 이름 대화 상자에서 기본 DNS 접미사로 공통 DNS 접미사를 입력합니다.
- 확인을 선택하여 DNS 접미사 및 NetBIOS 컴퓨터 이름 대화 상자를 닫습니다.
- 확인을 선택하여 컴퓨터 이름/도메인 변경 대화 상자를 닫습니다.
- 변경 내용을 적용하려면 창을 다시 시작하라는 메시지가 표시됩니다. 확인을 선택하여 컴퓨터 이름/도메인 변경 대화 상자를 닫습니다.
- 닫기를 선택하여 시스템 속성 대화 상자를 닫습니다.
- 다시 시작하라는 메시지가 표시됩니다. 즉시 다시 시작하지 않으려면 나중에 다시 시작을 선택하고, 그렇지 않으면 지금 다시 시작을 선택합니다.
- 서버를 다시 시작한 후 시스템을 다시 확인하여 일반적인 DNS 접미사가 구성되어 있는지 확인합니다.
참고 항목
여러 서브넷을 사용 중이며 정적 DNS가 있는 경우, 장애 조치(failover)를 수행하기 전에 수신기와 연결된 DNS 레코드를 업데이트하는 프로세스가 구현되어 있어야 합니다. 해당 프로세스가 없으면 네트워크 이름이 온라인 상태로 표시되지 않습니다.
도메인 독립 가용성 그룹 만들기
도메인 독립 가용성 그룹은 현재 SQL Server Management Studio를 사용하여 만들 수는 없습니다. 도메인 독립 가용성 그룹을 만드는 것은 기본적으로 일반적인 가용성 그룹을 만드는 것과 동일하지만 특정 측면(예: 인증서 만들기)은 Transact-SQL에서만 가능합니다. 다음 예제에서는 두 개의 복제본, 즉 주 복제본 하나와 보조 복제본 하나가 있는 가용성 그룹 만드는 것을 가정하고 있습니다.
Windows Server 2016의 작업 그룹 및 다중 도메인 클러스터의 지침을 사용하여 가용성 그룹에 참여할 모든 서버로 구성된 작업 그룹 클러스터를 배포합니다. 작업 그룹 클러스터를 만들기 전에 공통 DNS 접미사가 이미 만들어졌는지 확인합니다.
가용성 그룹에 참여할 각 인스턴스에서 Always On 가용성 그룹 기능을 사용하거나 사용하지 않습니다. 이를 위해서 각 SQL Server 인스턴스를 다시 시작해야 합니다.
주 복제본을 호스팅할 각 인스턴스에서는 (DMK)데이터베이스 마스터 키가 필요합니다. DMK가 아직 없는 경우 다음 명령을 실행해 보세요.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Strong Password'; GO
주 복제본이 될 인스턴스에서 보조 복제본을 인바운드를 연결하여 주 복제본의 앤드포인트를 보호하는 데 사용할 인증서를 만듭니다.
CREATE CERTIFICATE InstanceA_Cert WITH SUBJECT = 'InstanceA Certificate'; GO
인증서를 백업해 보세요. 원하는 경우 프라이빗 키를 사용해서 보안을 강화할 수도 있습니다. 이 예제에서는 프라이빗 키를 사용하지 않습니다.
BACKUP CERTIFICATE InstanceA_Cert TO FILE = 'Backup_path\InstanceA_Cert.cer'; GO
InstanceB_Cert
와 같은 인증서에 대해 적절한 이름을 사용해서 4단계와 5단계를 반복하여 각 보조 복제본에 관한 인증서를 만들어서 백업합니다.주 복제본에서 가용성 그룹의 각 보조 복제본에 대한 로그인을 만들어야 합니다. 이 로그인에는 도메인 독립 가용성 그룹에서 사용하고 있는 앤드포인트에 연결할 수 있는 권한이 부여된 권한됩니다. 예를 들어
InstanceB
라는 복제본의 경우에는 다음과 같습니다.CREATE LOGIN InstanceB_Login WITH PASSWORD = 'Strong Password'; GO
각 보조 복제본에서 기본 복제본에 대한 로그인을 만듭니다. 이 로그인에는 엔드포인트에 연결할 수 있는 권한이 부여됩니다. 예를 들어
InstanceB
라는 복제본의 경우에는 다음과 같습니다.CREATE LOGIN InstanceA_Login WITH PASSWORD = 'Strong Password'; GO
모든 인스턴스에서 만들어진 각 로그인에 대한 사용자를 만듭니다. 이 인증서를 복원할 때 사용됩니다. 예를 들어 주 복제본에 대한 사용자를 생성하려면 다음과 같습니다:
CREATE USER InstanceA_User FOR LOGIN InstanceA_Login; GO
주 복제본일 수 있는 모든 복제본의 경우 모든 관련된 보조 복제본에 로그인 및 사용자를 만듭니다.
각 인스턴스에서 로그인 및 사용자가 만든 다른 인스턴스에 대한 인증서를 복원합니다. 주 복제본에서 모든 보조 복제본의 인증서를 복원합니다. 각 보조 데이터베이스에서 주 복제본의 인증서를 복원하여 주 복제본이 될 수 있는 다른 복제본을 복원합니다. 예시:
CREATE CERTIFICATE [InstanceB_Cert] AUTHORIZATION InstanceB_User FROM FILE = 'Restore_path\InstanceB_Cert.cer';
복제본이 될 각 인스턴스에서 가용성 그룹이 사용할 엔드포인트를 만듭니다. 가용성 그룹의 경우 엔드포인트의 유형은
DATABASE_MIRRORING
이어야 합니다. 엔드포인트는 인증을 위해 해당 인스턴스에 대해 4단계에서 만든 인증서를 사용합니다. 다음 예제에서는 인증서를 사용하여 엔드포인트를 만들기 위한 구문을 보여줍니다. 사용자 환경과 관련된 적절한 암호화 방법 및 다른 옵션을 사용합니다. 사용 가능한 옵션에 대한 자세한 내용은 CREATE ENDPOINT를 참조해 주세요.CREATE ENDPOINT DIAG_EP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE InstanceX_Cert, ROLE = ALL );
8단계에서 해당 인스턴스에 만들어진 각 로그인에 권한을 할당하여 앤드포인트에 연결할 수 있도록 합니다.
GRANT CONNECT ON ENDPOINT::DIAG_EP TO [InstanceX_Login]; GO
기본 인증서와 엔드포인트 보안이 구성되었으면 기본 설정 방법을 사용하여 가용성 그룹을 만듭니다. 보조 복제본을 초기화하는 데 사용된 백업을 수동으로 백업, 복사 및 복원하거나 자동 시드를 사용해야 합니다. 마법사를 사용하여 보조 복제본을 초기화하기 위해서는 도메인에 가입하지 않은 작업 그룹 클러스터를 사용할 시에 작동하지 않을 수도 있는 SMB(Server Message Block) 파일을 사용해야 합니다.
수신기를 만드는 경우 이름과 IP 주소가 모두 DNS에 등록되어 있는지 확인합니다.