- 개발자들이 GCP 프라이빗 서브넷(예:
10.10.10.0/24
)에 보안된 방식으로 접근할 수 있도록 WireGuard VPN 도입
- Bastion Host 없이 경량 VPN으로 비용 절감 및 간단한 설정 가능
항목 |
구성 내용 |
VPN 서버 위치 |
Shared Public Subnet (10.0.0.0/24 ) 내 Compute Engine |
VPN 클라이언트 |
각 개발자 로컬 장비 (macOS/Linux/Windows) |
VPN 방식 |
WireGuard (UDP 기반) |
접근 가능한 영역 |
Dev Private Subnet (e.g. 10.10.10.0/24 , 10.10.20.0/28 ) |
1. WireGuard 서버 설치 (GCP VM)
sudo apt update && sudo apt install wireguard -y
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
3. 서버 설정 파일 /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <서버_프라이빗키>
Address = 10.100.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
sudo ufw allow 51820/udp
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
🧑💻 클라이언트 설정 예시 (macOS
기준)
[Interface]
PrivateKey = <클라이언트_프라이빗키>
Address = 10.100.0.2/24
DNS = 8.8.8.8
[Peer]
PublicKey = <서버_퍼블릭키>
Endpoint = <서버_퍼블릭IP>:51820
AllowedIPs = 10.10.0.0/16
PersistentKeepalive = 25
항목 |
결과 |
VPN 연결 |
성공 (WireGuard 로그 및 wg show 확인) |
내부 서브넷 핑 테스트 |
성공 (e.g. ping 10.10.10.2 ) |
Backend API 접근 |
정상 작동 |
Prometheus 대시보드 접근 |
성공 |
- 서버 퍼블릭 IP에 대해 IP 제한 설정 검토 필요
- WireGuard 구성 파일은 Git에 저장 금지
- 자동 재시작 및 헬스체크 구성 고려
- 연결 로그 및 접속 시간 Prometheus/AlertManager 연동
- 클라이언트 등록 자동화 스크립트 작성
- 동시 접속자 수 제한 설정
