원본 작성일: 2023년 9월

이 글은 2023년에 실무에서 AWS-GCP 간 HA VPN을 구성하면서 정리한 기록이다. 콘솔 UI가 현재와 다를 수 있지만, 구성 절차와 개념은 동일하므로 헷갈리지 않기 위해 기록으로 남긴다.

시리즈: Part 1 — 개념과 2터널 기본 구성 | Part 2 — 4터널 Full HA 구성과 통신 테스트

4터널 Full HA 구성

Part 1에서는 GCP NIC 1개, 터널 2개로 기본 연결을 구성했다. 이번에는 Customer Gateway 2개, Site-to-Site VPN Connection 2개를 만들어 총 4개의 터널을 구성한다. GCP VPN Gateway의 NIC 2개를 모두 사용하는 Full HA 구성이다.

1. (GCP) HA VPN Gateway 및 Cloud Router 생성

“VPN 연결 만들기"를 클릭하면 VPN 생성 마법사가 실행된다.

VPN 생성 마법사

“고가용성(HA) VPN” 선택 후 계속한다.

HA VPN 선택

VPN Gateway 정보를 입력하고 “만들고 계속하기"를 클릭한다.

VPN Gateway 생성

VPN 터널 추가 화면이 나오면 취소한다. Cloud VPN 게이트웨이가 생성되어 있고 2개의 IP 주소를 확인할 수 있다.

VPN Gateway IP 확인

Cloud Router를 선택하고 “라우터 만들기"를 클릭한다.

Cloud Router 메뉴

Cloud Router 정보를 입력한다. Google ASN은 6451265534, 42000000004294967294 범위에서 선택한다.

Cloud Router 생성

생성 결과를 확인한다.

Cloud Router 결과

여기까지 생성했으면 AWS로 이동한다. GCP에서 다음 2가지 정보를 AWS에서 사용해야 하니 확인해두자:

  1. Cloud Router의 Google ASN
  2. Cloud VPN 게이트웨이의 Public IP 주소 2개

2. (AWS) Virtual Private Gateway 생성

Virtual Private Gateway 생성

생성한 Virtual Private Gateway를 VPC에 Attach한다.

VPC Attach 1 VPC Attach 2

  • ASN: 사용자 지정 ASN을 선택하고 Google ASN과 겹치지 않는 값 입력
  • 이름 태그: 적절한 값 입력 (예: testvpn-gw-01)

게이트웨이 생성 시 입력한 Amazon측 ASN은 뒤에서 사용되니 기억해둔다.

3. (AWS) Customer Gateway 생성

2개를 생성한다. GCP VPN Gateway의 인터페이스 0, 1 각각에 대응한다.

Customer Gateway 1 Customer Gateway 2 Customer Gateway 3

  • IP 주소: GCP Cloud VPN 게이트웨이의 인터페이스 0과 1의 주소를 각각 입력
  • BGP ASN: GCP Cloud Router의 Google ASN 입력
  • 라우팅: 동적 선택
  • 이름: testvpn-customgw-01, testvpn-customgw-02

4. (AWS) Site-to-Site VPN Connection 생성

VPN Connection을 2개 생성한다. 각 Connection은 자동으로 터널 2개를 생성하므로 총 4개의 터널이 만들어진다.

첫 번째 Connection (Customer Gateway 01번 연결):

VPN Connection 1-1 VPN Connection 1-2

두 번째 Connection (Customer Gateway 02번 연결):

VPN Connection 2-1 VPN Connection 2-2

생성 후 잠시 기다리면 상태가 “사용 가능"으로 바뀐다.

VPN 상태 확인

각 Connection의 터널 고급 옵션:

  • 원격/로컬 IPv4 네트워크 CIDR: 비워둔다
  • 이름 태그: testvpn-conn-01, testvpn-conn-02

5. (AWS) Configuration File 다운로드

생성한 VPN 연결을 하나씩 선택하고 “구성 다운로드"를 클릭한다.

구성 다운로드

  • IKE Version: ikev2 선택
  • 공급업체: Generic 선택

6. (AWS) 라우팅 테이블 설정

라우팅 테이블 > 라우팅 전파 > 라우팅 전파 편집을 클릭한다.

라우팅 테이블 1 라우팅 테이블 2

가상 프라이빗 게이트웨이의 활성화를 체크한 후 저장한다.

7. (GCP) Peer VPN Gateway 생성

피어 VPN 게이트웨이 만들기를 클릭한다.

Peer Gateway 만들기

AWS에서 다운로드한 구성 정보 파일을 에디터에서 열고 차례로 값을 찾아 입력한다.

Peer Gateway 설정

  • 피어 VPN 게이트웨이 인터페이스: 인터페이스 4개를 선택
  • 인터페이스 0 IP: testvpn-conn-01의 IPSec Tunnel #1 > Outside IP Addresses > Virtual Private Gateway IP
  • 인터페이스 1 IP: testvpn-conn-01의 IPSec Tunnel #2 > Outside IP Addresses > Virtual Private Gateway IP
  • 인터페이스 2 IP: testvpn-conn-02의 IPSec Tunnel #1 > Outside IP Addresses > Virtual Private Gateway IP
  • 인터페이스 3 IP: testvpn-conn-02의 IPSec Tunnel #2 > Outside IP Addresses > Virtual Private Gateway IP

8. VPN 터널 추가

Cloud VPN 게이트웨이 화면에서 “VPN 터널 추가"를 클릭한다.

터널 추가 1 터널 추가 2 터널 추가 3 터널 추가 4 터널 추가 5

설정 값:

  • 피어 VPN 게이트웨이: 온프렘 또는 Google Cloud 외부 체크
  • 피어 VPN 게이트웨이 이름: 생성한 피어 VPN 게이트웨이 선택
  • Cloud Router: 생성한 Cloud Router 선택
  • 고가용성: VPN 터널 4개 만들기 체크
  • IKE 사전 공유 키 (4개 터널 각각):
    • testvpn-conn-01 Tunnel #1 > Internet Key Exchange Configuration > Pre-Shared Key
    • testvpn-conn-01 Tunnel #2 > Pre-Shared Key
    • testvpn-conn-02 Tunnel #1 > Pre-Shared Key
    • testvpn-conn-02 Tunnel #2 > Pre-Shared Key
  • 터널 이름: tunnel-1-1 / tunnel-1-2 / tunnel-2-1 / tunnel-2-2

“만들고 계속하기"를 클릭하여 BGP 세션 구성으로 넘어간다.

9. BGP Session 구성

BGP 세션 구성 항목에서 오른쪽 끝의 “BGP 세션 구성"을 하나씩 클릭한다.

BGP 세션 1 BGP 세션 2

4개 터널 각각에 대해:

  • 피어 ASN: AWS 가상 프라이빗 게이트웨이의 ASN 입력
  • BGP 피어 IP: 해당 Tunnel의 Inside IP Addresses > Virtual Private Gateway IP
  • Cloud Router BGP IP: 해당 Tunnel의 Inside IP Addresses > Customer Gateway IP
  • 이름: bgp-tunnel-1-1 / bgp-tunnel-1-2 / bgp-tunnel-2-1 / bgp-tunnel-2-2

BGP 세션 구성이 모두 완료되면 상태가 모두 **“BGP 설정됨”**으로 바뀐다.

BGP 세션 완료

10. 연결 상태 확인

AWS 사이트간 VPN 연결 화면에서 각 구성의 터널 세부 정보를 확인한다. 터널 4개에 대해 상태가 모두 **“작동”**이면 정상 연결이다.

AWS 터널 상태 1 AWS 터널 상태 2

통신 테스트

GCP → AWS ping test:

GCP에서 AWS로 ping

AWS → GCP ping test:

AWS에서 GCP로 ping


추가: 커스텀 경로 광고

GCP에서 특정 서버 또는 IP 대역만 AWS측에 제공하고 싶다면 Cloud Router를 수정하여 커스텀 경로 기능으로 제한을 걸 수 있다. 아래와 같이 설정하면 AWS 측에서 GCP의 10.178.0.3 서버에만 접속이 가능해진다.

커스텀 경로 설정

멀티 클라우드 통신 테스트 시나리오

VPN 연결 후 다양한 시나리오에서의 통신 가능 여부를 테스트한 결과다.

CASE시나리오통신 여부비고
1AWS VPC#1 →(VPN)→ GCP VPC#2 →(VPN)→ GCP VPC#3XVPC#3 대역을 AWS로 광고하지 않음
2AWS VPC#1 →(VPN)→ GCP VPC#2 →(VPN)→ GCP VPC#3XVPC#3 대역을 AWS로 광고해도 실패
3AWS VPC#1 →(VPN)→ GCP VPC#2 →(VPN)→ GCP VPC#3OVPC#2에 HA Proxy 설정
4AWS VPC#1 →(VPN)→ GCP VPC#2 →(VPC Peering)→ GCP VPC#3OVPC Peering + Route 광고 전파
5AWS VPC#1 →(VPN)→ GCP VPC#2 →(VPN)→ AWS VPC#3OInternal HTTP(S) LB + Hybrid NEG 사용 (80, 8080, 443)
6AWS VPC#1 →(VPN)→ GCP VPC#2 →(VPN)→ AWS VPC#3테스트 불가Internal TCP LB 사용 불가

핵심 결론:

  • VPN 간 단순 라우팅 전파만으로는 3rd VPC 통신이 안 된다 (Case 1, 2)
  • VPC Peering + Route 광고가 가장 깔끔한 해결책 (Case 4)
  • HA Proxy를 중간에 두면 우회 가능하지만 운영 부담 증가 (Case 3)
  • Internal HTTP(S) LB + Hybrid NEG로 L7 수준 연결 가능 (Case 5)

추가 옵션

  • 전역 라우팅 모드: VPC에서 Global routing mode를 활성화하면 리전 간 라우팅 경로 학습이 가능하다
  • NIC 추가: Part 1의 2터널 구성에서 AWS측 VPN Gateway를 추가하면 GCP Gateway의 남은 NIC에 연결해 Full HA로 확장 가능