Cloudflare는 항상 발생한 장애를 투명하고 자세하게 공개하기 때문에 좋아합니다. 각 회사마다 상황은 다르지만 다른 회사가 겪은 장애에서 배울수 있는 것도 많고 설계할 때 고려할 수 있는 부분도 많이 배울 수 있습니다.


지난 11월 14일 Cloudflare에서 3.5시간 정도 고객이 전송하는 로그의 55%가 유실되는 장애가 발생했습니다. Cloudflare Logs는 모든 이벤트 로그를 고객이 볼 수 있도록 제공하는 기능인데 하루에 4조 5천억개의 이벤트 로그를 전송하고 있습니다.


이 시스템에는 로그를 일정 크기로 사용자에게 푸시하는 Logpush가 있습니다. 글로벌 네트워크에서 Logfwdr이라는 컴포넌트가 로그를 받아서 Logreceiver로 보내게 되고 Logreceiver는 Buftee 컴포넌트로 보내서 버퍼링되는 데 사용자별로 따로 버퍼링하기 때문에 문제가 발생해서 고객간에는 영향을 주지 않는 구조로 만들어졌습니다. Logpush는 Buftee에서 로그를 읽어서 고객에게 전달하게 되고 이 모두는 Golang으로 작성되었습니다.


이번 장애는 Logfwdr에 새로운 구성을 추가하다가 실수로 빈 내용의 구성이 적용되었고 이를 인지하고 5분 이내에 롤백했습니다. 하지만 이 시스템을 구축한 초창기에 안정장치로 Logfwdr 구성을 사용할 수 없는 경우에는 로그 손실을 방지하기 위해 Logpush를 성정하지 않은 모든 고객에게 로그를 보내도록 만들어져 있었습니다. 이번 실수로 이 안정장치가 발동되었고 이 과부하로 인해서 Buftee는 엄청나게 많은 버퍼를 만들게 되었고 이를 복구하는데 몇시간이 걸렸다고 합니다.


https://blog.cloudflare.com/cloudflare-incident-on-november-14-2024-resulting-in-lost-logs/

Cloudflare incident on November 14, 2024, resulting in lost logs

The Cloudflare Blog

Cloudflare incident on November 14, 2024, resulting in lost logs

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 12월 15일 오전 3:27

 • 

저장 3조회 1,462

댓글 0