소스 및 대상 데이터베이스 비공개 IP 주소 간에 연결을 설정하여 비공개 네트워크를 통해 데이터를 이전할 수 있습니다. 다음 두 가지 방법 중 하나를 사용하여 대상 데이터베이스의 비공개 IP 주소를 구성할 수 있습니다. 비공개 서비스 액세스 또는 Private Service Connect를 사용하면 됩니다.
각 연결 방법에는 고유한 장단점이 있습니다. 시나리오에 가장 적합한 접근 방식을 선택해야 합니다. PostgreSQL용 AlloyDB의 비공개 서비스 액세스 및 Private Service Connect에 대한 자세한 내용은 PostgreSQL용 AlloyDB 문서의 비공개 IP 개요를 참고하세요.
VPC 피어링을 사용하여 연결 구성
VPC 피어링은 VPC가 서로 통신하도록 구성하여 작동합니다. 소스가 AlloyDB 또는 Compute Engine의 동일한 Google Cloud 프로젝트에 있는 경우 대상이 소스와 직접 통신할 수 있습니다. VPN으로 소스에 액세스할 수 있는 경우 VPN을 사용하여 서로 통신하도록 소스 네트워크와 Cloud VPN을 구성합니다. 자세한 내용은 VPN을 통해 VPC 연결을 참고하세요.VPC 연결은 지원되지 않습니다. 소스가 다른 Google Cloud 프로젝트에 있는 경우 공유 VPC 개요를 참고하여 VPC 피어링을 위해 여러 프로젝트의 리소스를 공통 VPC 네트워크에 연결하는 방법을 알아보세요.
AlloyDB 대상 인스턴스가 사용할 VPC 네트워크의 비공개 서비스 연결에 할당된 전체 내부 IP 범위를 허용하도록 소스 데이터베이스 서버의 방화벽을 구성해야 합니다.
콘솔에서 내부 IP 범위를 찾으려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
사용할 VPC 네트워크를 선택합니다.
비공개 서비스 연결 탭을 선택합니다.
pg_hba.conf
파일의 복제 연결 섹션이나 소스 데이터베이스에 있는 AWS RDS의 보안 그룹 정의가 AlloyDB VPC의 IP 주소 범위로부터 연결을 수락하도록 업데이트되어야 합니다.
VPC 피어링은 비공개 서비스 액세스를 사용하며, 이는 VPC 피어링을 사용하는 각 프로젝트에 대해 한 번 구성해야 합니다. private services access
를 설정한 후 마이그레이션 작업을 테스트하여 연결을 확인합니다.
Database Migration Service의 비공개 서비스 액세스 구성
Database Migration Service 인스턴스에 비공개 IP를 사용하는 경우 Database Migration Service 인스턴스가 있거나 Database Migration Service 인스턴스에 연결해야 하는 모든 Google Cloud 프로젝트는 비공개 서비스 액세스를 한 번만 구성하면 됩니다.
비공개 서비스 액세스를 설정하려면 compute.networkAdmin IAM 역할이 필요합니다. 네트워크에 비공개 서비스 액세스가 설정되면 인스턴스에서 비공개 IP를 사용하도록 구성할 때 compute.networkAdmin
IAM 역할이 더 이상 필요하지 않습니다.
비공개 서비스 액세스를 사용하려면 먼저 내부 IP 주소 범위를 할당한 다음 비공개 연결을 만들고 커스텀 경로를 내보내야 합니다.
할당된 범위는 로컬 VPC 네트워크에서 사용할 수 없는 예약된 CIDR 블록입니다. 비공개 연결을 만들 때 할당을 지정합니다. 비공개 연결은 VPC 네트워크와 기본 ('서비스 제작자') VPC 네트워크를 연결합니다.
비공개 연결을 만들 때 VPC 네트워크와 서비스 프로듀서 네트워크는 서브넷 경로만 교환합니다. 서비스 제공업체의 네트워크에서 VPC 네트워크의 커스텀 경로를 가져오고 온프레미스 네트워크에 트래픽을 올바르게 라우팅할 수 있도록 VPC 네트워크의 커스텀 경로를 내보내야 합니다.
피어링 구성은 다른 VPC 네트워크에 연결할 인텐트를 설정합니다. 내 네트워크와 다른 네트워크는 각 네트워크에 상대 네트워크에 대한 피어링 구성이 만들어질 때까지 연결되지 않습니다. 내 네트워크와 피어링할 상응하는 구성이 다른 네트워크에 있으면 피어링 상태가 두 네트워크 모두에서 ACTIVE로 변경되고 두 네트워크가 연결됩니다. 다른 네트워크에 일치하는 피어링 구성이 없으면 피어링 상태가 INACTIVE로 유지됩니다. 이는 내 네트워크와 다른 네트워크가 연결되지 않는다는 것을 나타냅니다.
두 네트워크가 연결되면 항상 서브넷 경로를 교환합니다. 정적 및 동적 커스텀 경로를 내보내도록 구성된 경우 피어링된 네트워크에서 두 경로를 모두 가져올 수 있습니다.
비공개 서비스 액세스 구성 프로세스는 두 부분으로 이루어집니다.
- IP 주소 범위 할당 이 범위에는 모든 인스턴스가 포함됩니다.
- VPC 네트워크에서 서비스 제작자 네트워크로의 비공개 연결 만들기
IP 주소 범위 할당
콘솔
- Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
- 사용할 VPC 네트워크를 선택합니다.
- 비공개 서비스 연결 탭을 선택합니다.
- 서비스에 할당된 IP 범위 탭을 선택합니다.
- IP 범위 할당을 클릭합니다.
할당된 범위의 이름에
google-managed-services-VPC_NETWORK_NAME
을 지정합니다. 여기서VPC_NETWORK_NAME
은 연결할 VPC 네트워크의 이름입니다(예:google-managed-services-default
). 설명은 선택사항입니다.할당을 클릭하여 할당된 범위를 만듭니다.
gcloud
다음 중 하나를 수행합니다.
주소 범위와 프리픽스 길이(서브넷 마스크)를 지정하려면
addresses
플래그와prefix-length
플래그를 사용합니다. 예를 들어 CIDR 블록192.168.0.0/16
을 할당하려면 주소에192.168.0.0
을 지정하고 프리픽스 길이에16
을 지정합니다.gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
프리픽스 길이(서브넷 마스크)만 지정하려면
prefix-length
플래그만 사용합니다. 주소 범위를 생략하면 Google Cloud가 VPC 네트워크에서 사용되지 않는 주소 범위를 자동으로 선택합니다. 다음 예시에서는 프리픽스 길이가16
비트인 사용되지 않는 IP 주소 범위를 선택합니다.gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
[VPC_NETWORK_NAME]
을 VPC 네트워크 이름(예: my-vpc-network
)으로 바꿉니다.
다음 예시에서는 VPC 네트워크 my-vpc-network
의 리소스가 비공개 IP를 사용하여 Database Migration Service 인스턴스에 연결하도록 허용하는 IP 범위를 할당합니다.
gcloud compute addresses create google-managed-services-my-vpc-network \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=my-vpc-network \ --project=my-project
비공개 연결 만들기
콘솔
- Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
- 사용할 VPC 네트워크를 선택합니다.
- 비공개 서비스 연결 탭을 선택합니다.
- 서비스에 대한 비공개 연결 탭을 선택합니다.
- 연결 만들기를 클릭하여 네트워크와 서비스 제작자 사이에 비공개 연결을 만듭니다.
- 지정된 할당으로는 다른 서비스 프로듀서가 사용하지 않는 하나 이상의 할당된 기존 범위를 선택한 후 확인을 클릭합니다.
- 연결을 클릭하여 연결을 만듭니다.
gcloud
비공개 연결을 만듭니다.
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-[VPC_NETWORK_NAME] \ --network=[VPC_NETWORK_NAME] \ --project=[PROJECT_ID]
[VPC_NETWORK_NAME]
을 VPC 네트워크의 이름으로,[PROJECT_ID]
를 VPC 네트워크가 포함된 프로젝트의 ID로 바꿉니다.이 명령어는 장기 실행 작업을 시작하고 작업 이름을 반환합니다.
작업이 성공했는지 확인합니다.
gcloud services vpc-peerings operations describe \ --name=[OPERATION_NAME]
[OPERATION_NAME]
을 이전 단계에서 반환된 작업 이름으로 바꿉니다.
비공개 연결을 만들 때 할당 범위를 2개 이상 지정할 수 있습니다. 예를 들어 할당 범위 하나가 소진되면 할당 범위를 추가로 지정할 수 있습니다. 서비스는 제공된 모든 범위의 IP 주소를 지정된 순서대로 사용합니다.
커스텀 경로 내보내기
기존 VPC 네트워크 피어링 연결을 업데이트하여 VPC 네트워크가 피어 VPC 네트워크에 커스텀 경로를 내보내는지 또는 피어 VPC 네트워크에서 가져오는지 여부를 변경합니다.
피어 네트워크가 커스텀 경로를 내보내는 경우에는 네트워크가 커스텀 경로를 가져오고, 가져오는 경우에는 피어 네트워크가 커스텀 경로를 수신합니다.
콘솔
- Google Cloud 콘솔에서 VPC 네트워크 피어링 페이지로 이동합니다.
VPC 네트워크 피어링 페이지로 이동 - 업데이트할 피어링 연결을 선택합니다.
- 수정을 클릭합니다.
- 커스텀 경로 가져오기 또는 커스텀 경로 내보내기를 선택하거나 선택 취소하여 커스텀 경로 설정을 업데이트합니다.
- 저장을 클릭합니다.
gcloud
피어링 연결을 업데이트하여 커스텀 경로에 대한 가져오기 또는 내보내기 설정을 변경합니다.
gcloud compute networks peerings update [PEERING-NAME] \ --network=[MY-LOCAL-NETWORK] \ [--[no-]import-custom-routes] \ [--[no-]export-custom-routes]
roles/servicenetworking.serviceAgent
역할 부여
gcloud beta services identity create \
--service=servicenetworking.googleapis.com \
--project=project-id
gcloud projects add-iam-policy-binding project-id \
--member="service-account-prefix@service-networking.iam.gserviceaccount.com" \
--role="roles/servicenetworking.serviceAgent"
Private Service Connect 인터페이스를 사용하여 연결 구성
동종 PostgreSQL용 AlloyDB 마이그레이션의 경우 PostgreSQL용 AlloyDB는 비공개 서비스 연결 인터페이스를 사용하여 비공개 네트워크를 통해 연결을 설정할 수 있습니다. 이 연결 방법은 기존 인스턴스로 이전하는 경우에만 사용할 수 있습니다.
Private Service Connect 인터페이스를 사용하려면 다음을 수행하세요.
Private Service Connect가 사용 설정된 PostgreSQL용 AlloyDB 클러스터와 해당 클러스터의 기본 인스턴스를 만듭니다. PostgreSQL용 AlloyDB 문서의 Private Service Connect 사용 설정을 참고하세요.
인스턴스에서 아웃바운드 연결을 위해 Private Service Connect를 구성합니다. PostgreSQL용 AlloyDB 문서의 아웃바운드 연결 구성을 참고하세요.
네트워크 연결을 만드는 VPC 네트워크가 소스 데이터베이스의 비공개 IP 주소에 도달할 수 있는 네트워크인지 확인합니다.
나중에 마이그레이션 작업을 만들 때 연결 방법으로 PSC 인터페이스를 선택합니다.