IL-0491 Squarespace · 2019-02-12networking
CDN 원본 서버군의 정상 노드가 안전 수준 아래로 줄어 Squarespace 일부 사이트가 이미지, 스크립트, 스타일시트를 불러오지 못했다
2019-02-11 오후 10시 30분 ET에 한 엔지니어가 Squarespace CDN 원본 서버군 전체에 유지보수 작업을 시작했다. 엔지니어는 작업을 멈췄다고 생각했지만 작업은 백그라운드에서 계속 돌았고, 2019-02-12 오전 12시 10분에 서버군의 정상 노드 수가 안전한 수준 아래로 떨어졌다. static.squarespace.com과 static1.squarespace.com이 영향을 받아 일부 사이트가 이미지, 스크립트, 스타일시트를 불러오지 못했다. 전 세계 CDN 사업자가 캐시해 둔 파일로 요청을 처리한 사이트는 영향을 받지 않았다.
당번 엔지니어가 알림을 받고 바로 대응했지만, 팀이 처음에 영향을 작게 봐서 인시던트 커맨더를 늦게 불렀다. 1시 22분까지 서비스 재시작이 소용없었고, 1시 30분에 인시던트 커맨더가 호출돼 상태 페이지에 글을 올렸다. 2시 15분에 추가 복구 조치로 서버군 일부가 돌아왔고, 2시 20분에 CDN 원본이 복구돼 CDN 트래픽이 정상으로 돌아왔다. 3시 3분에 장애를 종료했고, 다음 날 아침 조사로 백그라운드에서 계속 돈 유지보수 작업이 원인임을 찾았다.
- 심각도
- –
- 영향 범위
- Images, scripts and style sheets on static.squarespace.com and static1.squarespace.com did not load for some Squarespace sites whose assets were not in the CDN providers' cache
- 영향 사용자
- some Squarespace sites and their visitors
- 지역
- –
- 감지까지
- 0m
- 복구까지
- 2h 10m
증상
2019-02-12 오전 12시 10분 ET에 모니터링 시스템이 CDN 원본 서버군의 정상 노드 수가 안전한 수준 아래로 떨어졌다고 당번 엔지니어에게 알렸다. static.squarespace.com과 static1.squarespace.com 도메인이 영향을 받아 일부 사이트가 이미지, 스크립트, 스타일시트를 불러오지 못했다.
전 세계 CDN 사업자들이 캐시해 둔 파일로 요청을 계속 처리해 많은 사이트는 영향을 받지 않았다. 상태 페이지는 오전 1시 38분 ET에 사이트의 미디어와 스타일시트 제공에 부분 장애가 있어 조사 중이라고 알렸고, 2시 24분에는 미디어와 스타일시트 제공의 오류율이 높아진 원인을 찾았다고 알렸다.
당번 엔지니어는 바로 대응했지만 팀은 처음에 영향을 작게 봤다. 1시 22분까지 다른 팀원을 불러 영향을 받은 서비스를 재시작해 봤지만 소용없었고, 이때 심각성이 드러났다. 장애 때 조정과 소통을 맡는 인시던트 커맨더는 1시 30분에야 호출됐고, 호출된 뒤 상태 페이지에 글을 올렸다.
2시 15분에 추가 복구 조치로 CDN 원본 서버군 일부가 돌아왔고, 2시 20분에 서비스가 정상으로 돌아왔다. 팀은 계속 지켜보다가 3시 3분에 서버군이 완전히 돌아오고 모니터링이 오래 정상임을 보이자 장애를 종료했다.
증상 오류율 상승
원인
원인 운영 실수
- 촉발
- 2019-02-11 오후 10시 30분 ET에 한 엔지니어가 Squarespace CDN 원본 서버군 전체에 유지보수 작업을 시작했다. 엔지니어는 작업을 멈췄다고 생각했지만 작업은 백그라운드에서 계속 돌았고, 2019-02-12 오전 12시 10분에 CDN 원본 서비스 장애를 일으켰다.
감지
2019-02-12 오전 12시 10분 ET에 모니터링 시스템이 CDN 원본 서버군의 정상 노드 수가 안전한 수준 아래로 떨어졌다고 당번 엔지니어에게 알렸다. 알림은 서버군이 핵심 가용성 기준 아래로 떨어진 뒤에야 왔고, 고객 영향이 크다는 것은 나중에야 분명해졌다.
조치
- 오전 2시 15분 ET까지 추가 복구 조치로 CDN 원본 서버군 일부를 되살렸고, 2시 20분에 서비스가 정상으로 돌아왔다.
후속 조치
- 장애 대응 플레이북을 고쳐 이 서버군에 영향을 주는 문제 대부분을 빨리 해결할 점검과 조치를 넣는다. 첫 점검에서 고객 영향을 판단하고 인시던트 커맨더를 바로 부르게 한다.
- CDN 협력사와 원본 서비스의 문제가 고객에게 주는 영향을 더 빨리 판단할 수 있도록 외부 모니터링을 개선한다.
- 엔지니어가 유지보수 명령을 내리는 방식의 운영 정책을 고치고 안전장치를 더한다. 그런 명령이 작업할 수 있는 서버군의 범위를 제한한다.
- 사람이 직접 하는 유지보수 작업이 필요한 경우를 줄인다.
- 독립된 장애 도메인을 만들고, 상태가 나쁜 부분을 피해 요청을 자동으로 보내도록 해 인프라의 복원력을 높인다.
교훈
–
출처
- https://status.squarespace.com/incidents/pbn8bwh6w8wk · official-status
관련 사례
–
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0491
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0491/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.