sayu.day
Backend/DevOps

스파이크 트래픽 대응 전략

티켓팅/플래시세일 같은 급격한 쓰기 폭주 상황을 안정적으로 처리하는 핵심 전략을 정리합니다.

발행 2025년 12월 30일1158

같은 주제에서 이어 읽기

서비스 규모에 따른 스케일링 전략

Backend/DevOps 안에서 이어지는 글

문제 특성

스파이크 트래픽은 읽기보다 쓰기 병목을 만듭니다. 핵심 리스크는 DB 락 경합과 커넥션 고갈입니다.

우선 적용할 3가지

  1. 동기 처리 -> 큐 기반 비동기 처리
  2. 입장 제어(rate limit + 대기열)
  3. 재고/자원 사전 할당(분산)

1) 큐 기반 비동기

API는 즉시 "접수"를 반환하고 실제 처리는 worker가 순차 처리합니다. 이 방식으로 DB에 직접 몰리는 순간 쓰기를 완화합니다.

2) 사용자 입장 제어

  • 초당 허용량 제한
  • 대기 순번 제공
  • 클라이언트 폴링 주기 통제

사용자 체감과 시스템 보호를 동시에 잡는 데 가장 효과적입니다.

3) 멱등성 보장

같은 요청이 재시도돼도 결과가 한 번만 반영되도록 키 설계가 필요합니다. 예: request_id, user_id + event_id

자주 하는 실수

  • 재시도 정책만 넣고 멱등성 키 없음
  • 큐 길이/처리량 모니터링 없이 worker만 증설
  • 실패 시 보상/환불 경로 미정의

요약

스파이크 대응의 본질은 처리량 확장이 아니라 쓰기 경합 제어입니다. 큐, 입장 제어, 멱등성 세 축을 먼저 고정하면 장애 확률이 크게 줄어듭니다.

다음 읽기

이 생각이 이어지는 방향

Backend/DevOps 더 보기
공유

읽은 뒤의 대화

읽은 뒤의 생각을 이어갑니다

질문, 반론, 조용한 후속 메모를 이 글 아래에 남길 수 있습니다.

sayu.day는 생각과 작업의 흔적을 천천히 정리하는 개인 출판물입니다.
직접 겪고 검토한 내용, 다시 읽을 만한 아이디어, 작업하며 남긴 메모를 모읍니다.
시간이 지난 글은 현재의 판단과 다를 수 있어 업데이트 맥락을 함께 남깁니다.

© 2026 sayu.day