VPN 비용, 사실 꽤 아깝다.
특히 스타트업처럼 보안은 챙겨야 하는데 비용은 줄여야 하는 환경에서는 더 그렇다.
그래서 이번엔 별도 VPN 서비스를 쓰지 않고,
AWS EC2 위에 직접 WireGuard를 올려서 안전한 내부 접근을 구성하는 방법을 정리해본다.
이건 단순한 튜토리얼이 아니라,
“보안·비용·가용성 세 마리 토끼를 잡는 구조“다.
1. 전체 구조 요약
[인터넷 클라이언트]
↓
[Route53 → WireGuard EC2 (Public Subnet)]
↓
[VPC Router]
↓
[Private Subnet EC2]
핵심은 WireGuard가 VPC 안의 게이트웨이 역할을 한다는 점이다.
- WireGuard 서버: Public Subnet (예: 10.0.1.10)
- Private EC2: Private Subnet (예: 10.0.2.10)
- WireGuard VPN 대역: 10.99.0.0/24
이 구조만 잡히면, NAT 게이트웨이 없이도 Private 리소스에 안전하게 접근할 수 있다.
2. WireGuard 대역은 VPC에 등록하지 않는다
많이 하는 실수가 이거다.10.99.0.0/24 같은 VPN 대역을 VPC Subnet으로 추가하려는 시도.
그럴 필요 없다.
이건 VPC 위에서 동작하는 overlay 네트워크이기 때문에,
실제 VPC 서브넷이 아니라 OS 내부 인터페이스(wg0) 에서만 존재한다.
즉, WireGuard 서버는 VPC의 eth0 위에 wg0를 하나 더 얹어서,
VPC 외부의 클라이언트와 가상 네트워크를 구성하는 구조다.
3. 라우팅 설정 (AWS 콘솔 기준)
AWS에서 핵심은 Route Table 한 줄이다.
- VPC → Route Tables → Private Subnet용 Route Table 선택
- Edit routes → Add route
- 다음처럼 추가한다: Destination Target 10.99.0.0/24 WireGuard EC2 Instance
이 한 줄이 “Private 리소스가 WireGuard 클라이언트와 통신하려면, WG 서버를 통해라”는 뜻이다.
끝.
4. WireGuard 서버 쪽 설정
서버에서는 IP Forwarding과 NAT을 켜야 한다.
sudo sysctl -w net.ipv4.ip_forward=1
/etc/sysctl.conf에도 추가:
net.ipv4.ip_forward = 1
그리고 NAT 설정:
iptables -t nat -A POSTROUTING -s 10.99.0.0/24 -o eth0 -j MASQUERADE
이러면 클라이언트가 내부 EC2로 접근할 때,
응답이 다시 WireGuard 서버를 통해 돌아온다.
5. Route53 연결로 간단하게 외부 진입 구성
Elastic IP를 안 써도 된다.
단, 재부팅만 안 하면 IP는 그대로 유지된다.
Route53에서 A레코드만 설정하면 된다:
vpn.mydomain.com → <EC2의 현재 Public IP>
만약 서버를 자주 껐다 켜야 한다면 Elastic IP로 고정하는 게 안전하다.
6. 트래픽 흐름 요약
VPN Client (10.99.0.2)
↓
WireGuard Server (10.0.1.10 / wg0=10.99.0.1)
↓
VPC Route Table (10.99.0.0/24 → i-0abcd...)
↓
Private EC2 (10.0.2.10)
- 클라이언트 → 서버: UDP 51820
- 서버 → Private EC2: VPC 내부 라우팅
- Private EC2 → 클라이언트 응답: WireGuard 서버 경유
7. 최종 요약
| 항목 | 설정 |
|---|---|
| WireGuard 대역 | 10.99.0.0/24 |
| VPC CIDR | 10.0.0.0/16 |
| VPC에 10.99 대역 추가 | ❌ 불필요 |
| Route Table | ✅ 10.99.0.0/24 → WireGuard EC2 |
| IP Forwarding | ✅ 켜야 함 |
| NAT(MASQUERADE) | 필요 시 사용 |
| Route53 | A레코드로 Public IP 연결 |
결론
이 방식은 VPN 서비스를 구독하지 않고도, 완전히 AWS 내부에서 보안망을 직접 구성할 수 있는 구조다.
비용도 낮고, 트래픽 제어도 자유롭다.
VPN 비용이 아까운 개발자,
특히 스타트업처럼 비용 절감이 생존과 직결된 환경이라면
이 방식이 “가볍지만 강력한 내부 보안망”이 되어줄 거다.

댓글 남기기