데브허브 | DEVHUB | How one company took down internet yesterdayHow one company took down internet yesterday
- Cloudflare의 중요성: ChatGPT, Claude 등 주요 웹사이트를 포함한 인터넷의 상당 부분을 마비시켜 Cloudflare가 인터넷 인프라에서 차지하는 핵심적인 역할을 부각시켰습니다. 🌐
- 장애 원인: 사이버 공격이나 DDoS가 아닌, 내부 데이터베이스 시스템 변경으로 인한 것이었습니다. ⚙️
- 구체적인 문제: ClickHouse 데이터베이스 쿼리 변경으로 인해 봇 관리 시스템이 사용하는 "피처 파일"에 중복 항목이 생성되어 파일 크기가 두 배로 커졌습니다. 💾
- 전파 및 영향: 이 비정상적으로 커진 피처 파일이 Cloudflare의 전 세계 네트워크에 있는 모든 머신으로 전파되었습니다. 🌍
- 글로벌 중단: 파일이 전 세계적으로 전파되었기 때문에, 이번 장애는 특정 지역에 국한되지 않고 전체 시스템에 영향을 미치는 전역적인 중단이었습니다. 💥
- 오류 패턴: 초기에는 ClickHouse 쿼리가 5분마다 정상 또는 비정상 구성 파일을 번갈아 생성하여 500 에러가 급증과 감소를 반복하는 불안정한 패턴을 보였습니다. 📈
- 실패 상태 안정화: 결국 모든 ClickHouse 노드가 비정상 구성 파일만 생성하게 되면서, 네트워크 전체가 지속적인 500 에러 상태로 안정화되었습니다. 📉
- 봇 관리 시스템: Cloudflare는 머신러닝 모델을 사용하여 봇 점수를 생성하고, 새로운 봇 공격에 대응하기 위해 이 피처 파일을 5분마다 업데이트합니다. 🤖
- 장애 메커니즘: 과도하게 커진 피처 파일이 각 머신의 봇 관리 모듈에 로드될 때 오류를 유발하여 네트워크 전체의 시스템 충돌로 이어졌습니다. 💣
- 프록시 버전별 영향: 새로운 프록시 서비스(FL2)를 사용하는 고객은 500 에러를 경험했지만, 기존 프록시(frontline) 고객은 에러 없이 봇 점수가 잘못 생성되었습니다 (모든 트래픽에 봇 점수 0 부여). 🔄
- 상태 페이지의 중요성: Cloudflare의 상태 페이지는 AWS(CloudFront)에 호스팅되어 있었기 때문에, 대규모 트래픽 급증에도 불구하고 대부분 작동하여 외부 호스팅의 중요성을 입증했습니다. ✅
- Cloudflare의 규모: Cloudflare는 초당 약 2,800만~3,000만 건, 하루 약 2조 5천억 건의 요청을 처리하며, 이번 장애의 엄청난 파급력을 보여주었습니다. 🚀