분산 가용성 그룹을 AWS 사용하여 SQL 서버를 로 마이그레이션 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

분산 가용성 그룹을 AWS 사용하여 SQL 서버를 로 마이그레이션

작성자: Praveen Marthala(AWS)

소스: SQL 서버 온프레미스

대상: SQL 서버 켜짐 EC2

R 타입: 리호스팅

환경: PoC 또는 파일럿

기술: 데이터베이스, 마이그레이션

워크로드: Microsoft

AWS 서비스: Amazon EC2

요약

Microsoft SQL Server Always On 가용성 그룹은 SQL 서버에 대한 고가용성(HA) 및 재해 복구(DR) 솔루션을 제공합니다. 가용성 그룹은 읽기/쓰기 트래픽을 허용하는 기본 복제본과 읽기 트래픽을 허용하는 최대 8개의 보조 복제본으로 구성됩니다. 가용성 그룹은 둘 이상의 노드가 있는 Windows Server 장애 조치 클러스터(WSFC)에 구성됩니다.

Microsoft SQL Server Always On 분산 가용성 그룹은 두 독립 간에 두 개의 개별 가용성 그룹을 구성하는 솔루션을 제공합니다WFSCs. 분산 가용성 그룹에 속하는 가용성 그룹은 같은 데이터 센터에 있지 않아도 됩니다. 하나의 가용성 그룹은 온프레미스에 있을 수 있고, 다른 가용성 그룹은 다른 도메인의 Amazon Elastic Compute Cloud(AmazonAWS) 인스턴스의 Amazon Web Services(EC2) 클라우드에 있을 수 있습니다. 

이 패턴은 분산 가용성 그룹을 사용하여 기존 가용성 그룹의 일부인 온프레미스 SQL 서버 데이터베이스를 Amazon 에 설정된 가용성 그룹이 있는 SQL 서버로 마이그레이션하는 단계를 간략하게 설명합니다EC2. 이 패턴을 따르면 전환 중에 가동 중지 시간을 최소화하면서 데이터베이스를 AWS 클라우드로 마이그레이션할 수 있습니다. 데이터베이스는 전환 AWS 직후 에서 고가용성을 제공합니다. 또한 이 패턴을 사용하여 동일한 버전의 SQL 서버를 AWS 유지하면서 기본 운영 체제를 온프레미스에서 로 변경할 수 있습니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정

  • AWS Direct Connect 또는 AWS Site-to-Site VPN

  • 온프레미스와 의 두 노드에 설치된 동일한 버전의 SQL 서버 AWS

제품 버전

  • SQL 서버 버전 2016 이상

  • SQL 서버 Enterprise Edition

아키텍처

소스 기술 스택  

  • 온프레미스에 Always On 가용성 그룹이 있는 Microsoft SQL Server 데이터베이스

대상 기술 스택

  • Amazon EC2 on the AWS Cloud의 Always On 가용성 그룹이 있는 Microsoft SQL Server 데이터베이스

마이그레이션 아키텍처

SQL 온프레미스 및 의 가용성 그룹에서 동기식 복제를 사용하는 서버입니다AWS.

용어

  • WSFC 1 WSFC - 온프레미스

  • WSFC 2 - AWS 클라우드WSFC에서

  • AG 1 - WSFC 1에 있는 첫 번째 가용성 그룹

  • AG 2 - 2에 있는 WSFC 두 번째 가용성 그룹

  • SQL 서버 기본 복제본 - 모든 쓰기의 글로벌 기본으로 간주되는 AG 1의 노드

  • SQL 서버 전달자 - SQL 서버 기본 복제본에서 비동기적으로 데이터를 수신하는 AG 2의 노드

  • SQL 서버 보조 복제본 - 기본 복제본 또는 전달자로부터 데이터를 동기적으로 수신하는 AG 1 또는 AG 2의 노드

도구

  • AWS Direct Connect - AWS Direct Connect는 표준 이더넷 광섬유 케이블을 통해 내부 네트워크를 AWS Direct Connect 위치에 연결합니다. 이 연결을 사용하면 네트워크 경로의 인터넷 AWS 서비스 공급자를 우회하여 퍼블릭 서비스에 직접 가상 인터페이스를 생성할 수 있습니다.

  • Amazon EC2 – Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. AmazonEC2을 사용하여 필요한 만큼 가상 서버를 시작하고 확장하거나 확장할 수 있습니다.

  • AWS Site-to-Site VPN – 는 site-to-site 가상 프라이빗 네트워크() 생성을 AWS Site-to-Site VPN 지원합니다VPN. 에서 시작하는 인스턴스AWS와 자체 원격 네트워크 간에 트래픽을 전달VPN하도록 를 구성할 수 있습니다.

  • Microsoft SQL Server Management Studio - Microsoft SQL Server Management Studio(SSMS)는 SQL 서버 인프라를 관리하기 위한 통합 환경입니다. 서버와 상호 작용하는 풍부한 스크립트 편집기가 포함된 사용자 인터페이스와 도구 그룹을 제공합니다SQL.

에픽

작업설명필요한 기술

WSFC 에서 를 생성합니다AWS.

HA용 노드 WSFC 2개를 사용하여 Amazon EC2 인스턴스에 2개를 생성합니다. 이 장애 조치 클러스터를 사용하여 에서 두 번째 가용성 그룹(AG 2)을 생성합니다AWS.

시스템 관리자, SysOps 관리자

WSFC 2에서 두 번째 가용성 그룹을 생성합니다.

를 사용하여 2의 두 노드에 AG WSFC 2를 SSMS생성합니다. 2WSFC의 첫 번째 노드가 전달자로 작동합니다. 2의 두 번째 노드는 AG WSFC 2의 보조 복제본 역할을 합니다.

이 단계에서는 AG 2에서 사용할 수 있는 데이터베이스가 없습니다. 분산 가용성 그룹을 설정하기 위한 출발점입니다.

DBA, 개발자

AG 2에서 복구 옵션 없이 데이터베이스를 생성합니다.

온프레미스 가용성 그룹(AG 1)에 데이터베이스를 백업합니다. 

복구 옵션 없이 데이터베이스를 전달자와 AG 2의 보조 복제본 모두에 복원합니다. 데이터베이스를 복원하는 동안 데이터베이스 데이터 파일과 로그 파일을 위한 충분한 디스크 공간이 있는 위치를 지정하세요.

이 단계에서는 데이터베이스가 복원 상태에 있습니다. AG 2 또는 분산 가용성 그룹에 속하지 않으며 동기화되지도 않습니다.

DBA, 개발자
작업설명필요한 기술

AG 1에 분산 가용성 그룹을 생성합니다.

AG 1에 분산 가용성 그룹을 생성하려면 DISTRIBUTED 옵션이 있는 CREATE AVAILABILITY GROUP을 사용하세요.

  1. AG 1 및 AG 2의 LISTENER_URL 엔드포인트 주소를 사용합니다.

  2. AVAILABILITY-MODE의 경우 네트워크 지연을 방지하기 위해 ASYNCHRONOUS_COMMIT을 사용하세요. 이는 데이터베이스 성능에 영향을 주지 않습니다.

  3. FAILOVER_MODE에는 MANUAL을 사용합니다. 분산 가용성 그룹에서 작동하는 유일한 가용성 모드입니다.

  4. AG 2에서 데이터베이스를 수동으로 복원하고 대규모 데이터베이스를 더 잘 제어하려면 SEEDING_MODE에 대한 MANUAL을 사용하세요.

DBA, 개발자

AG 2에 분산 가용성 그룹을 생성합니다.

AG 2에 분산 가용성 그룹을 생성하려면 DISTRIBUTED 옵션이 있는 ALTER AVAILABILITY GROUP을 사용하세요.

  1. AG 1 및 AG 2의 LISTENER_URL 엔드포인트 주소를 사용합니다.

  2. AVAILABILITY-MODE의 경우 네트워크 지연을 방지하기 위해 ASYNCHRONOUS_COMMIT을 사용하세요. 이는 데이터베이스 성능에 영향을 주지 않습니다.

  3. FAILOVER_MODE에는 MANUAL을 사용합니다. 분산 가용성 그룹에서 작동하는 유일한 가용성 모드입니다.

  4. AG 2에서 데이터베이스를 수동으로 복원하고 대규모 데이터베이스를 더 잘 제어하려면 SEEDING_MODE에 대한 MANUAL을 사용하세요.

분산 가용성 그룹은 AG 1과 AG 2 사이에 생성됩니다.

AG 2의 데이터베이스는 아직 AG 1에서 AG 2로의 데이터 흐름에 참여하도록 구성되지 않았습니다.

DBA, 개발자

AG 2의 전달자 및 보조 복제본에 데이터베이스를 추가합니다.

AG 2의 ALTER DATABASE 전달자와 보조 복제본 모두에서 SET HADR AVAILABILITY GROUP 옵션을 사용하여 데이터베이스를 분산 가용성 그룹에 추가합니다. 

그러면 AG 1과 AG 2의 데이터베이스 간에 비동기 데이터 흐름이 시작됩니다. 

글로벌 기본 복제본은 쓰기 작업을 수행하고 AG 1의 보조 복제본에 동기적으로 데이터를 전송하고 AG 2의 전달자에 비동기적으로 데이터를 전송합니다. AG 2의 전달자는 AG 2의 보조 복제본에 동기적으로 데이터를 전송합니다.

DBA, 개발자
작업설명필요한 기술

DMVs 및 SQL 서버 로그를 사용합니다.

동적 관리 보기(DMVs)와 SQL 서버 로그를 사용하여 두 가용성 그룹 간의 데이터 흐름 상태를 모니터링합니다. 

DMVs 모니터링에 관심 있는 에는 sys.dm_hadr_availability_replica_states 및 가 포함됩니다sys.dm_hadr_automatic_seeding.

전달자 동기화 상태의 경우 전달자의 SQL 서버 로그에서 동기화된 상태를 모니터링합니다.

DBA, 개발자
작업설명필요한 기술

기본 복제본에 대한 모든 트래픽을 중지합니다.

AG 1의 기본 복제본으로 들어오는 트래픽을 중지하여 데이터베이스에서 쓰기 작업이 발생하지 않고 데이터베이스를 마이그레이션할 준비가 되도록 하세요.

앱 소유자, 개발자

AG 1의 분산 가용성 그룹의 가용성 모드를 변경합니다.

기본 복제본에서 분산 가용성 그룹의 가용성 모드를 동기로 설정합니다. 

가용성 모드를 동기로 변경하면 데이터가 AG 1의 기본 복제본에서 AG 2의 전달자로 동기적으로 전송됩니다.

DBA, 개발자

두 가용성 그룹에서 LSNs 를 확인합니다.

AG 1과 AG 2 모두에서 마지막 로그 시퀀스 번호(LSNs)를 확인합니다. AG 1의 기본 복제본에서 쓰기가 발생하지 않으므로 데이터가 동기화되고 LSNs 두 가용성 그룹의 마지막 가 일치해야 합니다.

DBA, 개발자

AG 1을 보조 역할로 업데이트합니다.

AG 1을 보조 역할로 업데이트하면 AG 1은 기본 복제 역할을 잃고 쓰기를 허용하지 않으며 두 가용성 그룹 간의 데이터 흐름이 중지됩니다.

DBA, 개발자
작업설명필요한 기술

AG 2로 수동 페일오버합니다.

AG 2의 전달자에서 데이터 손실을 허용하도록 분산 가용성 그룹을 변경하세요. AG 1과 LSNs AG 2의 마지막 가 일치하는지 이미 확인하고 확인했으므로 데이터 손실은 문제가 되지 않습니다.

AG 2에서 전달자의 데이터 손실을 허용하면 AG 1과 AG 2의 역할이 변경됩니다.

  • AG 2는 기본 복제본과 보조 복제본이 있는 가용성 그룹이 됩니다.

  • AG 1은 전달자 및 보조 복제본이 있는 가용성 그룹이 됩니다.

DBA, 개발자

AG 2의 분산 가용성 그룹의 가용성 모드를 변경합니다.

AG 2의 기본 복제본에서 가용성 모드를 비동기로 변경합니다.

이렇게 하면 데이터 이동이 AG 2에서 AG 1로, 즉 동기식에서 비동기식으로 변경됩니다. 이 단계는 AG 2와 AG 1 사이의 네트워크 지연 시간(있는 경우)을 방지하기 위해 필요하며 데이터베이스 성능에는 영향을 미치지 않습니다.

DBA, 개발자

새 기본 복제본으로 트래픽 전송을 시작합니다.

연결 문자열을 업데이트하여 AG 2의 리스너 URL 엔드포인트를 사용하여 데이터베이스로 트래픽을 전송합니다.

이제 AG 2는 쓰기를 수락하고 AG 1의 전달자에게 데이터를 전송하며, AG 2의 자체 보조 복제본에도 데이터를 전송합니다. 데이터는 AG 2에서 AG 1로 비동기적으로 이동합니다.

앱 소유자, 개발자
작업설명필요한 기술

분산 가용성 그룹을 AG 2에 삭제합니다.

계획된 시간에 마이그레이션을 모니터링합니다. 그런 다음 AG 2에 분산 가용성 그룹을 삭제하여 AG 2와 AG 1 사이의 분산 가용성 그룹 설정을 제거합니다. 이렇게 하면 분산 가용성 그룹 구성이 제거되고 AG 2에서 AG 1로 이동하는 데이터 흐름이 중지됩니다. 

현재 AG 2는 에서 고가용성이며AWS, 쓰기를 수행하는 기본 복제본과 동일한 가용성 그룹의 보조 복제본이 있습니다.

DBA, 개발자

온프레미스 서버를 서비스 해제합니다.

AG WSFC 1의 일부인 1에서 온프레미스 서버를 해체합니다.

시스템 관리자, SysOps 관리자

관련 리소스