개요
Database Migration Service에서 마이그레이션을 만들려면 소스 인스턴스와 AlloyDB 대상 인스턴스 간에 연결을 설정해야 합니다. 지원되는 방법은 다양합니다. 특정 워크로드에 가장 적합한 방법을 선택합니다.네트워킹 방법 | 설명 | 장점 | 단점 |
---|---|---|---|
IP 허용 목록 |
이 방법은 Cloud SQL 인스턴스의 발신 IP에서 들어오는 연결을 수락하도록 소스 데이터베이스 서버를 구성하는 방식으로 작동합니다. 이 방법을 선택하면 Database Migration Service에서 마이그레이션 생성 중에 설정 프로세스를 안내합니다. |
|
|
클라우드 호스팅 VM을 통한 프록시 - 역방향 SSH 터널 |
보안 역방향 SSH 터널을 통해 대상에서 소스로의 연결을 설정합니다. Google Cloud 플랫폼 프로젝트에 방화벽 호스트 VM과 소스에 연결된 머신(예: 네트워크의 노트북)이 필요합니다. Database Migration Service는 마이그레이션 생성 시 필요한 정보를 수집하고 이를 모두 설정하기 위한 스크립트를 자동으로 생성합니다. |
|
|
클라우드 호스팅 VM을 통한 프록시 - TCP |
클라우드 호스팅 VM을 통해 TCP 프록시를 사용하여 대상에서 소스로의 연결을 설정합니다. Database Migration Service는 마이그레이션 생성 시 필요한 정보를 수집하고 이를 모두 설정하기 위한 스크립트를 자동으로 생성합니다. 소스가 이전 네트워크 아키텍처에 있는 AlloyDB 마이그레이션과 관련이 있습니다. |
|
|
VPC 피어링 |
이 방법은 VPC가 서로 통신하도록 구성하는 방식으로 작동합니다. |
|
|
연결 제한사항
PostgreSQL에서 AlloyDB로의 연결에는 다음과 같은 제한사항이 있습니다.
- AlloyDB는 비공개 서비스 액세스를 사용하여 비공개 연결을 지원합니다. 클러스터에 공개 IP 주소를 할당하는 것은 지원되지 않습니다.
- 클러스터를 만든 후에는 AlloyDB 클러스터가 피어링된 VPC를 변경할 수 없습니다.
- AlloyDB는 내부적으로 VPC 피어링을 사용하는 비공개 서비스 액세스를 사용하므로 전달 피어링은 지원되지 않습니다. AlloyDB 클러스터는 피어링된 VPC의 내부 IP 주소에만 연결할 수 있습니다. 다른 VPC에 연결하려면 중간 프록시를 사용해야 합니다. 자세한 내용은 다음 섹션을 참고하세요.
일반적인 연결 시나리오 및 해결 방법
이전 제작자 네트워크 아키텍처의 Cloud SQL 인스턴스에서 마이그레이션
기존 프로듀서 네트워크 아키텍처의 PostgreSQL용 Cloud SQL 인스턴스에서 마이그레이션하려면 중간 프록시를 사용하여 연결을 설정해야 합니다. 소스 Cloud SQL 인스턴스와 AlloyDB 대상 간에 직접 연결할 수 없기 때문입니다. 자체 프록시 솔루션을 설정할 수 있지만 Database Migration Service에서 제공하는 자동 생성 스크립트로 TCP 프록시 VM을 설정하는 것이 좋습니다. TCP 프록시 연결 방법을 참고하세요.
동일한 프로젝트에 있지만 다른 VPC에 있는 소스에서 이전 Google Cloud
AlloyDB 클러스터가 있는 VPC는 클러스터를 만든 후에는 변경할 수 없으므로 다음 옵션 중 하나를 선택할 수 있습니다.
소스 인스턴스의 VPC를 대상 인스턴스의 VPC와 일치하도록 변경하는 것이 좋습니다. 예를 들어 Cloud SQL 인스턴스를 AlloyDB로 이전하려면 AlloyDB VPC와 일치하도록 Cloud SQL VPC를 업데이트합니다.
소스 인스턴스의 VPC를 대상 인스턴스의 VPC와 일치하도록 변경할 수 없는 경우 중간 가상 머신 (VM)을 프록시로 사용합니다. 자체 프록시 솔루션을 설정할 수 있지만 TCP 프록시 연결 방법을 사용하는 것이 좋습니다. 데이터베이스 이전 서비스가 Google Cloud 콘솔에서 스크립트를 생성한 후 TCP 프록시 인스턴스를 만드는 명령어에 다른 네트워크 인터페이스를 추가하고 소스 인스턴스의 VPC와 일치하도록 구성합니다. 이렇게 하면 프록시가 소스 VPC와 대상 VPC 모두에 연결됩니다.
다른 네트워크 인터페이스를 추가하려면 스크립트에 표시되는
gcloud compute instances create-with-container
명령어에--network-interface network=SOURCE_NETWORK_NAME
를 추가합니다.프록시를 만드는 명령어 예시:
gcloud compute instances create-with-container … \ --network-interface subnet=DESTINATION-SUBNET-NAME \ --network-interface network=SOURCE-NETWORK-NAME
다음을 바꿉니다.
- DESTINATION-SUBNET-NAME: 대상 서브넷의 이름입니다.
- SOURCE-NETWORK-NAME: 소스 네트워크의 이름입니다.
자세한 내용은 다중 네트워크 인터페이스가 있는 VM 인스턴스 만들기를 참고하세요.
공개 인터넷을 통한 이전
이 방법은 온프레미스 인스턴스 또는 Google Cloud에 기존 VPN 또는 상호 연결이 없는 다른 클라우드 제공업체에서 이전할 때 권장됩니다. 이 방법을 사용하려면 아웃바운드 공개 IP 주소를 사용하도록 대상 AlloyDB 클러스터를 구성해야 합니다.
다른 프로젝트의 소스에서 이전 Google Cloud
다른 프로젝트의 소스에서 이전하려면 Google Cloud 인터넷을 통해 이전하거나 내부 연결의 경우 공유 VPC를 사용해야 합니다. Google Cloud 다음 옵션 중 하나를 선택합니다.
프록시 없이 공유 VPC를 사용합니다. AlloyDB 클러스터를 공유 VPC에 배치하려면 클러스터를 만들 때 소스가 있는 VPC를 선택하기만 하면 됩니다. 이렇게 하면 소스와 대상이 직접 연결됩니다.
프록시와 함께 공유 VPC를 사용합니다. AlloyDB 클러스터를 공유 VPC에 두지 않으려면 중간 프록시를 사용해야 합니다. 자체 프록시 솔루션을 설정할 수 있지만 TCP 프록시 연결 방법을 사용하는 것이 좋습니다. 이 가이드라인에 따라 공유 VPC에 추가 네트워크 인터페이스가 있는 TCP 프록시를 만듭니다.
대상이 소스의 네트워크에 연결되지 않도록 하면서 이전
이 방법은 네트워크의 방화벽을 수신 트래픽에 열어야 하는 온프레미스 네트워크에서 이전할 때 권장됩니다. Google Cloud 이 시나리오에서는 Compute Engine 인스턴스를 중간 프록시로 사용하여 리버스 프록시를 설정할 수 있습니다. 역방향 SSH 연결 방법을 사용하는 것이 좋습니다.