데브허브 | DEVHUB | Amazon's Secret to 85,000 Orders/Minute | Black Friday ArchitectureAmazon's Secret to 85,000 Orders/Minute | Black Friday Architecture
- 웹사이트는 블랙프라이데이와 같은 피크 트래픽 시점에 쉽게 다운될 수 있으며, 이는 월마트, AWS, 클라우드플레어 같은 대기업도 겪는 문제이다. 💥
- 일반적인 웹 애플리케이션은 CDN, 로드 밸런서, 애플리케이션 서버, 데이터베이스(캐싱 포함), 서드파티 서비스 등 여러 계층으로 구성된다. 🏗️
- 데이터베이스는 동시 연결 수에 제한이 있어, 트래픽이 몰리면 쿼리 대기열이 길어지고 타임아웃 및 오류를 유발하는 첫 번째 병목 지점이 된다. 📉
- 느린 쿼리 하나가 전체 시스템 장애로 이어질 수 있으며, 이를 방지하기 위해 연결 풀링, 쿼리 최적화, 읽기 복제본 사용이 중요하다. 🔍
- 애플리케이션 서버는 유한한 처리 용량을 가지며, CPU 집약적 작업이나 데이터베이스 지연으로 인해 요청이 쌓이면 메모리 고갈 및 성능 저하가 발생한다. 💻
- 캐싱은 데이터베이스 부하를 줄이는 데 필수적이지만, 캐시 스탬피드, 잘못된 캐시 무효화, 메모리 부족 등의 고유한 실패 모드를 가진다. 💾
- CDN은 정적 콘텐츠를 사용자에게 가까운 서버에서 제공하여 인프라 부담을 크게 줄이지만, CDN 자체의 장애나 잘못된 설정으로 인해 문제가 발생할 수 있다. 🌐
- 결제 처리기, 인증 제공업체 등 외부 서드파티 서비스의 성능 저하 또는 장애는 시스템 전체의 신뢰성에 직접적인 영향을 미치며, 이는 통제 불가능한 요소이다. 🤝
- 블랙프라이데이와 같은 피크 이벤트 시에는 각 계층의 병목 현상이 연쇄적으로 발생하고, 사용자들의 반복적인 새로고침이 부하를 가중시키는 악순환을 만든다. 🔄
- 아마존과 같은 대규모 기업들은 부하 및 스트레스 테스트, 카오스 엔지니어링, 사전 용량 계획, 공격적인 캐싱 전략을 통해 시스템 안정성을 확보한다. 🧪
- 실질적인 해결책으로는 데이터베이스 읽기 복제본, 연결 풀링, 쿼리 인덱싱, 애플리케이션의 수평 확장, 비동기 처리, 다중 CDN 전략, 서드파티 서비스에 대한 폴백 및 서킷 브레이커 구현 등이 있다. 🛠️
- 정기적인 부하 및 스트레스 테스트, 그리고 오류율, 응답 시간, 리소스 사용량 등에 대한 철저한 모니터링 및 알림 설정은 문제 발생 전 감지에 필수적이다. 🚨