N° 01 — 목록

'분류 전체보기' (197)

  1. Software Architecture/Foundations

    Foundations - 06. IaC 철학

    서버 한 대를 설정하는 데 1시간이면, 100대에는 며칠이 걸린다 — IaC 철학2012년 8월 1일, Knight Capital의 주문 거래 시스템이 뉴욕 증권시장에서 폭주하기 시작했다. 45분 만에 회사가 4억 4천만 달러를 잃었고, 그해 말 파산했다. 나중에 밝혀진 원인은 단순했다 — 8개 서버 중 1대에만 이전 배포의 죽은 코드(DEAD code)가 남아 있었다. 7대에는 새 코드가 정상적으로 배포됐지만, 8번째 서버(RSM-4)는 수동 배포 과정에서 누락됐다. 그 서버가 살아 있던 구 코드가 새로운 거래 플래그를 해석하지 못하고, 시장에 무한히 주문을 쏟아낸 것이다. 이 사건은 자동화된 배포가 없는 인프라가 얼마나 위험한지를 보여주는 잔혹한 사례다. 한 대의 서버 설정이 어긋난 게 전 회사를 무..

    · 댓글
  2. Infra Architecture/Foundations

    Foundations - 05. build vs buy, on-pre vs cloud

    클라우드에서 자체 인프라로 돌아간 회사들 — build vs buy의 진짜 조건2016년, Dropbox는 AWS S3에 올려뒀던 사용자 데이터 대부분을 자체 인프라로 옮겼다. "Magic Pocket"이라는 이름의 자체 분산 스토리지 시스템이 그 주인공이다. 이 결정은 이례적이었다 — 2008년 AWS 위에서 시작한 스타트업이, 8년 뒤 하이퍼스케일 클라우드를 버리고 자체 인프라로 간 것이다. Dropbox는 이후 공식 발표에서 연간 약 7,500만 달러를 절감했다고 밝혔다. 클라우드에서 벗어나 돈을 든 게 아니라 덜 쓰게 된 것이다. 단, 그 전에 수년간의 엔지니어링 투자와 수십 명의 인프라 엔지니어 고용이 선행했다.이 사건이 보여주는 것은 "클라우드가 항상 싸다"는 통념이 틀렸다는 점이다. 그렇다고..

    · 댓글 1
  3. Infra Architecture/Foundations

    Foundations - 04. redundancy와 고가용성 패턴

    다섯 개의 백업이 전부 실패할 수 있다 — redundancy의 진짜 조건2017년 1월 31일, GitLab의 한 엔지니어가 피로한 상태에서 데이터베이스 복구 작업을 하다가 잘못된 디렉터리에서 rm -rf를 실행했다. 프로덕션 데이터베이스가 삭제됐다. 놀란 팀이 백업을 확인했다. 백업은 다섯 군데에 있었다 — 디스크 백업, S3 동기화, Azure 동기화, staging 복제, LVM(논리 볼륨 관리자) 스냅샷. 이 중 정상적으로 복구 가능한 건 단 하나, LVM 스냅샷뿐이었다. 디스크 백업은 오래 전부터 실패하고 있었고, S3·Azure 동기화는 설정 오류로 오랫동안 돌지 않았고, staging 복제는 잘못된 데이터를 받고 있었다. 다섯 중 하나만 살아 있었다. 팀은 그 하나로 복구했지만, 문제의 본..

    · 댓글
  4. Infra Architecture/Foundations

    Foundations - 03. fault domain과 blast radius

    장애는 한 점에서 시작해 한 묶음을 죽인다 — fault domain과 blast radius2018년 10월 21일, GitHub는 미국 동부와 서부 리전 사이에 43초 동안 네트워크 분단이 생겼다. 짧은 시간이라 사용자는 거의 눈치채지 못했지만, 그 43초 동안 MySQL 동기화가 양쪽에서 동시에 진행되는 split-brain 상태가 만들어졌다. 양쪽 데이터베이스가 미세하게 다른 상태로 갱신되기 시작한 것이다. GitHub 팀이 이를 감지하고 복구 작업에 들어갔을 때, 단순히 "다시 연결"로는 끝나지 않았다 — 양쪽 상태의 불일치를 조율하는 데 24시간이 걸렸고, 그동안 GitHub 대부분의 서비스가 중지됐다. 사용자 3천5백만 명에게 영향을 미친 이 사건의 핵심은 "장애가 짧았다"가 아니라 — 두 ..

    · 댓글 1
  5. Infra Architecture/Foundations

    Foundations - 02. 인프라 품질 속성

    가용성 99.9%는 1년에 9시간 다운되겠다는 약속이다AWS S3의 공식 문서에는 "11개의 9"라는 숫자가 등장한다. 99.999999999% 내구성(durability). 읽기 쉽게 풀면, 1,000만 개의 객체를 1만 년 동안 저장해도 1개가 손실될까 말까 한다는 뜻이다. 이 숫자가 의미 있으려면 "11개의 9"가 정확히 무엇을 재는지, 가용성(availability)과 내구성(durability)이 어떻게 다른지, 그리고 이런 수치를 SLO(Service Level Objective)로 채택했을 때 무엇을 약속한 건지 각각 명확해야 한다.흔히 "품질 속성"이라 부르는 "~성"들은 인프라 결정을 갈라놓는 힘이다. 두 인프라가 똑같이 "웹 서비스를 호스팅한다"는 기능을 수행해도 구조가 전혀 달라지는 ..

    · 댓글
  6. Infra Architecture/Foundations

    Foundations - 01. 인프라 아키텍처란 무엇인가

    인프라는 도시의 도로망과 같다 — 한 번 깔면 바꾸기 어렵다2017년 2월 28일, 미국 동부 시간 오전 9시 37분. 한 AWS 엔지니어가 S3 청구 시스템 디버깅을 위해 표준 절차에 따라 명령 하나를 실행했다. 문법은 맞았지만 대상이 조금 달랐다. 그 한 번의 명령이 S3 인덱스 서브시스템의 용량을 계산하는 데 필요한 서버를 대거 오프라인으로 만들었다. 이후 약 4시간 동안 Slack, Trello, Quora, 이미지 호스팅 서비스들이 줄줄이 멈췄다. 인터넷의 상당 부분이 한 리전의 한 서브시스템 장애에 종속돼 있었다는 게 그제야 드러났다.이 사건이 보여주는 핵심은 "AWS가 부실했다"가 아니다. 오히려 AWS는 그 장애를 4시간 안에 복구하며 1차 사고 보고서를 당일에 공개했고, 며칠 뒤 상세 p..

    · 댓글