Azure Database for PostgreSQL을 다른 지역으로 재배치
이 문서에서는 지역 쌍을 복제 및 지역 복원에 사용할 수 없는 지역에서 Azure Database for PostgreSQL, 단일 서버 및 유연한 서버에 대한 재배치 지침을 설명합니다.
기존 Azure 리소스를 한 지역에서 다른 지역으로 이동하려는 이유는 다양합니다. 다음을 수행하려고 할 수 있습니다.
- 새 Azure 지역 활용.
- 특정 지역에서만 사용할 수 있는 기능 또는 서비스 배포.
- 내부 정책 및 거버넌스 요구 사항 충족.
- 회사 인수 합병에 부합.
- 용량 계획 요구 사항 충족.
Azure Cosmos DB for PostgreSQL(이전의 Azure Database for PostgreSQL - 하이퍼스케일(Citus))을 재배치하는 방법을 알아보려면 Azure Cosmos DB for PostgreSQL의 읽기 복제본을 참조하세요.
네이티브 복제에서 지원하는 지역 쌍에 대한 개요는 지역 간 복제를 참조하세요.
필수 조건
필수 구성 요소는 데이터를 사용하여 다시 배포하는 경우에만 적용됩니다. 데이터 없이 데이터베이스를 이동하려면 준비로 건너뛸 수 있습니다.
- 한 지역에서 다른 지역으로 데이터를 사용하여 PostgreSQL을 재배치하려면 백업 및 복원 도구를 실행하기 위한 추가 컴퓨팅 리소스가 있어야 합니다. 이 가이드의 예제에서는 Ubuntu 20.04 LTS를 실행하는 Azure VM을 사용합니다. 컴퓨팅 리소스는 다음을 수행해야 합니다.
- 개인 네트워크 또는 방화벽 규칙에 포함하여 원본 서버와 대상 서버 모두에 대한 네트워크 액세스 권한을 갖습니다.
- 원본 또는 대상 지역에 위치해야 합니다.
- 가속화된 네트워킹을 사용합니다(사용 가능한 경우).
- 데이터베이스 콘텐츠는 중간 스토리지에 저장되지 않습니다. 논리적 백업 도구의 출력은 대상 서버로 직접 전송됩니다.
- Azure Database for PostgreSQL 인스턴스 디자인에 따라 재배치하기 전에 대상 지역에 다음 종속 리소스를 배포하고 구성해야 할 수 있습니다.
가동 중지 시간
발생할 수 있는 가동 중지 시간을 이해하려면 Azure용 클라우드 채택 프레임워크: 재배치 방법 선택을 참조하세요.
준비
시작하려면 Resource Manager 템플릿을 내보냅니다. 이 템플릿에는 Automation 네임스페이스를 설명하는 설정이 포함되어 있습니다.
Azure Portal에 로그인합니다.
모든 리소스를 선택한 다음 Automation 리소스를 선택합니다.
템플릿 내보내기를 선택합니다.
템플릿 내보내기 페이지에서 다운로드를 선택합니다.
포털에서 다운로드한 .zip 파일을 찾은 다음, 선택한 폴더에 파일 압축을 풉니다.
zip 파일에는 템플릿과 템플릿 배포 스크립트를 포함하는 .json 파일이 들어 있습니다.
데이터 없이 다시 배포
- 내보낸 템플릿 매개 변수를 대상 지역과 일치하도록 조정합니다.
Important
대상 서버는 원본 서버의 이름과 달라야 합니다. 새 서버를 가리키도록 클라이언트를 다시 구성해야 합니다.
- 템플릿을 새 지역에 다시 배포합니다. ARM 템플릿을 사용하여 Azure Database for PostgreSQL을 만드는 방법에 대한 예제는 빠른 시작: ARM 템플릿을 사용하여 Azure Database for PostgreSQL - 유연한 서버 만들기를 참조하세요.
데이터로 다시 배포
Azure Database for PostgreSQL에 대한 데이터 마이그레이션을 사용하여 다시 배포는 논리적 백업 및 복원을 기반으로 하며 네이티브 도구가 필요합니다. 따라서 복원하는 동안 눈에 띄는 가동 중지 시간이 발생할 수 있습니다.
팁
Azure Portal을 사용하여 Azure Database for PostgreSQL - 유연한 서버를 재배치할 수 있습니다. 단일 서버에 대한 복제를 수행하는 방법을 알아보려면 Azure Portal을 사용하여 Azure Database for PostgreSQL - 유연한 서버를 다른 지역으로 이동을 참조하세요.
- 내보낸 템플릿 매개 변수를 대상 지역과 일치하도록 조정합니다.
Important
대상 서버 이름은 원본 서버 이름과 달라야 합니다. 새 서버를 가리키도록 클라이언트를 다시 구성해야 합니다.
템플릿을 새 지역에 다시 배포합니다. ARM 템플릿을 사용하여 Azure Database for PostgreSQL을 만드는 방법에 대한 예제는 빠른 시작: ARM 템플릿을 사용하여 Azure Database for PostgreSQL - 유연한 서버 만들기를 참조하세요.
마이그레이션을 위해 프로비저닝된 계산 리소스에서 마이그레이션할 PostgreSQL 버전에 대한 PostgreSQL 클라이언트 도구를 설치합니다. 다음 예제에서는 Ubuntu 20.04 LTS를 실행하는 Azure VM에서 PostgreSQL 버전 13을 사용합니다.
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get install -y postgresql-client-13
Ubuntu에 PostgreSQL 구성 요소를 설치하는 방법에 대한 자세한 내용은 Linux 다운로드(Ubuntu)를 참조하세요.
다른 플랫폼의 경우 PostgreSQL 다운로드로 이동합니다.
(선택 사항) 원본 서버에서 추가 역할을 만든 경우 대상 서버에서 이를 만듭니다. 기존 역할 목록을 얻으려면 다음 쿼리를 사용합니다.
select * from pg_catalog.pg_roles where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication') order by rolename;
각 데이터베이스를 마이그레이션하려면 다음 단계를 수행합니다.
- 원본 서버에서 모든 데이터베이스 작업을 중지합니다.
- 다음 스크립트에서 자격 증명 정보, 원본 서버, 대상 서버 및 데이터베이스 이름을 바꿉니다.
export USER=admin_username export PGPASSWORD=admin_password export SOURCE=pgsql-arpp-source.postgres.database.azure.com export TARGET=pgsql-arpp-target.postgres.database.azure.com export DATABASE=database_name pg_dump -h $SOURCE -U $USER --create --exclude-schema=pg_catalog $DATABASE | psql -h $TARGET -U $USER postgres
데이터베이스를 마이그레이션하려면 스크립트를 실행합니다.
대상 서버를 가리키도록 클라이언트를 구성합니다.
애플리케이션에서 기능 테스트를 수행합니다.
- 서비스 엔드포인트가 대상 지역에 구성되지 않은 경우 IaC가 데이터베이스를 배포하지 못하도록
ignoreMissingVnetServiceEndpoint
플래그가False
로 설정되어 있는지 확인합니다.
- 서비스 엔드포인트가 대상 지역에 구성되지 않은 경우 IaC가 데이터베이스를 배포하지 못하도록