자가 DDoS 공격: 백엔드 내에서 겪은 무모한 재시도 로직의 교훈

🤖 AI 추천

이 콘텐츠는 백엔드 개발자, 시스템 아키텍트, DevOps 엔지니어 등 안정적인 서비스 운영을 책임지는 모든 IT 전문가에게 매우 유익합니다. 특히 서비스 장애 복구 경험이 적은 주니어 개발자부터, 분산 시스템 설계 및 운영 경험이 풍부한 시니어 개발자까지 모두 공감하고 배울 점을 찾을 수 있습니다. 대규모 트래픽 환경에서의 안정성 확보 및 장애 예방 전략 수립에 실질적인 도움을 줄 것입니다.

🔖 주요 키워드

자가 DDoS 공격: 백엔드 내에서 겪은 무모한 재시도 로직의 교훈

핵심 기술

이 글은 마이크로서비스 아키텍처 환경에서 부적절한 재시도 로직 구현이 어떻게 심각한 서비스 장애(자가 DDoS)를 유발할 수 있는지, 그리고 이를 방지하기 위한 실질적인 방안을 공유합니다.

기술적 세부사항

  • 문제 상황: 외부 서비스(서비스 B) 장애 시 요청에 대한 재시도 로직을 추가했으나, 해당 로직이 비정상적으로 동작하여 자체 시스템에 과부하를 발생시킴.
  • 잘못된 재시도 로직:
    • 기하급수적 백오프(exponential backoff) 미적용
    • 모든 요청에 대해 고정된 횟수(3회)로 재시도
  • 장애 발생 메커니즘:
    • 서비스 B는 이미 배포 문제로 실패 중이었음.
    • 모든 노드에 배포된 서비스 A의 각 인스턴스가 초당 5,000개의 요청에 대해 3번씩 재시도 실행.
    • 총 6개의 인스턴스에서 발생하여 시스템 다운으로 이어짐.
  • 해결 및 권장 사항:
    • 기하급수적 백오프 적용
    • 재시도 횟수 제한 (Retry Budget: 총 요청의 10% 이하)
    • 서킷 브레이커(Circuit Breaker) 패턴 적용
    • 내부 요청에도 속도 제한(Rate Limiting) 적용
    • 재시도 명시적 로깅 및 모니터링 강화

📚 관련 자료