Skip to content

dev 부하테스트: 전용 DB·부하기 구성과 앱 한계 탐색 #911

Description

@m-a-king

prod DB 를 자체 관리 EC2 MySQL 로 이관(#899)하고 앱이 t4g.small 에서 도는 현 구성에서, 앱 계층이 어느 부하까지 버티는지 실측한 적이 없다. 그런데 dev 에 그냥 부하를 쏠 수는 없다:

  • dev MySQL 은 앱 박스 동거 컨테이너라 부하 데이터가 dev 데이터를 오염시킨다.
  • 등록 경로는 파싱 큐를 통해 prod 와 공유하는 extractor 박스를 자동 호출한다 (ItemParsingScheduler 1초 주기, 끄는 스위치 없음).
  • nginx IP 레이트리밋(전역 초당 20/IP, 등록 POST 분당 30/IP)이 부하 자체를 차단한다.

무엇을

격리된 부하테스트 환경을 임시 구성해 앱 한계(TPS 상한, 병목 지점)를 실측하고, 종료 후 완전 원복한다.

  • terraform 에 부하테스트 전용 리소스 추가: 전용 DB 박스(넉넉한 스펙, 백업·prevent_destroy 없음), 부하기 박스(k6 + extractor stub, EIP 고정), SG 배선. -target apply/destroy 로 생애주기 관리.
  • nginx dev conf 에 부하기 EIP 레이트리밋 제외(geo + map). 부하테스트 브랜치에만 두고 dev 머지 없이 workflow_dispatch 배포로 윈도우 동안만 적용, dev 브랜치 재배포로 원복.
  • dev JVM 을 prod 와 동일(768m/Xmx512)하게 브랜치 한정 상향, HikariCP 풀은 SSM 파라미터(relaxed binding)로 상향. prod 이전 가능한 결과를 얻기 위함.
  • extractor stub: 계약 기준 2xx 고정 응답 + /actuator/health 200(배포 가드 통과) + 지연 시뮬레이션. GH dev environment 의 EXTRACTOR_PROD_ADDRESS override 로 dev 배포만 stub 을 보게 한다.
  • 합성 시드 데이터(PENDING 0, 전부 READY), k6 시나리오(게스트 토큰 사전 발급, 조회 mix + 등록·쓰기), 윈도우·원복 런북.
  • 산출물: 한계 TPS, 병목 지점, prod 적용 권고 리포트.

Metadata

Metadata

Assignees

Labels

infra운영 환경 (IaC·클라우드 리소스·secret·배포 workflow)

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions