이 페이지에서는 Database Migration Service의 비공개 VPC 피어링 네트워크 연결 방법을 사용하여 Cloud SQL Enterprise 버전 인스턴스를 Cloud SQL Enterprise Plus 버전으로 업그레이드하는 방법을 설명합니다. Database Migration Service가 새 Cloud SQL 인스턴스를 만들고 이 인스턴스로 데이터를 마이그레이션합니다.
개요
Cloud SQL Enterprise Plus 버전은 최대 쓰기 성능이 필요한 애플리케이션에 적합합니다. 이러한 개선사항에 관한 자세한 내용은 성능 개선사항을 참조하세요.
이러한 기존 Cloud SQL Enterprise 버전 인스턴스 개선사항을 사용 설정하려면 Database Migration Service를 사용하여 Cloud SQL Enterprise Plus 버전으로 업그레이드해야 합니다.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- Database Migration Service API를 사용 설정합니다.
- 사용자 계정에 데이터베이스 마이그레이션 관리자 역할이 할당되었는지 확인합니다.
요구사항
Database Migration Service는 다양한 소스 데이터베이스 옵션과 네트워크 연결 방법을 제공합니다. 소스마다 더 효과적인 연결 방법이 있습니다. 이 페이지에서는 네트워크를 구성하여 인바운드 방화벽 규칙을 추가할 수 있는 환경에서 Cloud SQL Enterprise 버전 인스턴스를 사용하고 있다고 가정합니다. 여기에서는 각 사용자 환경의 세부사항을 알 수 없기 때문에 네트워킹 구성과 관련해서 세부 단계를 제공할 수 없습니다.
소스 인스턴스 구성
소스 Cloud SQL Enterprise 버전 인스턴스를 구성하려면 다음 단계를 완료합니다.
- 소스 인스턴스에
postgres
데이터베이스가 없는 경우 데이터베이스를 만듭니다. 자세한 내용은 Cloud SQL 인스턴스에서 데이터베이스 만들기를 참조하세요. - 소스 인스턴스의 데이터베이스에
pglogical
패키지를 설치합니다. 패키지가shared_preload_libraries
변수에 포함되어 있어야 합니다. 자세한 내용은 소스 데이터베이스 구성을 참조하세요. - 소스 인스턴스의 데이터베이스에 논리 복제 및 디코딩을 사용 설정합니다. 자세한 내용은 소스 데이터베이스에 논리 복제 및 디코딩 사용 설정을 참조하세요.
소스 데이터베이스 구성
template0
및 template1
데이터베이스 외에도 Database Migration Service는 소스 Cloud SQL Enterprise 버전 인스턴스의 다른 모든 데이터베이스를 마이그레이션합니다.
위에 언급되지 않은 소스 인스턴스의 각 데이터베이스에서 다음 단계를 완료합니다.
데이터베이스에
pglogical
확장 프로그램을 설치하려면CREATE EXTENSION IF NOT EXISTS pglogical
명령어를 실행합니다.기본 키가 없는 테이블의 경우
UPDATE
및DELETE
문을 수동으로 마이그레이션합니다.마이그레이션된 각 데이터베이스에 이러한 권한을 설정하려면 사용자를 만들거나 기존 사용자의 권한을 설정합니다. 이 사용자를 사용하여 소스 인스턴스에 연결하고 연결 프로필 페이지에서 이를 사용자로 구성합니다. 이 사용자는 마이그레이션된 각 데이터베이스와 기본
postgres
데이터베이스에 대한 특정 권한이 있어야 합니다.이러한 권한을 설정하려면 인스턴스에 연결하고 다음 명령어를 실행하세요.
GRANT USAGE on SCHEMA SCHEMA to USER
: 마이그레이션할 각 데이터베이스의 모든 스키마에서 실행(정보 스키마 및pg_
로 시작하는 스키마 제외)GRANT USAGE on SCHEMA pglogical to PUBLIC;
: 마이그레이션할 각 데이터베이스에서 실행GRANT SELECT on ALL TABLES in SCHEMA pglogical to USER
: 소스 데이터베이스에서 복제 정보를 가져오기 위해 모든 데이터베이스에서 실행GRANT SELECT on ALL TABLES in SCHEMA SCHEMA to USER
: 마이그레이션할 각 데이터베이스의 모든 스키마에서 실행(정보 스키마 및pg_
로 시작하는 스키마 제외)GRANT SELECT on ALL SEQUENCES in SCHEMA SCHEMA to USER
: 마이그레이션할 각 데이터베이스의 모든 스키마에서 실행(정보 스키마 및pg_
로 시작하는 스키마 제외)ALTER USER USER with REPLICATION role
소스 데이터베이스에 논리 복제 및 디코딩 사용 설정
cloudsql.logical_decoding
및 cloudsql.enable_pglogical
플래그를 On
으로 설정하여 소스 Cloud SQL Enterprise 버전 인스턴스의 데이터베이스에 논리 복제 및 디코딩을 사용 설정합니다. 이 플래그에 대한 자세한 내용은 데이터베이스 플래그 구성을 참조하세요.
이 플래그를 모두 사용 설정하려면 다음 단계를 완료합니다.
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 소스 인스턴스를 클릭합니다.
- 수정을 클릭합니다.
- 인스턴스 맞춤설정 섹션에서 구성 옵션 표시 메뉴가 나타나면 클릭합니다.
플래그 섹션을 펼칩니다.
cloudsql.logical_decoding
및cloudsql.enable_pglogical
플래그를 설정하려면 다음 단계를 완료하세요.- 데이터베이스 플래그 추가를 클릭합니다.
- 드롭다운 메뉴에서
cloudsql.logical_decoding
플래그를 선택합니다. - 이 플래그 값을
On
으로 설정합니다. - 완료를 클릭합니다.
cloudsql.enable_pglogical
플래그에도 이 단계를 반복합니다.
저장을 클릭합니다.
변경사항을 적용하려면 다시 시작 대화상자에서 저장 및 다시 시작을 클릭합니다. Cloud SQL에서 플래그에 적용된 구성 변경사항이 적용될 수 있도록 소스 인스턴스를 다시 시작합니다.
- 구성 창의 데이터베이스 플래그 섹션의 변경사항을 확인합니다.
소스 인스턴스에서 정보 가져오기
소스 Cloud SQL Enterprise 버전 인스턴스를 업그레이드하려면 다음 정보를 가져와야 합니다.
- 인스턴스의 비공개 IP 주소. Database Migration Service에서 연결 프로필을 만들 때 이 IP 주소를 사용합니다.
- Cloud SQL Enterprise Plus 버전 대상 인스턴스가 Cloud SQL Enterprise 버전 소스 인스턴스와 직접 통신할 수 있도록 지원하는 VPC 네트워크의 이름. Database Migration Service에서 마이그레이션 작업을 만들 때 이 VPC 네트워크를 사용합니다.
소스 Cloud SQL Enterprise 버전 인스턴스에서 정보를 가져오려면 다음 단계를 완료합니다.
Google Cloud 콘솔에서 SQL 인스턴스 페이지로 이동합니다.
- 소스 인스턴스를 클릭합니다.
- 이 인스턴스에 연결 섹션에 있는 비공개 IP 주소 필드에서 클립보드에 복사를 클릭합니다.
- 페이지 상단에서 수정을 클릭합니다.
- 연결 섹션을 펼칩니다.
- 연결된 네트워킹 섹션에서 네트워크 필드에 표시되는 VPC 네트워크 이름을 기록해 둡니다.
연결 프로필 만들기
연결 프로필에는 소스 Cloud SQL Enterprise 버전 데이터베이스에 대한 정보가 포함됩니다. Database Migration Service는 연결 프로필의 정보를 사용해서 소스 데이터베이스의 데이터를 대상 Cloud SQL Enterprise Plus 버전 인스턴스로 마이그레이션합니다.
연결 프로필을 만들려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 Database Migration Service의 연결 프로필 페이지로 이동합니다.
프로필 만들기를 클릭합니다.
데이터베이스 엔진 드롭다운 목록에서 PostgreSQL용 Cloud SQL을 선택합니다.
연결 프로필 이름 필드에 소스 데이터베이스의 연결 프로필 이름을 입력합니다(예:
My Connection Profile
).연결 프로필을 저장하려는 리전을 선택합니다.
Cloud SQL 인스턴스 드롭다운 목록에서 Cloud SQL Enterprise 버전 인스턴스 이름을 선택합니다.
호스트 이름 또는 IP 주소 필드에서 소스 Cloud SQL Enterprise 버전 인스턴스에서 정보 가져오기에서 복사한 비공개 IP 주소로 값을 바꿉니다.
소스 인스턴스에 인증하려면 사용자 이름과 비밀번호를 입력합니다. 그런 다음 계속을 클릭합니다.
데이터를 암호화하려면 소스 데이터베이스와 대상 데이터베이스 간의 연결에 SSL/TLS 암호화를 사용 설정합니다. 그렇지 않으면 기본값인 None을 유지합니다.
계속을 클릭합니다.
연결 테스트 드롭다운 메뉴에서 정의되지 않음을 선택합니다.
만들기를 클릭합니다.
마이그레이션 작업 만들기
Database Migration Service는 마이그레이션 작업을 사용하여 소스 Cloud SQL Enterprise 버전 데이터베이스 인스턴스에서 대상 Cloud SQL Enterprise Plus 버전 인스턴스로 데이터를 마이그레이션합니다.
마이그레이션 작업 만들기에는 다음 단계가 포함됩니다.
- 작업에 대한 설정을 정의합니다.
- 소스 Cloud SQL Enterprise 버전 데이터베이스에 대해 만든 연결 프로필을 선택합니다. 이 프로필이 소스 연결 프로필로 사용됩니다.
- 대상 Cloud SQL Enterprise Plus 버전 인스턴스의 설정을 정의합니다.
- 소스 및 대상 데이터베이스 인스턴스 간의 연결을 설정합니다.
- 마이그레이션 작업을 테스트하여 작업에 대해 제공한 연결 정보가 유효한지 확인합니다.
마이그레이션 작업 설정 정의
Google Cloud 콘솔에서 Database Migration Service의 마이그레이션 작업 페이지로 이동합니다.
마이그레이션 작업 만들기를 클릭합니다.
마이그레이션 작업 이름 필드에 마이그레이션 작업의 이름(예:
My Migration Job
)을 입력합니다.소스 데이터베이스 엔진 드롭다운 목록에서 PostgreSQL용 Cloud SQL을 선택합니다.
대상 데이터베이스 엔진 드롭다운 목록에서 PostgreSQL용 Cloud SQL을 선택합니다.
Cloud SQL Enterprise Plus 버전 인스턴스가 생성되는 대상 리전을 선택합니다.
소스 Cloud SQL Enterprise 버전 데이터베이스에서 진행 중인 변경사항을 대상 Cloud SQL Enterprise Plus 버전 인스턴스로 마이그레이션하려는 경우 마이그레이션 작업 유형 드롭다운 목록에서 지속적을 선택합니다.
마이그레이션 작업에 맞게 환경을 준비해야 하는 방법이 자동으로 반영되도록 생성된 필수 기본 요건을 검토합니다. 이러한 기본 요건에는 소스 Cloud SQL Enterprise 버전 데이터베이스를 구성하는 방법과 대상 Cloud SQL Enterprise Plus 버전 인스턴스에 연결하는 방법이 포함될 수 있습니다.
이 단계에서 이러한 기본 요건을 완료하는 것이 좋지만, 마이그레이션 작업을 테스트하거나 시작하기 전 언제라도 이를 완료할 수 있습니다.
저장하고 계속하기를 클릭합니다.
소스 연결 프로필 정보 지정
소스 연결 프로필 선택 드롭다운 목록에서 자신이 만든 연결 프로필을 선택합니다.
저장하고 계속하기를 클릭합니다.
대상 Cloud SQL Enterprise Plus 버전 인스턴스 설정 정의
비밀번호 필드에 대상 Cloud SQL Enterprise Plus 버전 인스턴스의 영숫자 비밀번호를 입력합니다. 이는 인스턴스의
postgres
관리자 계정 비밀번호입니다.데이터베이스 버전 드롭다운 목록에서 지정된 데이터베이스 엔진에 지원되는 Cloud SQL 버전 목록의 대상 인스턴스를 선택합니다.
Enterprise Plus를 선택합니다.
리전 및 영역 선택 섹션에서 새 Cloud SQL Enterprise Plus 버전 인스턴스에 원하는 Google Cloud 영역을 선택하거나 자동 선택으로 둡니다.
비공개 IP 체크박스를 선택합니다.
VPC 드롭다운 목록에서 소스 Cloud SQL Enterprise 버전 인스턴스에서 정보 가져오기에서 기록한 VPC 네트워크를 선택합니다.
Cloud SQL Enterprise Plus 버전 인스턴스의 머신 형태를 선택합니다. 디스크 크기는 소스 데이터베이스 크기보다 크거나 같아야 합니다.
Cloud SQL 인스턴스의 스토리지 유형과 스토리지 용량을 정의합니다.
새 인스턴스를 만들려면 만들기 및 계속을 클릭합니다.
대화상자가 나타나면 대상 만들기 및 계속을 클릭합니다. 인스턴스를 만드는 데 몇 분 정도 걸릴 수 있습니다.
연결 설정
- 소스 Cloud SQL Enterprise 버전과 대상 Cloud SQL Enterprise Plus 버전 데이터베이스 간에 연결을 설정하는 데 사용할 방법을 선택합니다. 이 절차에서는 연결 방법 드롭다운 목록을 사용하여 소스 및 대상 위치에서 비공개 IP 사용을 선택합니다.
- VPC 드롭다운 목록에서 소스 Cloud SQL Enterprise 버전 인스턴스가 있는 VPC 네트워크를 선택합니다. 이 소스는 소스 Cloud SQL Enterprise 버전 인스턴스에서 정보 가져오기에서 기록한 VPC 네트워크입니다.
- 구성 및 계속을 클릭합니다.
마이그레이션 작업 테스트, 만들기, 시작
마이그레이션 작업에 선택한 설정을 검토합니다.
소스가 올바르게 구성되었고 소스 Cloud SQL Enterprise 버전 및 대상 Cloud SQL Enterprise Plus 버전 인스턴스가 서로 통신할 수 있으며 마이그레이션 작업이 유효한지 확인합니다.
작업 테스트를 클릭합니다.
Your migration job test was successful!
상태가 표시되는지 확인합니다.
테스트에 실패하면 흐름의 적절한 부분에서 문제를 해결한 후 다시 테스트할 수 있습니다.
마이그레이션 작업을 만들고 즉시 시작하려면 작업 만들기 및 시작을 클릭합니다.
대화상자가 표시되면 만들기 및 시작을 클릭합니다.
마이그레이션 작업 페이지에서 마이그레이션 작업의 상태가
Starting
인지 확인합니다.몇 분 후에 상태가
Running
으로 변경되는지 확인합니다.
마이그레이션 작업 확인
Database Migration Service가 마이그레이션 작업을 사용하여 소스 Cloud SQL Enterprise 버전 데이터베이스 인스턴스에서 대상 Cloud SQL Enterprise Plus 버전 데이터베이스 인스턴스로 데이터를 마이그레이션했는지 확인하려면 다음 단계를 완료합니다.
Google Cloud 콘솔에서 SQL 인스턴스 페이지로 이동합니다.
마이그레이션 작업의 읽기 복제 항목을 클릭합니다.
- 검색 필드 옆에 표시되는 Cloud Shell 활성화 아이콘을 클릭합니다.
프롬프트에서 대상 Cloud SQL Enterprise Plus 버전 데이터베이스 인스턴스에 연결하도록
gcloud sql connect
명령어를 사용합니다.gcloud sql connect DESTINATION_INSTANCE_NAME --user=postgres
DESTINATION_INSTANCE_NAME을 대상 Cloud SQL Enterprise Plus 버전 인스턴스 이름으로 바꿉니다.
- 선택사항: Cloud Shell 승인 대화상자가 표시되면 승인을 클릭합니다.
- 비밀번호 입력 프롬프트에서 대상 Cloud SQL Enterprise Plus 버전 인스턴스 설정 정의에서 제공한 비밀번호를 입력합니다.
- postgres 프롬프트에서 데이터베이스를 나열하고 소스 Cloud SQL Enterprise 버전 데이터베이스 인스턴스가 표시되는지 확인하려면
\list
를 입력합니다. - postgres 프롬프트에서 이 데이터베이스 인스턴스와 연결된 테이블을 보려면
\connect SOURCE_DB_NAME
를 입력합니다. 프롬프트 이름이postgres
에서 SOURCE_DB_NAME으로 변경됩니다. - SOURCE_DB_NAME 프롬프트에서 이 인스턴스의 테이블을 보려면
\dt
를 입력합니다. - SOURCE_DB_NAME 프롬프트에서 이 사용자에게 이 인스턴스의 테이블에 있는 데이터에 액세스할 수 있는 권한을 부여하려면
GRANT cloudsqlexternalsync to USER;
를 입력합니다.USER를 대상 Cloud SQL Enterprise Plus 버전 데이터베이스 인스턴스에 연결하는 데 사용한 사용자 이름으로 바꿉니다.
- SOURCE_DB_NAME 프롬프트에서 소스 Cloud SQL Enterprise 버전 데이터베이스 인스턴스의 테이블에서 복제된 정보를 보려면
SELECT * from TABLE_NAME;
을 입력합니다. - 테이블에 올바른 정보가 표시되는지 확인합니다.
마이그레이션 작업 승격
마이그레이션 작업을 승격하면 기본 데이터베이스가 소스 Cloud SQL Enterprise 버전 데이터베이스 인스턴스에서 대상 Cloud SQL Enterprise Plus 버전 데이터베이스 인스턴스로 바뀝니다.
마이그레이션 작업을 승격하려면 다음 단계를 완료합니다.
마이그레이션 작업 페이지로 돌아갑니다.
승격할 마이그레이션 작업을 클릭합니다. 마이그레이션 작업 세부정보 페이지가 표시됩니다.
소스 Cloud SQL Enterprise 버전 데이터베이스에 대한 모든 쓰기를 중지합니다.
복제 지연이 최소인지 확인합니다.
승격할 마이그레이션 작업을 클릭합니다. 이 작업의 상태는
Running
입니다.마이그레이션 작업을 승격하려면 승격을 클릭합니다.
대화상자가 나타나면 승격을 클릭합니다.
마이그레이션 작업의 상태가
Promote in progress
인지 확인합니다. 몇 분 후에 상태가Completed
로 변경되는지 확인합니다.
새 Cloud SQL Enterprise Plus 버전 데이터베이스 인스턴스를 사용할 준비가 되었습니다.
삭제
이 페이지에서 사용한 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 마이그레이션 작업, 연결 프로필, 소스 Cloud SQL Enterprise 버전 인스턴스, 프로젝트가 필요하지 않은 경우 Google Cloud 콘솔을 사용하여 이를 삭제합니다.
다음 단계
- Cloud SQL Enterprise Plus 버전의 주요 기능 자세히 알아보기
- Cloud SQL Enterprise Plus 버전의 성능 개선사항 자세히 알아보기
- Cloud SQL Enterprise Plus 버전의 리전 지원 자세히 알아보기
- Cloud SQL Enterprise Plus 버전의 가격 책정 자세히 알아보기