로컬 환경에서 Docker를 사용하여 AWS 인스턴스 사양과 유사하게 CPU 및 메모리 리소스를 제한하며 NGrinder 성능 테스트를 진행했습니다. 실제 AWS 환경과는 차이가 있지만, 리소스 제한에 따른 성능 변화 추이를 파악하는 데 초점을 맞췄습니다. 테스트 대상 엔드포인트는 메모리 DB에서 목록을 조회하여 응답하는 간단한 로직입니다.

version: '3.8'
services:
app-micro:
image: (임의):latest
container_name: spring-app
environment:
AWS_REGION: ap-northeast-2
ports:
- "80:5000"
- "5001:5001"
- "9010:9010"
- "19999:9999"
restart: always
mem_limit: 1g
cpus: "0.5"
# app-medium:
# image: (임의):latest
# container_name: spring-app
# environment:
# AWS_REGION: ap-northeast-2
# ports:
# - "80:5000"
# - "5001:5001"
# - "9010:9010"
# - "19999:9999"
# restart: always
# mem_limit: 4g
# cpus: "1.0"
# app-large:
# image: (임의):latest
# container_name: spring-app
# environment:
# AWS_REGION: ap-northeast-2
# ports:
# - "80:5000"
# - "5001:5001"
# - "9010:9010"
# - "19999:9999"
# restart: always
# mem_limit: 8g
# cpus: "2.0"
CPU 평균로드 : 50%
TPS : 46.9


CPU 평균로드 : 70%
TPS : 129.6


CPU 평균로드 : 99%
TPS : 318.1


CPU 평균로드 : 99%
TPS : 2845.5


전반적으로 CPU 리소스 제한을 늘릴수록 TPS가 뚜렷하게 증가하는 경향을 보였습니다. 특히 Micro, Small, Medium 사양에서는 CPU 할당량 증가에 비례하여 TPS가 꾸준히 상승하는 것을 확인할 수 있었습니다.
다만, Large 사양에서는 다른 구성에 비해 TPS가 매우 큰 폭으로 상승하여 이 부분에 대한 추가적인 검증이 필요해 보입니다. 현재까지의 결과로는 CPU 리소스가 성능에 중요한 영향을 미치는 것을 시사하지만, 특정 사양에서는 다른 요인이 복합적으로 작용할 가능성을 염두에 두고 분석을 진행할 예정입니다.