개요
AWS VPC와 외부 네트워크(온프레미스/IDC)를 IPsec VPN으로 연결하는 가이드입니다. VPN(Virtual Private Network)를 사용하면 인터넷을 통해 Private하고 안전한 방식으로 네트워크 트래픽을 주고받을 수 있습니다.
주요 개념
Virtual Private Gateway (VGW)와 Customer Gateway (CGW)
| Virtual Private Gateway (VGW) | Customer Gateway (CGW) | |
|---|---|---|
| 누구 쪽 | AWS 측 끝점 | 상대방(고객/온프레미스) 측 끝점 |
| 실체 | AWS가 관리하는 가상 게이트웨이 | 상대방 VPN 장비의 정보(Public IP 등)를 등록한 것 |
| 연결 대상 | VPC에 연결 | 물리 장비에 대응 (Fortigate, Palo Alto 등) |
| 생성 시 입력값 | 이름 | 상대방 VPN 장비의 Public IP, BGP ASN |
[AWS VPC] ← VGW(AWS 측 끝점) ===== VPN 터널 ===== CGW(상대방 장비 Public IP) → [온프레미스 내부망]Static vs Dynamic(BGP) 라우팅
| Static | Dynamic (BGP) | |
|---|---|---|
| 경로 등록 | 수동으로 Static IP Prefix 입력 | BGP가 자동으로 경로 교환 |
| 장점 | 간단, 상대방 BGP 미지원 시 유일한 옵션 | 경로 자동 업데이트, 장애 시 자동 Failover |
| 터널 사용 | Active/Passive 또는 Active/Active | Active/Active 가능 |
Static 방식에서 터널 2개 사용 시 주의사항
VPN은 기본적으로 2개의 터널을 제공합니다. Static 방식에서 2개 터널을 동시에 Active(UP)로 운영하면 비대칭 라우팅(Asymmetric Routing)이 발생할 수 있습니다.
- AWS가 응답을 어느 터널로 보낼지 제어할 수 없음
- 요청은 Tunnel 1로 갔는데 응답이 Tunnel 2로 올 수 있음
- 상대방 방화벽이 Stateful이면 세션 매칭 실패로 패킷 드롭
권장: Static 방식에서는 Tunnel 1만 Active, Tunnel 2는 Failover 용도로 운영
AWS 공식 문서:
- "If the AWS VPN connection (static routing type) has an Active/Active configuration (both tunnels are UP), then you can't configure AWS to prefer a specific tunnel to send traffic." — How do I configure my Site-to-Site VPN to prefer one tunnel over another?
- "If customer gateway doesn't support asymmetric routing, then make sure that the VPN setting is Active/Passive." — How do I avoid asymmetric routing in route-based VPN with static routing?
예외: 상대방 장비가 비대칭 라우팅을 지원하는 경우
상대방 VPN 장비에서 비대칭 라우팅을 허용하면 Active/Active(터널 2개 동시 UP)로 운영 가능합니다. 이 경우 AWS 측 추가 설정은 없으며, 상대방 장비에서만 설정하면 됩니다.
- Fortigate: IPsec Aggregate 기능으로 지원
Prerequisite
- 상대방 VPN 장비의 Public IP (Customer Gateway 생성에 필요)
- 상대방 내부 네트워크 대역 (예: 10.x.x.x/24) - Static Route에 등록할 대상
- AWS 측에서 VPN을 통해 통신할 서브넷/대역
- IKE 버전 (IKEv1/IKEv2) 및 암호화 파라미터 요구사항 확인
Process
1. Customer Gateway 생성
- AWS 콘솔 → VPC → 가상 사설 네트워크(VPN) → 고객 게이트웨이 → 고객 게이트웨이 생성
- Name: 사용자 정의 이름
- BGP ASN: Static 사용 시 기본값
65000. Dynamic(BGP) 사용 시 상대방 ASN 입력 - IP Address: 상대방 VPN 장비의 Public IP
- 고객 게이트웨이 생성 클릭 후 생성 완료
2. Virtual Private Gateway 생성 및 VPC 연결
- AWS 콘솔 → VPC → 가상 사설 네트워크(VPN) → 가상 프라이빗 게이트웨이 → 가상 프라이빗 게이트웨이 생성
- Name: 사용자 정의 이름
- 생성된 VGW 선택 → 작업 → VPC에 연결
- VPN 통신을 하려는 VPC를 선택
3. 상태: Attached 확인
3. Site-to-Site VPN Connection 생성
- AWS 콘솔 → VPC → 가상 사설 네트워크(VPN) → Site-to-Site VPN 연결 → VPN 연결 생성
- Name: 사용자 정의 이름
- 대상 게이트웨이 유형: 가상 프라이빗 게이트웨이 → 사전 생성한 VGW 선택
- 고객 게이트웨이: 기존 → 사전 생성한 CGW 선택
- 라우팅 옵션: 정적(Static) 또는 동적(Dynamic, requires BGP)
- 정적 IP 접두사: 상대방 온프레미스 네트워크 대역 (예:
10.x.x.x/24)
로컬/원격 IPv4 네트워크 CIDR (선택 사항)
| 옵션 | 설명 | 기본값 |
|---|---|---|
| 로컬 IPv4 네트워크 CIDR | VPN 터널을 통해 통신할 온프레미스(상대방) 측 대역 |
0.0.0.0/0 (전체 허용) |
| 원격 IPv4 네트워크 CIDR | VPN 터널을 통해 통신할 AWS VPC 측 대역 |
0.0.0.0/0 (전체 허용) |
보안상 필요한 대역만 지정하는 것을 권장합니다.
터널 옵션
| 옵션 | 설명 | 기본값 |
|---|---|---|
| 터널 내부 IPv4 CIDR | 터널 내부에서 AWS↔고객 간 통신에 사용하는 /30 대역 (169.254.x.x/30). 미입력 시 AWS가 자동 할당 | 자동 할당 |
| 사전 공유 키 (Pre-Shared Key) | IKE 인증에 사용하는 PSK. 미입력 시 AWS가 자동 생성. 양쪽이 동일한 값을 사용해야 터널 성립 | 자동 생성 |
| 터널 로그 | VPN 터널 로그를 CloudWatch Logs로 전송. IKE 협상 실패, DPD 타임아웃 등 디버깅에 유용 | 비활성화 |
- 사전 공유 키를 직접 지정하면 상대방에게 해당 키를 전달해야 함. 자동 생성 시 Configuration 파일에 포함됨
- 터널 로그는 트러블슈팅 시 유용하므로 활성화 권장 (CloudWatch Logs 비용 발생)
- VPN 연결 생성 클릭
- 생성 후 상태가 Available이 될 때까지 대기
4. Configuration 파일 다운로드
- VPN 연결 선택 → 구성 다운로드 버튼 클릭
2. 상대방 VPN 장비에 맞는 Vendor, Platform, IKE Version을 선택하여 다운로드(VPN 장비에 따라 선택, 사진은 예시)
- 다운로드된 Configuration 파일에는 아래 정보가 포함됨:
- AWS 측 Tunnel IP (Outside IP)
- Pre-Shared Key
- IKE/IPsec 암호화 파라미터
- Tunnel Inside IP CIDR (BGP 사용 시)
- 해당 파일을 상대방에게 전달 → 상대방이 자사 VPN 장비에 설정 적용
Configuration 파일은 장비별로 맞춤 형식으로 제공됩니다. 상대방은 이 파일을 기반으로 VPN 장비를 설정하면 됩니다.
5. 라우팅 테이블에 라우팅 전파 설정
VPN을 통해 연결된 상대방 네트워크 대역을 Route Table에 자동으로 추가하는 설정입니다.
- AWS 콘솔 → VPC → 라우팅 테이블 → VPN 통신이 필요한 서브넷의 라우팅 테이블 선택
- 라우팅 전파 탭 → 라우팅 전파 편집
- VGW 전파 활성화 (Enable)
전파를 활성화하면 VGW가 알고 있는 상대방 대역(Static Prefix 또는 BGP로 수신한 경로)이 Route Table에 자동으로 추가됩니다.
6. 연결 확인
상대방이 VPN 장비 설정을 완료하면 AWS 콘솔에서 터널 상태를 확인합니다.
- AWS 콘솔 → VPC → Site-to-Site VPN 연결
- 해당 VPN 연결 선택 → 터널 세부 정보 탭
- Tunnel 1 Status: UP 확인
BGP(Dynamic) 방식 추가 참고
BGP로 구성하는 경우, Customer Gateway 생성 시 상대방의 BGP ASN을 입력합니다.
VPN Connection 생성 시 라우팅 옵션에서 동적(requires BGP)을 선택합니다.
BGP 사용 시:
- Static IP Prefix 입력이 불필요 (BGP가 자동으로 경로 교환)
- 상대방 장비에서 BGP neighbor 설정 필요 (Configuration 파일에 포함됨)
- 터널 Status가 UP이 되려면 IPsec + BGP 세션 모두 성립되어야 함
참고 자료
- AWS Docs: Site-to-Site VPN User Guide https://docs.aws.amazon.com/vpn/latest/s2svpn/
- AWS Knowledge Center: Static VPN 비대칭 라우팅 방지 https://repost.aws/knowledge-center/vpn-avoid-asymmetry-static-routing
댓글
댓글 0개
댓글을 남기려면 로그인하세요.