2021년 10월 4일 15:39 UTC, 페이스북과 그 위의 모든 서비스 — 인스타그램, 왓츠앱, 메신저, 오큘러스 — 가 전 세계적으로 먹통이 되었다. 그 후 6~7시간 동안 수십억 명의 사람들이 단순히 이들에 접속할 수 없었다. 원인은 사이버 공격이 아니었다. 일상적인 유지보수 중에 한 엔지니어가 페이스북의 글로벌 백본 네트워크 용량을 평가하기 위한 명령을 실행했다. 그 명령이 잘못되어 실수로 페이스북의 모든 데이터 센터를 그 백본에서 한꺼번에 분리시켰다.
설계가 잘못된 명령 하나를 재앙으로 바꿨다. 페이스북은 자체 DNS 서버를 운영했고, 그 서버들은 데이터 센터와의 연결이 끊기면 자신의 BGP 경로 — 인터넷의 주소록 항목 — 를 철회하도록 구성되어 있었다. 그래서 백본이 다운되자 DNS 서버들은 충실히 나머지 인터넷에 페이스북의 주소가 더 이상 존재하지 않는다고 알렸다. 페이스북은 사실상 인터넷에서 스스로를 삭제했고, 그 철회는 너무 철저히 연쇄되어 페이스북 자체 도구조차 문제를 해결하기 위해 접근하기 어려웠다.
차단은 거의 우스울 정도로 완전했다. 페이스북의 내부 시스템도 다운되었다. 직원들은 외부 이메일을 보낼 수 없었고, 사내 디렉터리에 접근할 수 없었으며, — 헤드라인을 장식한 세부 사항으로 — 같은 네트워크에 의존하던 보안 배지로 사무실 건물과 회의실 문을 열 수도 없었다. 복구를 위해서는 팀이 산타클라라 데이터 센터에 물리적으로 들어가 서버를 수동으로 재설정해야 했다. 서비스는 대략 21:50에서 22:50 UTC 사이에 점차 복구되었다. 페이스북 주가는 그날 거의 5% 하락했고, 마크 저커버그의 개인 재산은 60억 달러 이상 줄었다.
비용은 얼마였나
DNS 서버들은 연결이 끊기면 경로를 자동으로 철회했기 때문에 장애가 연쇄되었고, 복구에는 물리적 접근이 필요해 6시간과 6,000만 달러 이상의 비용이 들었다.
왜 일어났나
적절한 안전장치 없이 실행된 유지보수 명령 하나가 페이스북의 모든 데이터 센터를 백본에서 한꺼번에 분리시켰다.
DNS 서버들은 데이터 센터와의 연결이 끊기면 BGP 경로를 철회하도록 설계되어 있었기 때문에, 장애가 자동으로 페이스북을 인터넷 라우팅 테이블에서 지워버렸다.
복구 도구와 접근 권한(물리적 건물 배지 포함)이 이미 실패한 동일한 네트워크에 의존하고 있었기 때문에 엔지니어들이 수정 작업에 접근할 수 없었다.
시스템에 도달해 변경을 신속히 되돌릴 수 있는 대역 외 경로가 없었다.
교훈
방금 고장 난 것에 의존하지 않도록 복구 경로를 구축하라. DNS, 인증, 출입 배지가 모두 방금 다운시킨 네트워크 위에서 돌아간다면, 스스로를 차단한 것이다.
후속 상황
페이스북 엔지니어링 팀은 다음 날 상세한 설명을 발표했고 회사는 사과했다. 2008년 이후 최악이었던 이 장애는 광고 수익에서 6,000만 달러 이상의 손실을 초래하고 시장 가치에서 수십억 달러를 깎아내렸으며, 잠시 사용자들을 경쟁 플랫폼으로 몰아갔다. 이 사건은 단일 장애점의 위험성, 복구 대상 시스템에 의존하는 복구 시스템, 그리고 보호되지 않은 명령 하나가 인류의 3분의 1이 사용하는 서비스를 어떻게 다운시킬 수 있는지에 관한 네트워크 엔지니어링의 교과서적 사례가 되었다.
근거 확인하기