본문으로 이동
Kim Jongwon
Projects

네트워크 설계 · 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/Subnet/Route TableMGMT-MAIN Peering/Security GroupsCloudFront/ALB-associated WAFEKS/Aurora/OpenVPN/ECSACM/Route53/S3/ECR
MAIN/MGMT/SERVICE VPC와 static, dynamic, admin path 요약

사용자/관리자 분리

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를 단계적으로 연결합니다.
AWS VPCTerraformCloudFront/WAF/ALBEKSAurora MySQL

Post-apply Checkpoint · 8단계

  1. 1 Route 53 NS delegation — 도메인 name server 위임 확인
  2. 2 ACM 인증서 — issued 상태 · 도메인 검증 완료
  3. 3 kubeconfig — kubectl get nodes 응답 확인
  4. 4 WordPress · EC2 Nginx — CloudFront HTTPS 접근 확인
  5. 5 ECR — docker push 이미지 등록 확인
  6. 6 curl — ALB target group healthy · HTTP 200 응답
  7. 7 OpenVPN — MGMT-MAIN peering 접근 확인
  8. 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를 나눈 전체 다이어그램입니다.

MAIN VPC, MGMT VPC, SERVICE VPC와 CloudFront, WAF, ALB, EKS, Aurora, OpenVPN 경로를 보여주는 AWS 아키텍처 다이어그램
전체 아키텍처 - MAIN/MGMT/SERVICE VPC와 traffic 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를 같은 기준으로 설명합니다.