How to Create a Fully Private AWS EKS Cluster? (Client VPN & Resolve Private Route 53 DNS Locally)
- 완전 비공개 AWS EKS 클러스터는 보안 강화를 위해 퍼블릭 엔드포인트를 노출하지 않고, OpenVPN을 통해 내부 VPC 리소스에 안전하게 접근하는 방법을 제공합니다. 🔒
- OpenVPN 서버는 퍼블릭 서브넷의 EC2 인스턴스에 배포되며, 클라이언트 VPN 연결을 통해 사용자의 로컬 환경에서 VPC 내부의 프라이빗 IP 주소 및 DNS를 직접 해결할 수 있게 합니다. 🌐
- OpenVPN은 자체 서명 인증 기관(CA) 및 서버/클라이언트 인증서 관리를 통해 강력한 인증 및 암호화된 통신 채널을 구축하여 보안을 강화합니다. 🔑
- 클라이언트 트래픽을 OpenVPN 서버를 통해 라우팅하고 VPC DNS 리졸버(VPC CIDR + 2)를 클라이언트에 푸시함으로써, 프라이빗 Route 53 호스팅 영역의 DNS 이름을 로컬에서 해결할 수 있습니다. 📡
- 내부 Grafana 대시보드, PostgreSQL 데이터베이스 등과 같은 프라이빗 애플리케이션 및 서비스는 퍼블릭 노출 없이 OpenVPN을 통해 안전하게 접근 및 관리될 수 있습니다. 📊
- AWS 관리형 Client VPN 서비스는 편리하지만, 자체 호스팅 OpenVPN 솔루션은 월 $15-20 수준으로 훨씬 저렴하게 운영할 수 있어 비용 효율적입니다. 💰
- Terraform을 사용하여 VPC, OpenVPN EC2 인스턴스, PostgreSQL EC2, EKS 클러스터, 프라이빗 Nginx Ingress Controller 및 Grafana 배포를 자동화하여 인프라 구축을 간소화합니다. 🏗️
- OpenVPN 보안 그룹을 소스로 사용하여 EKS 컨트롤 플레인, PostgreSQL 인스턴스 등 VPC 내 프라이빗 리소스에 대한 방화벽 규칙을 세밀하게 제어할 수 있습니다. 🔥
- EKS 클러스터는 오직 프라이빗 엔드포인트만 가지며, 프라이빗 로드 밸런서를 사용하는 Nginx Ingress Controller를 통해 내부 애플리케이션에 대한 비공개 접근을 제공합니다. ☁️
- OpenVPN 클라이언트 연결 후 로컬 라우팅 테이블 및 DNS 설정이 업데이트되어, 사용자는 마치 VPC 내부에 있는 것처럼 프라이빗 리소스에 접근하고 DNS를 해결할 수 있습니다. ✅