Phase 3 — EKS 1.35 (Timbernetes) + Istio Ambient (v4)

v3 + Istio Ambient Mode (ztunnel) + EKS 1.35 신기능 (In-Place Pod Resize · HPA Tolerance · PreferSameNode) 반영

ISTIO AMBIENT
Sidecarless 메시
ztunnel (노드 DaemonSet · L4 mTLS · Rust) 기본 사용.
waypoint (Envoy · L7) 은 정책 필요 namespace에만 선택 배포.
메모리 70%↓ · Pod 부팅시간↓ — 타임딜 스파이크에 직결.
EKS 1.35
Timbernetes 신기능 활용
In-Place Pod Resize (GA) — Pod 재시작 없이 CPU/Mem 조정
HPA Configurable Tolerance (Beta) — per-resource 마진
PreferSameNode TrafficDistribution (GA) — 같은 노드 우선
PAYMENT FLOW 결제 2-step 흐름 — 리다이렉트 기반 PG 연동
STEP 1 · 동기
POST /orders
Idempotency 저장
재고 차감(gRPC)
PG URL 반환
BROWSER REDIRECT
프론트 → PG사
토스페이먼츠 SDK
결제창 · 카드 승인
(백엔드 무관여)
STEP 2 · 동기
POST /orders/confirm
PaymentClient.confirm()
PG 서버 승인 호출
→ completeOrder + SQS publish
핵심: 메시지 큐 기반 비동기가 아닌 리다이렉트 기반 시간축 비동기. 각 HTTP는 동기, Idempotency Key로 재시도 안전성 확보.
SLO
서비스 수준 목표 — 모든 자동화의 숫자 근거
AVAILABILITY
99.5%
결제 성공률 · 30일 롤링
LATENCY
P99 < 500ms
주문 API 응답시간
ERROR BUDGET
0.5%
월간 허용 실패율
USED BY
→ Rollouts AnalysisRun 기준
→ HPA/KEDA 임계값 근거
→ Grafana Alert rule
CI 파이프라인 — 코드 → 이미지
개발자 push
feature 브랜치 → main
Webhook
GitHub Actions
build + test
docker build
Docker 이미지
order-service:<sha>
push
Amazon ECR
Private 레지스트리
취약점 스캔
manifest
image tag 업데이트
K8s manifest repo
image: ...:<sha>
ArgoCD
Git 폴링
드리프트 감지
OutOfSync
→ 재배포
Argo Rollouts
카나리 배포
10%→50%→100%
AnalysisRun
자동 판단
Prometheus AnalysisRun (SLO 기반)
결제 성공률 ≥ 99.5% + P99 ≤ 500ms 유지 → 다음 단계 / 위반 → 자동 롤백
사용자
HTTPS
HTTPS
AWS ALB
ACM 인증서
L7 라우팅
AWS Load
Balancer Controller
K8s Ingress
Ingress → ALB
자동 프로비저닝
Istio GW
Istio Ingress GW
mTLS 경계
VirtualService 라우팅
v1 90% / v2(카나리) 10%
VPC VPC 10.0.0.0/16 — ap-northeast-2 (Multi-AZ: 2a / 2c)
Public Subnet (2a / 2c) — ALB · NAT Gateway
태그: kubernetes.io/role/elb=1
Private Subnet (2a / 2c) — EKS 노드 · RDS · ElastiCache
태그: karpenter.sh/discovery=pposiraegi-eks
EKS Cluster — Control Plane (AWS 관리) + Worker Nodes (Private Subnet)
플랫폼 도구
Karpenter on EKS 1.35
Spot 80% / On-Demand 20%
JIT 노드 프로비저닝
Bottlerocket 1.20+ (containerd 2.0)
Pause Pod
KEDA NEW
Redis 대기 큐 길이 기반
결제 Pod 스케일 트리거
ScaledObject CRD
도메인 메트릭
Istio Ambient v1.24+
ztunnel 노드 daemon (L4 mTLS)
waypoint 선택 배포 (L7)
전 구간 암호화 · sidecarless
메모리 70%↓
External Secrets Op.
Secrets Manager → K8s Secret
IRSA로 접근 권한
Rotation 자동
PDB + LBC
PodDisruptionBudget
AWS LB Controller
Metrics Server (HPA용)
OIDC Provider
SA → STS → IAM Role
IRSA의 연결고리
파드 단위 최소 권한
애플리케이션 서비스 (namespace: default)
api-gateway
Spring Cloud Gateway
via ztunnel
order-service
Spring Boot 3 · gRPC
+ PaymentClient (내부)
via ztunnel
product-service
Spring Boot 3 · gRPC
via ztunnel
user-service
Spring Boot 3 · gRPC
via ztunnel
HPA — 가로 스케일
CPU 70% · per-resource tolerance
(1.35 Beta)
KEDA — 도메인 기반
Redis 대기큐 > 300 · 결제 Pod 선제 확장
In-Place Resize — 세로 스케일 1.35 GA
Pod 재시작 없이 CPU/Mem 즉시 증가
↓ Pod 부족 시 Karpenter가 노드 증설 ↓
서비스 간 흐름: trafficDistribution: PreferSameNode (1.35)
[동기 내부] order → gRPC(ztunnel mTLS) → product (재고 차감) · user (인증 검증)
[동기 외부] order.PaymentClient → HTTPS → PG사 API (결제 승인)
[비동기 side-effect] orderSQSorder @SqsListener (알림 · 통계 · Outbox)
Karpenter 노드 풀 (Private Subnet · Multi-AZ)
Spot 1 (2a) Spot 2 (2c) Spot 3 (2a) Spot 4 (2c) On-Demand (2a) Pause Pod ×2
파드 늘면 자동으로 노드 증설 / EventBridge 중단 신호 → Cordon → Drain → 새 노드 JIT
IRSA → order-sa: SQS:SendMessage · SQS:ReceiveMessage product-sa: S3:GetObject (상품 이미지) user-sa · gateway-sa: 권한 없음
Observability
(namespace: monitoring)
Prometheus
메트릭 15s 스크레이프
7일 리텐션
Loki + Promtail
로그 집계
파드별 라벨링
Tempo
분산 트레이싱
병목 추적
Grafana
단일 대시보드
알람 + 온콜
Namespace: default (앱) kube-system (coredns, kube-proxy, vpc-cni) istio-system monitoring argocd karpenter external-secrets
AWS 관리형 서비스 — EKS 1.35 (Timbernetes · 2026-01-28 출시)
RDS PostgreSQL — 주문/상품 DB ElastiCache Redis — 재고 게이트 SQS — 결제 완료 후 side-effect 이벤트 큐 Secrets Manager — 시크릿 원본 S3 — 정적 파일 / 아티팩트 EventBridge — Spot 중단 신호 CloudTrail — 감사 로그 ACM — TLS 인증서
Observability 실제 비용 — "모니터링도 결국 돈이다"
4서비스 × 파드 2~10개 기준 · 멘토님 지적에 대한 답변
자체 호스팅 (현재 구성)
Prometheus EBS 저장소 (7일)~$1/월
Loki + Tempo 저장소 (7일)~$2/월
Grafana 자체 (부하 작음)~$0
컴퓨트 — 기존 노드에 얹기포함됨
컴퓨트 — 전용 t3.medium (선택)+$30/월
총합 (공유 노드 기준)~$3~5/월
AWS 관리형 전환 시
Managed Prometheus (AMP)~$15/월
CloudWatch Logs (수집 + 저장)~$10/월
X-Ray 트레이싱~$5/월
CloudWatch 알람 / 대시보드~$3/월
운영 부담 → 0 (AWS 관리)절감
총합~$30~80/월
판단 근거: 저희 규모에서 자체 호스팅 + 공유 노드로 월 $3~5 수준. 멘토님 지적처럼 "모니터링도 돈"이 맞지만, 장애 1회 발생 시 디버깅 3시간 → 5분 단축으로 월 1회만 장애가 나도 비용 회수됨.
트레이드오프: 자체 호스팅은 싸지만 운영 부담이 있음. 팀 성숙도가 올라가면 AWS 관리형으로 이관해 운영 복잡도를 비용으로 치환하는 것도 합리적 선택.
EKS / Kubernetes
Istio
Karpenter / LBC
애플리케이션 파드
Prometheus / Argo
AWS 서비스 / VPC
CI 파이프라인