
DevOps 엔지니어의 Redis Test 분투기 - Part 1
두줄요약
Redis 키 만료 시 동시 GET·SET이 집중되는 장애 상황을 API와 nGrinder로 재현했습니다.\n반복 조회 로직 제거로 CPU 사용률과 TPS 저하를 완화하고 운영 주의점을 정리했습니다.
문제 상황
- MSA 전환 과정에서 Look-Aside-Caching 기반 API의 Redis 키 조회 실패로 AWS RDS 부하 집중
- Redis 표준 규격과 성능 기반 사이징 사례 부재
원인 분석
- 키 만료 또는 미존재 시 다수 요청이 동시에 GET·SET·값 검증을 수행하는 구간의 오류와 TPS 저하
- 단일 키를 반복 확인하는 loop 로직에서 Redis CPU 사용률 25% 이상 상승
해결 방법
- Elasticache 외부 제약과 장애 재현 필요성에 따라 Node.js·Express API와 nGrinder 부하 테스트 구성
- Redis Strings에 60초 expire를 적용한 GET/SET 로직으로 동시 요청 상황 재현
- loop 제거 후 동일 조건 재시험으로 CPU 사용률 감소와 평균 TPS 향상 확인
주의할 점
- 데이터 특성에 맞는 Redis Collection 선택과 빈번한 특정 키 변경 회피
- Redis 무응답 시 DB 부하 집중을 막기 위한 장애 대응책 준비
- 물리 메모리 초과, 느린 명령어, Cluster·Failover 모드 용도 구분 검토

