개요
VPC 피어링은 VPC가 서로 통신하도록 구성하는 방식으로 작동합니다. 소스가 Cloud SQL 또는 Compute Engine의 동일한 Google Cloud 프로젝트에 있으면 대상이 소스와 직접 통신할 수 있습니다. 소스가 VPN (예: AWS 또는 자체 온프레미스 VPN) 내에 있는 경우 소스 VPN과 Google Cloud VPN이 서로 연동되도록 구성합니다. 자세한 내용은 VPN을 통해 VPC 연결을 참고하세요.VPC 체이닝은 지원되지 않습니다. 소스가 다른 Google Cloud 프로젝트에 있는 경우 공유 VPC 개요에서 VPC 피어링을 위해 여러 프로젝트의 리소스를 공통 VPC 네트워크에 연결하는 방법을 알아보세요.
Cloud SQL 대상 인스턴스가 사용할 VPC 네트워크의 비공개 서비스 연결에 할당된 전체 내부 IP 범위를 허용하도록 소스 데이터베이스 서버의 방화벽을 구성해야 합니다.
콘솔에서 내부 IP 범위를 찾으려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
사용할 VPC 네트워크를 선택합니다.
비공개 서비스 연결 탭을 선택합니다.
pg_hba.conf
파일의 복제 연결 섹션이나 소스 데이터베이스에 있는 AWS RDS의 보안 그룹 정의가 Cloud SQL 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"