Skip to content

Commit c6f886f

Browse files
committed
docs(step5): workers_per_az 변수화 — 초기 배포 3대, 스케일업 6대
Worker 노드 수를 고정 6대에서 workers_per_az 변수로 조절 가능하게 설계 문서 반영. 초기 배포는 1-1-1(3대)로 시작, 안정화 후 2-2-2(6대).
1 parent 6692323 commit c6f886f

3 files changed

Lines changed: 19 additions & 13 deletions

File tree

wiki/design/step5/design-step5.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,8 @@ Prod HA(~5150m) 기준으로 3-AZ 균등 배치가 가능한 구성을 비교한
280280
**t4g.large × 6**과 t4g.xlarge × 3은 동일 비용($294), 동일 N-1(69%)이지만, 6대가 Pod 분산 유연성이 높고(anti-affinity 효과, DB/App 노드 분리 용이), 장애 blast radius가 작다(1/6=17% vs 1/3=33%). 3-AZ 2-2-2 구성으로 **단일 AZ 장애 시 4대(6.0v) 잔여, AZ 장애(2대 손실) 시 83%로 수용 가능**하다.
281281

282282
> **결정: CP t4g.medium × 1 + Worker t4g.large × 6 (2vCPU, 8GB) — 3-AZ 2-2-2. N-1 69%, AZ 장애 83%. 비용 $294/월**
283+
>
284+
> **운영 참고**: Terraform `workers_per_az` 변수로 AZ당 워커 수 조절 가능. 초기 배포는 `workers_per_az = 1` (1-1-1, 3대)로 시작, 안정화 후 2로 스케일업.
283285
284286
이 구성에서 감수하는 리스크는 다음과 같다.
285287

wiki/design/step5/iac-plan.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ design-step5.md §14, §15 기반. V2 ALB 모듈 수정.
306306

307307
| 항목 | V2 | V3 |
308308
|------|-----|-----|
309-
| 타겟 타입 | Instance (ASG 등록) | Instance (고정 Worker 6대) |
309+
| 타겟 타입 | Instance (ASG 등록) | Instance (Worker `workers_per_az × 3`) |
310310
| 타겟 포트 | 3000/8080 (앱 포트 직접) | 30xxx (NodePort) |
311311
| 경로 라우팅 | ALB Listener Rule | NGINX Gateway Fabric (HTTPRoute) |
312312
| Health Check | `/health-check`, `/actuator/health` | Gateway Fabric 헬스 엔드포인트 |
@@ -315,7 +315,7 @@ design-step5.md §14, §15 기반. V2 ALB 모듈 수정.
315315

316316
| 타겟그룹 | 포트 | 대상 | Health Check |
317317
|---------|------|------|-------------|
318-
| k8s-gateway | NodePort (30xxx) | Worker 6대 | `/healthz` |
318+
| k8s-gateway | NodePort (30xxx) | Worker 전체 (`workers_per_az × 3`) | `/healthz` |
319319

320320
> V2에서는 FE/BE 별도 TG + path rule이었으나, V3에서는 **단일 TG**로 단순화. 경로 분기는 K8S 내부 Gateway Fabric이 처리.
321321
@@ -328,7 +328,7 @@ design-step5.md §14, §15 기반. V2 ALB 모듈 수정.
328328

329329
#### Worker 등록
330330

331-
V2는 ASG가 자동 등록했으나, V3은 고정 EC2이므로 `aws_lb_target_group_attachment`6대 수동 등록.
331+
V2는 ASG가 자동 등록했으나, V3은 고정 EC2이므로 `aws_lb_target_group_attachment`Worker 전체 수동 등록. `workers_per_az` 변경 시 자동 반영.
332332

333333
```hcl
334334
resource "aws_lb_target_group_attachment" "workers" {
@@ -517,18 +517,20 @@ K8S 노드 EC2에 추가 적용하는 태그:
517517
518518
### 노드 토폴로지 매핑
519519

520-
Phase 1 기준 CP 1대 + Worker 6대 태그 할당:
520+
CP 1대 + Worker `workers_per_az × 3 AZ`대 태그 할당.
521+
`workers_per_az` 변수로 AZ당 워커 수 조절 (초기 1, prod 목표 2).
521522

522-
| 노드 | `k8s:role` | `k8s:nodepool` | AZ | 서브넷 |
523-
|------|------------|----------------|-----|--------|
524-
| cp | `control-plane` | `system` | 2a | k8s-2a |
525-
| w1 | `worker` | `default` | 2a | k8s-2a |
526-
| w2 | `worker` | `default` | 2a | k8s-2a |
527-
| w3 | `worker` | `default` | 2b | k8s-2b |
528-
| w4 | `worker` | `default` | 2b | k8s-2b |
529-
| w5 | `worker` | `default` | 2c | k8s-2c |
530-
| w6 | `worker` | `default` | 2c | k8s-2c |
523+
| 노드 | `k8s:role` | `k8s:nodepool` | AZ | 서브넷 | 비고 |
524+
|------|------------|----------------|-----|--------|------|
525+
| cp | `control-plane` | `system` | 2a | k8s-2a | 고정 |
526+
| w1 | `worker` | `default` | 2a | k8s-2a | workers_per_az ≥ 1 |
527+
| w2 | `worker` | `default` | 2a | k8s-2a | workers_per_az ≥ 2 |
528+
| w3 | `worker` | `default` | 2b | k8s-2b | workers_per_az ≥ 1 |
529+
| w4 | `worker` | `default` | 2b | k8s-2b | workers_per_az ≥ 2 |
530+
| w5 | `worker` | `default` | 2c | k8s-2c | workers_per_az ≥ 1 |
531+
| w6 | `worker` | `default` | 2c | k8s-2c | workers_per_az ≥ 2 |
531532

533+
> 초기 배포: `workers_per_az = 1` (3대). 안정화 후 tfvars에서 2로 변경, `terraform apply`로 스케일업.
532534
> CP는 `system` 노드풀. 향후 모니터링/인프라 전용 노드 추가 시에도 `system` 노드풀 사용.
533535
534536
### 자동화 파이프라인 연결

wiki/design/step5/node-sizing.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,8 @@ Limit = Request × 2~3 (burst 수용)
310310

311311
### 6.4 결론: t4g.large × 6 (2-2-2)
312312

313+
> **운영 참고**: Terraform `workers_per_az` 변수로 AZ당 워커 수 조절 가능. 초기 배포는 `workers_per_az = 1` (1-1-1, 3대)로 시작, 안정화 후 2로 스케일업.
314+
313315
| 항목 | 노드당 | 6대 합계 |
314316
|------|--------|---------|
315317
| 총 vCPU | 2.0 | 12.0 |

0 commit comments

Comments
 (0)