새 지역인 Azure SQL Managed Instance로 리소스 이동
적용 대상: Azure SQL Managed Instance
Azure SQL Managed Instance를 새 지역으로 이동하는 방법에 대한 일반적인 워크플로를 설명합니다.
참고 항목
이 문서는 Azure 공용 클라우드 내에서 또는 동일한 소버린 클라우드 내에서의 마이그레이션에 적용됩니다.
개요
기존의 관리형 인스턴스를 한 지역에서 다른 지역으로 이동하려는 다양한 시나리오가 있습니다. 예를 들어, 비즈니스를 새로운 지역으로 확장하고 있으며 새 고객층에 맞게 최적화하려고 합니다. 또는 규정 준수를 위해 작업을 다른 지역으로 이동해야 합니다. 또는 Azure는 더 나은 근접성을 제공하고 고객 환경을 개선하는 새로운 지역을 출시했습니다.
리소스를 다른 지역으로 이동하는 일반적인 워크플로는 다음 단계로 구성됩니다.
- 이동을 위한 사전 요구 사항을 확인합니다.
- 범위에서 리소스를 이동할 준비를 합니다.
- 준비 프로세스를 모니터링합니다.
- 이동 프로세스를 테스트합니다.
- 실제 이동을 시작합니다.
- 원본 지역에서 리소스를 제거합니다.
필수 구성 요소 확인
- 각 원본 관리되는 인스턴스의 경우, 대상 지역에 동일한 크기의 인스턴스를 만듭니다.
- 관리되는 인스턴스의 네트워크를 구성합니다. 자세한 내용은 네트워크 구성을 참조하세요.
- 올바른 로그인으로 대상
master
데이터베이스를 구성합니다. 구독 관리자 또는 SQL Managed Instance 관리자가 아닌 경우에는 관리자와 협력하여 필요한 권한을 할당받습니다. - 데이터베이스가 TDE(투명한 데이터 암호화)로 암호화되고 Azure Key Vault에서 BYOK(Bring Your Own Key) 또는 CMK(고객 관리형 키)를 사용하는 경우, 대상 지역에 올바른 암호화 자료를 프로비저닝해야 합니다.
- 이 작업을 수행하는 가장 간단한 방법은 기존 키 자격 증명 모음의 암호화 키(원본 서버에서 TDE 보호기로 사용됨)를 대상 인스턴스에 추가한 다음, 한 지역의 인스턴스가 이제 다른 지역의 키 자격 증명으로 연결될 수 있으므로 대상 인스턴스에서 키를 TDE 보호기로 설정하는 것입니다.
- 대상 인스턴스가 이전 암호화 키(데이터베이스 백업 복원에 필요)에 액세스하도록 보장하는 가장 좋은 방법은 원본 인스턴스에서 Get-AzSqlServerKeyVaultKey cmdlet을 실행하거나, 원본 관리형 인스턴스에서 Get-AzSqlInstanceKeyVaultKey cmdlet을 실행하여 사용 가능한 키 목록을 반환하고 해당 키를 대상 인스턴스에 추가하는 것입니다.
- 대상 인스턴스에서 고객 관리형 TDE를 구성하는 방법에 대한 자세한 내용과 모범 사례는 Azure Key Vault에서 고객 관리형 키를 사용한 Azure SQL 투명한 데이터 암호화를 참조하세요.
- 관리되는 인스턴스에 감사를 사용하는 경우 다음을 확인합니다.
- 기존 로그가 포함된 스토리지 컨테이너 또는 이벤트 허브가 대상 지역으로 이동됩니다.
- 감사는 대상 인스턴스에서 구성됩니다. 자세한 내용은 SQL Managed Instance를 사용하여 감사를 참조하세요.
- 인스턴스에 LTR(장기 보존 정책)이 있는 경우 기존 LTR 백업이 현재 인스턴스와 연결된 상태로 유지됩니다. 대상 인스턴스가 다르기 때문에 인스턴스가 삭제되더라도 원본 인스턴스를 사용하여 원본 지역의 이전 LTR 백업에 액세스할 수 있습니다.
참고 항목
소버린 지역과 공용 지역 간에 기존 LTR 백업이 있는 인스턴스를 마이그레이션하려면 현재 가능하지 않은 대상 인스턴스로 LTR 백업을 이동해야 하기 때문에 지원되지 않습니다.
리소스 준비
각 원본 관리되는 인스턴스와 SQL Managed Instance의 해당 대상 인스턴스 간에 장애 조치(failover) 그룹을 만듭니다.
각 인스턴스에 있는 모든 데이터베이스의 복제가 자동으로 시작됩니다. 자세한 내용은 장애 조치(failover) 그룹을 참조하세요.
준비 프로세스 모니터링
정기적으로 Get-AzSqlDatabaseInstanceFailoverGroup을 호출하여 원본에서 대상 인스턴스로의 데이터베이스의 복제를 모니터링할 수 있습니다. Get-AzSqlDatabaseInstanceFailoverGroup
의 출력 개체에는 ReplicationState에 대한 속성이 포함되어 있습니다.
- ReplicationState = CATCH_UP은 데이터베이스가 동기화되었으며 안전하게 장애 조치할 수 있음을 나타냅니다.
- ReplicationState = SEEDING은 데이터베이스가 아직 시드되지 않아 장애 조치(failover) 시도가 실패했음을 나타냅니다.
동기화 테스트
ReplicationState가 CATCH_UP
인 경우, 보조 엔드포인트 <fog-name>.secondary.<zone_id>.database.windows.net
을 사용하여 지역 보조에 연결하고 데이터베이스에 대한 모든 쿼리를 수행하여 연결, 적절한 보안 구성 및 데이터 복제를 보장합니다.
이동 시작
- 보조 엔드포인트
<fog-name>.secondary.<zone_id>.database.windows.net
을 사용하여 대상 관리되는 인스턴스에 연결합니다. - Switch-AzSqlDatabaseInstanceFailoverGroup을 사용하여 보조 관리되는 인스턴스를 전체 동기화를 사용하는 기본으로 전환합니다. 이 작업은 성공적으로 수행되거나 롤백됩니다.
- DNS CNAME 진입점이 대상 지역 IP 주소를 가리키는지 확인하기 위해
nslook up <fog-name>.secondary.<zone_id>.database.windows.net
을 사용하여 명령이 성공적으로 완료되었는지 확인합니다. 스위치 명령이 실패하면 CNAME은 업데이트되지 않습니다.
원본 관리되는 인스턴스 제거
이동이 완료되면 불필요한 요금을 방지하기 위해 원본 지역의 리소스를 제거합니다.
- Remove-AzSqlDatabaseInstanceFailoverGroup을 사용하여 장애 조치(failover) 그룹을 삭제합니다. 장애 조치(failover) 그룹 구성을 삭제하고 두 인스턴스 간의 지역 복제 링크를 종료합니다.
- Remove-AzSqlInstance를 사용하여 원본 관리되는 인스턴스를 삭제합니다.
- 리소스 그룹에서 가상 네트워크 및 보안 그룹과 같은 추가 리소스를 제거합니다.