데이터 플랫폼으로 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간 연결을 해볼 것이다.

아키텍처

AWS 환경 구성

빠르게 생성하기 위해 VPC 마법사를 통해 생성했다

  • VPC CIDR : 10.128.0.0/20
  • Public Subnet CIDR : 10.128.0.0/24
  • Private Subnet CIDR : 10.128.1.0/24
  • NAT 생성

Public Subnet에 Bastion Server, Private Subnet에 Private EC2 하나씩 생성 (Amazon Liux 2)

  • Bastion Server 보안그룹 : SSH 허용
  • Private EC2 보안그룹 : Bastion Server 보안 그룹으로부터의 SSH 허용

아래와 같이 접근이 된다. 여기서 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 삭제

GCP 환경 구성

VPC 생성
Subnet CIDR : 10.146.0.0/24
Private Google Access : 허용
동적 라우팅 : 전역

GCP Cloud Router 생성

이제 AWS와 GCP간 VPN을 설정할 것이다. 여기선 HA VPN으로 구성해볼 것이다.

위에서 만든 VPC, 리전을 선택해준다. Google ASN은 65000으로 설정

GCP VPN Gateway 생성

마찬가지로 설정 후 만들고 계속하기를 클릭하면 GCP 인터페이스 IP가 두 개 나온다. 이 IP를 기억해두자.

AWS Virtual Private Gateway 생성

기존에 만든 VPC에 연결

Customer Gateway 생성

아래 사진에서 IP 주소는 GCP 인터페이스 IP를 뜻하고 HA 구성이므로 두 개의 인터페이스가 제공됐기 때문에 Customer Gateway도 2개 생성하여 각각 IP 주소를 입력해준다.

Site-to-Site VPN 생성

마찬가지로 아래 사진과 같은 형식으로 2개 생성

두 VPN 연결에 대한 구성을 다운로드

GCP Peer VPN Gateway 생성

AWS에서 다운 받은 구성을 토대로 Peer VPN Gateway를 생성

다운받은 2개의 구성 파일의 Outside IP Address > Virtal Private Gateway IP 주소를 차례로 입력.

VPN 터널 구성

다운받은 2개의 구성 파일의 Pre-Shared Key를 차례로 입력

IKE 사전 공유 키에 입력

BGP 세션 구성

다운받은 2개의 구성 파일의 Inside IP Address 입력

  • Customer Gateway = Cloud Router BGP IPv4 주소
  • Virtual Private Gateway = BGP 피어 IPv4 주소

피어 ASN은 64512로 설정

AWS 라우팅 전파

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

profile
Solutions Architect (rlaalsgud97@gmail.com)

0개의 댓글