Docker Swarm 환경에서 컨테이너 장애 발생 시 시스템 복구 능력 및 성능 변화를 측정
인프라: Docker Swarm 3-node 클러스터
애플리케이션: Spring Boot API 서버 (replica 3개)
로드밸런서: Traefik
데이터베이스: PostgreSQL
부하 테스트 도구: k6
스크립트
1단계 (2분): VU 0 → 50명으로 증가 (워밍업)
2단계 (3분): VU 50명 유지 (안정 상태)
3단계 (1분): VU 50 → 100명으로 증가 (부하 증가)
4단계 (3분): VU 100명 유지 (피크 부하)
5단계 (1분): VU 100 → 0명으로 감소 (쿨다운)
총 테스트 시간: 9분
최대 동시 사용자: 100명
읽기 작업:
- GET /api/v1/users/me (내 정보 조회)
- GET /api/v1/relationships/me (관계 목록 조회)
- GET /api/v1/patients/{id}/location (환자 위치 조회)
쓰기 작업:
- POST /api/v1/patients/{id}/location (위치 업데이트)
- POST /api/v1/patients/{id}/health-data (건강 데이터 업로드)
| 지표 | 값 | 평가 |
|---|---|---|
| 총 요청 수 | 40,302개 | - |
| 처리량 (RPS) | 74 req/s | 양호 |
| 성공률 | 99.74% | 우수 ✅ |
| 실패율 | 0.26% (106개) | 양호 ⚠️ |
| 평균 응답시간 | 93ms | 보통 |
| 중앙값 응답시간 | 16ms | 우수 ✅ |
| P95 응답시간 | 37ms | 우수 ✅ |
| 최대 응답시간 | 30초 | 일부 타임아웃 발생 ⚠️ |