네트워크 설계 · AWS 인프라 설계 프로젝트 · 2026.03.25 - 2026.04.06
AWS Multi-VPC 3-Tier Infrastructure with Terraform
MAIN / MGMT / SERVICE VPC와 사용자·관리자 트래픽 분리
사용자, 관리자, 서비스 워크로드가 같은 네트워크 경로에 섞이지 않도록 VPC와 traffic path를 독립적으로 설계했습니다.
Boundary
3 VPC
MAIN / MGMT / SERVICE
Path
4 routes
static, dynamic, admin, service path
Review
8 checks
post-apply checkpoint
Traffic boundary
3개 VPC와 4개 traffic path
Terraform은 AWS 인프라를 만들고, 첫 배포 이후에는 post-apply checkpoint가 점검 순서를 고정합니다.
MAIN
10.0.0.0/16
public/app/db subnet
MGMT
10.1.0.0/16
OpenVPN admin entry
SERVICE
10.2.0.0/16
private ECS workload
Static
CloudFront → S3 OAC
Dynamic
CloudFront → ALB WAF → Nginx → EKS → Aurora
Admin
OpenVPN → MGMT-MAIN peering
Service
ECS → NAT → ECR
Terraform module scope
사용자/관리자 분리
VPC 분리 설계
MAIN, MGMT, SERVICE VPC와 static/dynamic/admin path의 접점을 설명합니다.
- MAIN VPC에 public/app/db subnet을 두고 ALB, EC2 Nginx, EKS, Aurora 계층을 구성했습니다.
- CloudFront가 정적 요청을 S3 OAC로, 동적 요청은 ALB-associated WAF → ALB → EC2 Nginx → EKS NodePort → Aurora로 분기합니다.
- MGMT VPC는 OpenVPN admin entry와 MGMT-MAIN peering을 담당하고, SERVICE VPC는 private ECS workload와 ECR pull 경로를 수용합니다.
- Terraform root module이 VPC, peering, security groups, ALB, EKS, Aurora, OpenVPN, ECS, CloudFront를 단계적으로 연결합니다.
Post-apply Checkpoint · 8단계
- 1 Route 53 NS delegation — 도메인 name server 위임 확인
- 2 ACM 인증서 — issued 상태 · 도메인 검증 완료
- 3 kubeconfig — kubectl get nodes 응답 확인
- 4 WordPress · EC2 Nginx — CloudFront HTTPS 접근 확인
- 5 ECR — docker push 이미지 등록 확인
- 6 curl — ALB target group healthy · HTTP 200 응답
- 7 OpenVPN — MGMT-MAIN peering 접근 확인
- 8 Aurora DB — EKS pod 연결 확인
트래픽을 나눈 이유
접근 경로 분리
사용자 트래픽, 관리자 접근, private DB, 별도 service workload가 같은 네트워크 경로에 섞이지 않아야 했습니다.
작업 파트
- MAIN/MGMT/SERVICE VPC로 사용자 트래픽, 관리자 접근, 서비스 워크로드를 분리 설계했습니다.
- Terraform root module에서 주요 AWS 인프라 리소스 호출 관계를 관리했습니다.
- NS, ACM, kubeconfig, ECR, curl 등 8개 post-apply checkpoint를 순서대로 점검했습니다.
핵심 결과
- MAIN / MGMT / SERVICE VPC segmentation
- Static path: CloudFront → S3 OAC
- Dynamic path: ALB WAF → EC2 Nginx → EKS → Aurora
VPC 경로
아키텍처
MAIN/MGMT/SERVICE VPC와 static, dynamic, admin path를 나눈 전체 다이어그램입니다.
Terraform root
Root module 연결
프로젝트의 핵심 구현 지점입니다.
Root module orchestration
main.tf
module "vpc_main" {
source = "./modules/vpc-main"
}
module "vpc_mgmt" {
source = "./modules/vpc-mgmt"
}
module "vpc_service" {
source = "./modules/vpc-service"
}
module "peering" {
source = "./modules/peering"
main_vpc_id = module.vpc_main.vpc_id
mgmt_vpc_id = module.vpc_mgmt.vpc_id
}
module "alb" {
source = "./modules/alb"
waf_arn = module.waf.waf_arn
}
module "eks" {
source = "./modules/eks"
}
module "aurora" {
source = "./modules/aurora"
}
module "cloudfront" {
source = "./modules/cloudfront"
alb_dns_name = module.alb.alb_dns_name
} 아키텍처
아키텍처 산출물
VPC, routing, security group, 접근 경로, post-apply checkpoint를 코드와 문서로 검증했습니다.
경로와 checkpoint
- VPC, routing, security group, 4개 access path, post-apply checkpoint 8개를 Terraform root module에서 관리했습니다.
- Terraform root/module 구조와 문서가 static, dynamic, admin, service path를 같은 기준으로 설명합니다.