1월, 2026의 게시물 표시

Redis 대역폭 초과 장애와 대응 과정 공유

안녕하세요. 29CM의 Customer Engagement Engineering 팀에서 상품 전시 영역을 책임지고 있는 김송이입니다. 2025년 겨울, 29CM 최대 규모의 블랙프라이데이 행사인 이구위크에서 발생한 Redis 대역폭 초과 장애에 대한 이야기와 그 대응 과정에 대해 공유하고자 합니다. 이 글에서는 장애의 원인 분석, 즉각적인 대응 조치, 그리고 향후 재발 방지를 위한 개선 작업에 대해 자세히 설명하겠습니다. Redis 대역폭 초과 장애: 원인 분석 과정 이구위크가 시작된 첫날, 상품 전시 화면에서 장애가 발생했습니다. 초기에는 검색 결과와 상품 리스팅을 담당하는 서버의 일부 파드가 다운되면서 트래픽을 수용하지 못하게 되었습니다. 남아있는 파드는 처리 가능한 트래픽을 초과했고 결국 Netty 이벤트 루프의 포화 상태를 초래했습니다. 여기서 주목해야 할 점은, Redis의 헬스체크 실패 로그가 나타났다는 것입니다. 시스템 메트릭을 확인한 결과, CPU와 메모리는 정상 범위에 있었지만 Redis와의 통신에 실패한 이유를 찾기 위해 네트워크 지표를 살펴보았습니다. 이 과정에서 Redis 노드 타입이 cache.r7g.large로 설정되어 있었고, 이는 기본 네트워크 대역폭이 0.937Gbps라는 것을 알게 되었습니다. 이는 하루 동안 불규칙적인 트래픽의 증가로 인해 순간적으로 이 대역폭을 초과하게 되는 상황이 발생했습니다. 결과적으로 Redis의 버스트 크레딧이 소진되면서 Throttling이 제대로 작동하게 되었고, 이로 인해 장애가 발생했습니다. 대응 과정: 즉각적인 조치 및 수정 장애가 발생한 후, 신속하게 원인을 파악하고 대응하기 위해 노력했습니다. 장애가 발생한 시간인 20:58에 크레딧이 고갈되면서 발생한 Throttling으로 인해 Redis 연결과 명령 처리에 큰 지연이 발생하였습니다. 이 시점에서 획기적인 조치를 취하기로 결심했으며, Redis 노드를 스케일업하기로 결정했습니다. 기존의 cache.r7g.larg...