목차
개인적으로 분산 시스템과 안정성(Reliability)에 대한 관심이 많다. 특히 예전에 EDA서비스를 설계하면서, 서비스가 성장하면서 필연적으로 맞닥뜨리게 되는 트래픽 증가, 장애 상황, 그리고 그 속에서 어떻게 시스템의 견고함을 유지할 것인가에 대한 분산 시스템 설계에 대한 고민이 많았다. (그런 고민 중 하나에는 재시도 로직이 있었는데, 당시 Spring + Kafka 를 사용중이어서 서킷 브레이커 패턴 구현할 때 Resilience4J 같은 거 그냥 쓰면 되겠지~ 하고 별생각없이 넣었던 기억이 난다)
흔히 재시도(Retry)나 서킷 브레이커(Circuit Breaker)는 분산 시스템의 안정성을 위한 "모범 사례"로 통용된다. 하지만 이 강연에서는 이러한 기법들이 때로는 시스템을 더 심각한 장애로 몰아넣을 수 있다는 내용으로 시작했다. "우리가 클라이언트에게 복원력을 주기 위해 만든 메커니즘이 오히려 끝없는 다운타임을 초래하게 된다"는 말은 흥미로운 주제였다.
또한, 테일 레이턴시(Tail Latency) 문제나 메타 안정성(Meta-Stability)과 같은 개념은 실제 프로덕션 환경에서 반드시 이해하고 대비해야 할 부분이라고 생각한다. 특히 "블랙 프라이데이"와 같은 대규모 트래픽 이벤트를 겪어본 사람이라면 시스템이 마치 도미노처럼 무너지는 경험을 해본 적이 있을 것이다. 꼭 대규모 트래픽이 아니더라도, MSA와 같은 분산 아키텍처에서 시스템을 모니터링하고 안정화하는 데에는 정말 높은 비용이 든다.
AWS가 이러한 난제를 어떻게 바라보고, 어떤 시뮬레이션과 통계적 접근을 통해 해결해나가는지에 대한 노하우가 궁금해서 이 강연을 선택하게 되었다.
<aside> 💡
핵심 요약
본 문서는 2025 AWS Summit에서 진행된 'AWS가 알려주는 분산 시스템 안정화' 강연 내용을 바탕으로, 대규모 분산 시스템에서 안정성을 확보하기 위한 핵심 전략과 AWS의 실전 경험을 분석합니다. 강연은 기존의 상식적인 접근 방식(재시도, Circuit Breaker)이 오히려 문제를 악화시킬 수 있음을 지적하며, 보다 정교하고 실용적인 해결책들을 제시합니다.
주요 핵심 내용:
AWS는 분산 시스템 안정화의 핵심을 "복원력(Resilience)"과 "회복력(Recovery)"에 두며, 이를 위해 재시도, Circuit Breaker, Tail Latency 관리, 그리고 Meta-Stability 개념을 설명하고 시뮬레이션을 통한 예측의 중요성을 강조했습니다.
요청자 입장에서 재시도 로직을 어떻게 만들어야 할까.
재시도(Retry)는 분산 시스템에서 흔히 사용되는 복원력 메커니즘이지만, 잘못 적용될 경우 오히려 시스템을 위험에 빠뜨릴 수 있습니다.