
WireGuard로 멋진 VPN 서버 구축하기 - 1
두줄요약
OpenVPN의 계정 관리·추적성·성능 문제를 WireGuard 기반 자체 VPN으로 개선했습니다. 그룹별 접근 제어와 사용자 고유 IP 로그를 AWS 라우팅으로 구현했습니다.
문제 상황
- OpenVPN의 SSO 연동·계정 관리 불편, NAT로 인한 사용자 식별 불가, 라이선스·성능 문제
- 직군별 VPC 접근 제어와 사용자별 접근 로그 식별 요구
선택 이유
- UDP·커널 모듈 기반 WireGuard의 낮은 레이턴시, 암호화 성능, 공개키 기반 Peer 배포
- Keycloak 그룹과 Go 생태계 라이브러리를 활용한 맞춤형 VPN 기능 구현 가능성
구조와 흐름
- 그룹별 WireGuard 인터페이스와
ip-rule·라우팅 테이블 분리 - 허용 VPC에는
throw라우트, 기본 경로에는blackhole라우트 적용 - NAT 없이 사용자별 고유 IP를 전달하고 AWS 라우팅으로 반환 경로 구성
트레이드오프
- AWS Source/Destination Check 비활성화와 VPC 대역 비중복 조건
- 동일 리전 Transit Gateway 및 리전 간 Transit Gateway Peering 기반 경로 구성
- 리전 간 비대칭 경로의 VPC Peering 제약으로 Transit Gateway 중심 설계 전환



