반응형
SMALL
1. 서버 스펙 산정의 기본 프로세스
1) 요구사항/트래픽 예측
- 동시 접속자 수(Concurrent Users)
- 초당 요청 수(RPS, Requests Per Second)
- 1일/1개월 총 트래픽
- API별 평균/최대 응답시간
- 데이터베이스/캐시/파일 저장소 등 부가 리소스
2) 서비스 특성 분석
- CPU 바운드(연산 많음) vs IO 바운드(네트워크/DB/파일 입출력 많음)
- 실시간성/지연 허용 여부
- 배치/스케줄러 등 부가 작업
3) 성능 테스트(부하 테스트)
- 실제 코드/아키텍처로 JMeter, k6, Artillery 등으로 부하 테스트
- 1코어/1GB/1Pod에서 RPS, 평균/최대 응답시간, 메모리 사용량 측정
4) 산정 공식
- 필요 서버 수 = (예상 최대 RPS) / (서버 1대가 감당 가능한 RPS)
- 필요 메모리 = (최대 동시 요청 처리 시 1프로세스 메모리 사용량) × (동시 프로세스 수)
- 디스크/네트워크는 일/월 트래픽, 로그, 파일 저장량 등으로 산정
2. 실무 예시
예시1) API 서버
- 예상 최대 RPS: 500
- 1대 서버에서 부하테스트 결과: 1코어/2GB에서 200 RPS, 평균 응답 100ms, 메모리 1GB 사용
- 필요 서버 수: 500 / 200 = 2.5 → 3대(여유 포함)
- 메모리: 2GB × 3대 = 6GB
- 디스크: 로그/임시파일 등 일 1GB, 1년 365GB + 여유분
예시2) 배치/정산 서버
- 일일 배치 작업량: 100만건, 1건 처리 10ms → 총 10,000초(약 3시간)
- 병렬처리 가능: 4코어면 4배 빠름 → 1코어당 25만건
- 메모리: 배치 1프로세스 500MB, 4개 동시 실행 → 2GB
3. 클라우드/컨테이너 환경에서는?
- CPU/메모리/디스크/네트워크 리소스 단위로 쪼개서 할당
- Auto Scaling(트래픽 급증 시 자동 증설) 고려
- 최소/최대 인스턴스 수, HPA, VPA 등 정책 설정
4. 실전 팁
- 최초에는 여유 있게(2~3배) 잡고, 실제 트래픽/모니터링 후 조정
- 부하테스트는 꼭 실제 코드/DB/외부 API와 함께 진행
- 로그/백업/캐시 등 부가 리소스도 반드시 포함
- DB/캐시/메시지큐 등은 별도 산정
5. 참고 공식/도구
- k6, JMeter, Artillery: 오픈소스 부하테스트 도구
- AWS Calculator, GCP Calculator: 클라우드 리소스 견적 산정
- Prometheus, Grafana, CloudWatch: 실시간 모니터링/리소스 사용량 분석
결론
- 예상 트래픽/업무량 산출
- 1대 서버의 처리량/메모리/디스크 측정(부하테스트)
- 공식에 대입해서 서버 수/스펙 산정
- 여유분 포함, 실제 운영 후 모니터링/조정
반응형
LIST
'Architecture' 카테고리의 다른 글
마이크로서비스에서 SAGA 패턴 완전 정복: NestJS 실전 예제와 함께 (0) | 2025.05.07 |
---|---|
대기열(Waiting Room) 시스템, 직접 만들까? 외부 솔루션 쓸까? (0) | 2025.04.29 |
MVC vs CQRS: 무엇이 다르고 언제 써야 할까? (0) | 2025.04.16 |
도메인 중심 설계의 정석: Hexagonal Architecture + DDD + CQRS 아키텍처 통합 정리 (0) | 2025.04.09 |
쿠버네티스 클러스터 프로비저닝 도구 알아보기 (0) | 2024.10.19 |