데이터 플랫폼으로 GCP를 선택하는 경우 온프레미스 or 타 클라우드에서 Cloud Storage 및 BigQuery에 사설망을 통해 접근하고자 할 수 있다.
이때 VPN을 사용할 수 있는데 VPN은 VPC끼리의 Private 접근을 위한 것.
Cloud Storage, BigQuery는 VPC에 종속되어 있는 서비스가 아니라 프로젝트에 종속된 서비스이다.
이를 위한 Private Service Connect라는 서비스가 있다.
Private Service Connect는 Google Cloud에서 managed하는 서비스들에 엔드포인트를 하나 뚫어서 Private하게 접근할 수 있도록 해주는 서비스다. 이 서비스를 사용하여 AWS(Private EC2 사용, IDC로 가정해도 무방)와 GCP간 연결을 해볼 것이다.
빠르게 생성하기 위해 VPC 마법사를 통해 생성했다
Public Subnet에 Bastion Server, Private Subnet에 Private EC2 하나씩 생성 (Amazon Liux 2)
아래와 같이 접근이 된다. 여기서 gcloud 명령어를 설치해줄 것이다.
VPN 및 Private Service Connect 설정을 마치면 gcloud 명령어를 통해 접근할 예정
gcloud Install
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-426.0.0-linux-x86_64.tar.gz
tar -xf google-cloud-cli-426.0.0-linux-x86_64.tar.gz
./google-cloud-sdk/install.sh
# 새 탭에서 진행. 사용할 GCP 계정과 연결
./google-cloud-sdk/bin/gcloud init
추가로 구성을 모두 마친 뒤 테스트하기 위한 dns툴을 미리 설치해두자.
sudo apt-get install dnsutils
테스트를 위해 개인적으로 더 편한 방법인 Bastion을 놓고 해당 서버 안에 키를 두고 Private EC2에 접근했지만 가능하다면 SSM 사용을 권장한다.
NAT와 EIP 삭제
VPC 생성
Subnet CIDR : 10.146.0.0/24
Private Google Access : 허용
동적 라우팅 : 전역
이제 AWS와 GCP간 VPN을 설정할 것이다. 여기선 HA VPN으로 구성해볼 것이다.
위에서 만든 VPC, 리전을 선택해준다. Google ASN은 65000으로 설정
마찬가지로 설정 후 만들고 계속하기를 클릭하면 GCP 인터페이스 IP가 두 개 나온다. 이 IP를 기억해두자.
기존에 만든 VPC에 연결
아래 사진에서 IP 주소는 GCP 인터페이스 IP를 뜻하고 HA 구성이므로 두 개의 인터페이스가 제공됐기 때문에 Customer Gateway도 2개 생성하여 각각 IP 주소를 입력해준다.
마찬가지로 아래 사진과 같은 형식으로 2개 생성
두 VPN 연결에 대한 구성을 다운로드
AWS에서 다운 받은 구성을 토대로 Peer VPN Gateway를 생성
다운받은 2개의 구성 파일의 Outside IP Address > Virtal Private Gateway IP 주소를 차례로 입력.
다운받은 2개의 구성 파일의 Pre-Shared Key를 차례로 입력
IKE 사전 공유 키에 입력
다운받은 2개의 구성 파일의 Inside IP Address 입력
피어 ASN은 64512로 설정
VPN을 연결된 VPN의 Private Subnet에 라우팅 전파
[Cloud Storage, BigQuery Private Access 참고]
https://dev.classmethod.jp/articles/access-from-ec2-to-bigquery-via-vpn-using-psc-part3/#toc-17