원본 작성일: 2023년 9월
이 글은 2023년에 실무에서 AWS-GCP 간 HA VPN을 구성하면서 정리한 기록이다. 콘솔 UI가 현재와 다를 수 있지만, 구성 절차와 개념은 동일하므로 헷갈리지 않기 위해 기록으로 남긴다.
시리즈: Part 1 — 개념과 2터널 기본 구성 | Part 2 — 4터널 Full HA 구성과 통신 테스트
HA VPN이란?
HA VPN은 GCP에서 제공하는 고가용성 VPN 서비스다. IPSec VPN 연결을 통해 GCP VPC와 On-premise 네트워크, 또는 AWS/Azure 같은 다른 클라우드의 VPC를 연결한다.
기본적으로 BGP를 사용한 리전 동적 라우팅 모드를 활성화하며, VPC 설정에서 전역(Global) 동적 라우팅을 켜면 리전 간 라우팅 경로 학습도 가능하다.
엔드 투 엔드 연결이 적절히 구성되었을 경우 99.99%의 가용성을 보장한다.
Classic VPN의 정적 라우팅 지원은 2021년 10월부터 중단되었다. 앞으로 VPN 구성은 HA VPN으로 해야 한다.
HA VPN 토폴로지
핵심 포인트:
- GCP측 VPN Gateway의 NIC가 2개라는 점
- On-premise측 VPN Gateway 2개가 각각의 NIC와 연결된다는 점
- Cloud Router로 향하는 Control plane 연결이 존재한다는 점
이 3가지 포인트에서 HA VPN은 3가지 시나리오를 지원한다:
- 피어 VPN 게이트웨이 2개: Cloud VPN 게이트웨이의 각 인터페이스에서 각 터널을 자체 피어 게이트웨이에 연결
- 인터페이스 2개인 단일 피어 게이트웨이: 각 인터페이스에서 피어 게이트웨이의 자체 인터페이스에 연결
- 인터페이스 1개인 단일 피어 게이트웨이: 두 터널 모두 피어 게이트웨이의 동일한 인터페이스에 연결
구성 개요
AWS VPC와 GCP VPC를 HA VPN으로 연결하는 기본 절차:
- (GCP) HA VPN Gateway 및 Cloud Router 생성
- (AWS) Virtual Private Gateway 생성
- (AWS) Customer Gateway 생성
- (AWS) Site-to-Site VPN Connection 생성
- (AWS) Configuration file 다운로드
- (GCP) Peer VPN Gateway 생성
- (GCP) VPN Tunnel 생성
- (GCP) BGP Session 구성
- 연결 상태 확인 및 테스트
이 글에서는 GCP NIC 1개를 사용한 2터널 기본 구성을 다룬다. 4터널 Full HA 구성은 Part 2를 참고한다.
2터널 기본 구성
GCP VPN Gateway의 NIC 0번 하나에 AWS 터널 2개를 연결하는 기본 구성이다.
1. (GCP) HA VPN Gateway 및 Cloud Router 생성
GCP VPN 탭에서 새 VPN 생성을 클릭한다. VPN option에서 High-availability(HA) VPN을 선택한다.
적절한 VPN gateway 이름과 VPC, Region을 선택한다. 이 과정에서 GCP측 VPN Gateway가 생성되며 2개의 Public IP address가 할당된다.
Cloud Router를 생성한다. Google ASN에는 6451265534, 42000000004294967294 범위에 해당하는 값을 넣어야 한다. AWS측에서 사용하는 ASN과 겹치지 않아야 한다.
GCP에서 AWS로 넘겨야 할 정보 2가지:
- HA Gateway의 Public IP address
- Cloud Router의 ASN
2. (AWS) 리소스 구성
GCP에서 받은 정보를 기반으로 AWS측 리소스를 생성한다.
Virtual Private Gateway 생성: ASN은 Custom ASN으로, Google ASN과 겹치지 않는 값을 입력한다.
생성한 Virtual Private Gateway를 VPC에 Attach한다.
Customer Gateway 생성: Routing에 Dynamic을 지정하고, BGP ASN에 GCP Cloud Router의 Google ASN, IP Address에 GCP VPN Gateway의 IP Address를 입력한다.
Site-to-Site VPN Connection 생성: Tunnel option에서 IKEv2에만 체크한다. 터널은 자동으로 2개가 생성된다.
생성 후 Download Configuration 버튼으로 GCP에 넘겨줄 설정 파일을 다운로드한다.
3. (GCP) Peer Gateway 및 Tunnel 생성
GCP로 돌아와서 AWS VPN Gateway 정보를 지정하는 Peer Gateway를 생성한다. Interfaces는 two interfaces를 선택하고 AWS Tunnel의 IP address를 입력한다.
AWS 콘솔에서 Outside IP Address를 확인할 수 있다.
Tunnel 생성 시 Cloud VPN Gateway의 NIC 0번에 Peer VPN Gateway의 0, 1번 NIC를 모두 연결한다. IKE version은 IKEv2, Pre-shared Key는 AWS Configuration file에서 찾아 입력한다.
4. BGP Session 구성
Peer ASN에 AWS에서 지정한 ASN을 입력한다.
Configuration file에서 /30으로 구성된 IP address range를 찾아:
- Remote IP address → Cloud Router의 BGP IP
- Local IP address → Peer의 BGP IP
로 입력한다.
5. 연결 확인
VPN tunnel status와 BGP session status가 모두 Established되면 연결 성공이다.
이 구성에서는 GCP Gateway의 NIC 1개만 사용했으므로 엄밀한 의미의 HA 구성은 아니다. NIC 2개를 모두 사용하는 4터널 Full HA 구성은 Part 2에서 다룬다.













