N° 01 — 목록
'Infra Architecture/Foundations' (3)
-
Infra Architecture/FoundationsFoundations - 03. fault domain과 blast radius
장애는 한 점에서 시작해 한 묶음을 죽인다 — fault domain과 blast radius2018년 10월 21일, GitHub는 미국 동부와 서부 리전 사이에 43초 동안 네트워크 분단이 생겼다. 짧은 시간이라 사용자는 거의 눈치채지 못했지만, 그 43초 동안 MySQL 동기화가 양쪽에서 동시에 진행되는 split-brain 상태가 만들어졌다. 양쪽 데이터베이스가 미세하게 다른 상태로 갱신되기 시작한 것이다. GitHub 팀이 이를 감지하고 복구 작업에 들어갔을 때, 단순히 "다시 연결"로는 끝나지 않았다 — 양쪽 상태의 불일치를 조율하는 데 24시간이 걸렸고, 그동안 GitHub 대부분의 서비스가 중지됐다. 사용자 3천5백만 명에게 영향을 미친 이 사건의 핵심은 "장애가 짧았다"가 아니라 — 두 ..
-
Infra Architecture/FoundationsFoundations - 02. 인프라 품질 속성
가용성 99.9%는 1년에 9시간 다운되겠다는 약속이다AWS S3의 공식 문서에는 "11개의 9"라는 숫자가 등장한다. 99.999999999% 내구성(durability). 읽기 쉽게 풀면, 1,000만 개의 객체를 1만 년 동안 저장해도 1개가 손실될까 말까 한다는 뜻이다. 이 숫자가 의미 있으려면 "11개의 9"가 정확히 무엇을 재는지, 가용성(availability)과 내구성(durability)이 어떻게 다른지, 그리고 이런 수치를 SLO(Service Level Objective)로 채택했을 때 무엇을 약속한 건지 각각 명확해야 한다.흔히 "품질 속성"이라 부르는 "~성"들은 인프라 결정을 갈라놓는 힘이다. 두 인프라가 똑같이 "웹 서비스를 호스팅한다"는 기능을 수행해도 구조가 전혀 달라지는 ..
-
Infra Architecture/FoundationsFoundations - 01. 인프라 아키텍처란 무엇인가
인프라는 도시의 도로망과 같다 — 한 번 깔면 바꾸기 어렵다2017년 2월 28일, 미국 동부 시간 오전 9시 37분. 한 AWS 엔지니어가 S3 청구 시스템 디버깅을 위해 표준 절차에 따라 명령 하나를 실행했다. 문법은 맞았지만 대상이 조금 달랐다. 그 한 번의 명령이 S3 인덱스 서브시스템의 용량을 계산하는 데 필요한 서버를 대거 오프라인으로 만들었다. 이후 약 4시간 동안 Slack, Trello, Quora, 이미지 호스팅 서비스들이 줄줄이 멈췄다. 인터넷의 상당 부분이 한 리전의 한 서브시스템 장애에 종속돼 있었다는 게 그제야 드러났다.이 사건이 보여주는 핵심은 "AWS가 부실했다"가 아니다. 오히려 AWS는 그 장애를 4시간 안에 복구하며 1차 사고 보고서를 당일에 공개했고, 며칠 뒤 상세 p..