Subnet은 4-Tier로 분리 완료

Tier 1: Public Subnet → ALB
Tier 2: Private-App Subnet → Workers
Tier 3: Private-Control Subnet → Master
Tier 4: Private-DB Subnet → RDS
  1. Master + 핵심 Workers는 AZ-A: 레이턴시 최소화, 비용 절감
  2. Monitoring은 AZ-B: 독립적 운영, AZ-A 장애 시에도 모니터링 가능
  3. ALB는 Multi-AZ: 외부 접근은 문제없음

동기화 불필요! Kubernetes가 알아서:


EC2 인스턴스 기반 K8s Cluster

┌─────────────────────────────────────────────────────┐
│  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)               │                       │
│     - 독립적 운영 가능                                  │
└─────────────────────────────────────────────────────┘

1. Control Plane(마스터 노드)은 반드시 단일 AZ에 고정해야 안정적이다.

K8s Control Plane은 무조건 하나의 Availability Zone 내에서 안정적으로 돌아가는 게 더 안전하다.