Tier 1: Public Subnet → ALB
Tier 2: Private-App Subnet → Workers
Tier 3: Private-Control Subnet → Master
Tier 4: Private-DB Subnet → RDS
동기화 불필요! Kubernetes가 알아서:
┌─────────────────────────────────────────────────────┐
│ AZ-A (ap-northeast-2a) - PRIMARY │
├─────────────────────────────────────────────────────┤
│ Private-Control Subnet (10.0.21.0/24) │
│ └─ k8s-master (c7i-flex.large) │
│ - Control Plane │
│ - ArgoCD │
│ │
│ Private-App Subnet (10.0.11.0/24) │
│ ├─ k8s-worker-back (t3.small) │
│ │ - API Server (Primary) │
│ │ - Redis (Primary) │
│ └─ k8s-worker-function (m7i-flex.large) │
│ - 함수 실행 (Primary)
| Private-DB (10.0.31.0/24) │
│ └─ RDS PostgreSQL ⭐ │
│ (prod-runna-db-postgres) │
└─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ AZ-B (ap-northeast-2b) - SECONDARY │
├─────────────────────────────────────────────────────┤
│ Private-App Subnet (10.0.12.0/24) │
│ └─ k8s-worker-ops (t3.small) │
│ - Monitoring (Prometheus, Grafana) │ │
│ - 독립적 운영 가능 │
└─────────────────────────────────────────────────────┘
K8s Control Plane은 무조건 하나의 Availability Zone 내에서 안정적으로 돌아가는 게 더 안전하다.