클라우드

stg, 5만 명 부하 테스트 환경

← HomeLab

dev에서 확인한 한계와 스펙을 입력으로, 비용을 따져 AWS에 다시 설계한 부하 테스트 환경. Terraform으로 EKS 노드 7대(app 4대, booking 2대, 관측 1대)를 AZ 3개에 구성. 서비스는 ALB로 인터넷 공개(443), EKS API와 Grafana는 집 공인 IP만 허용.

클라우드 구조

집 ArgoCD 허브 GitLab CI AWS ap-northeast-2 서울 동기화, 집 IP만 승격 push EKS 컨트롤 플레인 ECR S3 Secrets Manager VPC pull 사용자 IGW ALB AZ 2a AZ 2b AZ 2c EKS m5.xlarge 7대 app app booking Redis 복제본 app RDS 대기 Redis 주 app booking 관측 RDS 주 queue booking Kafka 브로커 관측 (LGTM) 복제
AZ 3개에 노드와 DB, 캐시를 나눈 배치. 2026-09-14 클러스터 기준(주요 파드만).

설계 결정

온프레미스 대비
항목선택이유
입구MetalLB와 Traefik, cert-manager에서 ALB ACM으로MetalLB는 VPC에서 동작하지 않고, ALB가 TLS까지 종료해 cert-manager가 필요 없음
쿠버네티스k3s(VM 3대 직접 설치)에서 EKS 관리형으로k3s는 노드가 컨트롤 플레인까지 실행해 파드용 메모리가 줄어듦. EKS는 컨트롤 플레인을 AWS가 맡음
스토리지정적 PV에서 EBS CSI 드라이버와 gp3 동적 생성으로PVC마다 볼륨이 자동 생성됨. 대신 볼륨은 생성된 AZ에서만 연결
MySQL과 Redis파드에서 RDS Multi-AZ와 ElastiCache 복제본 1로MySQL은 prd에서 쓸 관리형으로 측정. 둘 다 AZ 장애 시 AWS가 자동 전환
Kafka와 관측클러스터 안 유지MSK는 하루 약 $3.6이 추가되고, 관측은 dev와 같은 차트로 구성
stg에서 정한 것
항목선택이유
노드 배치AZ 3개에 app 4대, booking 2대(AZ별 taint), 관측 1대(AZ 고정)Kafka 브로커를 AZ마다 1대 두어 AZ 장애에도 과반 유지. booking은 JVM 컴파일이 브로커 CPU를 점유해 분리
노드 타입과 수m5.xlarge 고정. t 계열과 오토스케일은 쓰지 않음크레딧이 고갈되거나 자동 증설이 있으면 먼저 막힌 곳을 구분할 수 없음
파드의 AWS 권한IRSA 역할 4개. EBS CSI, ALB Controller, 관측 S3, CloudWatch노드 역할에 주면 그 노드의 모든 파드가 가지게 됨. ServiceAccount 단위로 분리
Redis 접근TLS와 AUTH인증이 없으면 6379에 닿는 파드 하나가 대기열과 좌석 락, 입장 인증을 읽고 씀. 보안 그룹은 출발지만 확인

트러블슈팅

증상원인조치
노드그룹이 CREATING에서 20분 넘게 멈춤. CloudTrail에 오류 없음계정 vCPU 한도 32 소진. 원인은 ASG scaling activities에만 기록됨한도를 64로 증설해 1분 23초 뒤 ACTIVE
관측 노드 교체 후 Mimir ingester 95분 Pending으로 metric 저장 중단노드그룹에 서브넷 3개를 지정해 새 노드가 2b에 생성됐는데, EBS 볼륨은 2c에만 연결 가능관측 노드그룹을 볼륨이 있는 AZ로 고정

결과

  • Terraform 자원 65개로 AWS EKS stg 구축: 첫 생성 30-40분
  • stg에서 5만 명까지 부하 테스트 수행: 판정과 병목은 부하 테스트
  • AWS 비용 US$198.96: stg 3일(2026-09-12에서 14)에 부하 발생기 포함. 크레딧 US$198.75 적용(크레딧 소진), 종료 후 AWS 자원 전부 삭제
    • EC2 $130.42: EKS 노드 m5.xlarge 7대(app 4, booking 2, 관측 1)와 부하 발생기 c5.2xlarge 최대 4대
    • RDS $26.54: MySQL db.m5.large Multi-AZ
    • ElastiCache $21.39: Redis cache.m5.large 2대(주와 복제본)
    • EKS 컨트롤 플레인 $5.54, EC2 기타 $5.26, ALB $4.19, VPC $4.02, 기타 $1.60

한계

  • 가동 기간 3일: 구축과 부하 검증용으로만 띄운 뒤 정리. 장기 가동과 업그레이드, 장애 대응 경험이 없음
  • 노드가 퍼블릭 서브넷: AZ별 NAT 비용을 피해 보안 그룹으로 제한. prd는 프라이빗 서브넷과 AZ별 NAT
  • DB 보안 그룹은 노드 단위: 출구 NetworkPolicy가 없는 파드(관측 Job)도 RDS에 연결됨
  • 허브가 집에 위치: 집 공인 IP가 바뀌면 EKS API 허용 목록을 다시 적용
  • 관측 단일 AZ: 해당 AZ에 장애가 나면 관측이 중단

기술 스택

AWS(EKS, VPC, IAM/IRSA, RDS, ElastiCache, S3, ECR, ACM, ALB, Secrets Manager, CloudWatch), Terraform, Strimzi