IL-0254 Square · 2023-09-07networking
내부 DNS 서버가 무너져 Square 의 제품과 서비스가 약 15시간 멈추고 결제가 되지 않았다
Square 는 여러 데이터센터 리전에서 돌고, 서비스들은 DNS 와 메시 기반 라우팅으로 의존하는 서비스를 찾는다. DNS 가 없으면 제품, 내부 도구, 서비스가 서로 통신하지 못한다. 호스트 방화벽 정책은 중앙 서비스가 데이터센터의 노드로 내려보내고, 노드가 그 정책을 방화벽 규칙으로 펼친다. 이 중앙 서비스는 환경 변화에 빨리 맞추려고 빠른 롤아웃 방식을 쓴다.
9월 7일 오전 11:04 ET 에 배포한 작은 방화벽 정책 변경이 노드에서 훨씬 큰 규칙 묶음으로 펼쳐져 노드를 불안정하게 했다. 여기에 DNS 서비스 업그레이드와 DNS 의 트래픽 패턴이 겹쳐 내부 DNS 서버에 예상하지 못한 부하가 걸렸다. 그러자 DNS 요청이 실패하기 시작했다. 노드의 DNS 캐시가 만료되자 서비스들이 서로를 찾지 못해 외부 요청이 실패했고, 오후 1:54 ET 부터 Square 의 제품과 서비스를 쓸 수 없었다. 문제 해결과 복구에 쓰는 서비스도 함께 멈춰 장애가 길어졌다.
엔지니어들은 DNS 서버로 가는 트래픽을 덜고 새 DNS 서버를 손으로 띄웠다. DNS 용량을 늘려도 소용이 없자 인증과 접근 서비스에 먼저, 이어서 모든 데이터센터에 네트워크 변경을 손으로 배포했다. DNS 서버를 다시 만들고, 되돌린 규칙 묶음으로 만든 새 설정을 DNS 호스트에 내보냈다. 9월 8일 오전 12:55 ET 에 모든 DNS 서버가 정상이 됐고, 오전 2:40 ET 에 결제 트래픽이 완전히 회복됐으며, 오전 5:19 ET 에 사고가 해결됐다. 오프라인 모드로 받은 결제는 예방 차원에서 몇 시간 미뤘다가 오후 1:57 ET 까지 모두 처리했다. 포렌식 분석으로 사이버 공격은 원인이 아니라고 확인했고, 데이터 유출이나 손실의 증거도 없었다.
- 심각도
- –
- 영향 범위
- All Square products and services, internal tools and payment processing; Square Online websites stayed up but could not take payments, and offline-mode payments were processed hours later
- 영향 사용자
- Square sellers and their customers
- 지역
- –
- 감지까지
- 8m
- 복구까지
- 15h 25m
증상
2023년 9월 7일 오후 1:54 ET 부터 Square 의 제품과 서비스를 쓸 수 없었다. 오후 2:02 ET 에 엔지니어들이 인프라 문제 알림을 받고 DNS 부터 조사하기 시작했다.
내부 DNS 서버가 요청을 실패시키기 시작했다. 노드의 DNS 캐시가 만료되자 서비스들이 의존하는 서비스를 찾지 못했고 외부 요청이 실패했다. Square Online 웹사이트는 열렸지만 결제를 처리하지 못했다.
문제를 살피고 복구하는 데 쓰는 내부 도구와 서비스도 함께 멈췄다. 엔지니어들은 오후 2:52 ET 부터 내부 접근과 도구를 되살리는 일부터 해야 했다.
오후 6:00 ET 에 DNS 서비스 용량을 늘렸지만 나아지지 않았다.
원인
원인 설정 변경
- 촉발
- Square 는 2023년 9월 7일 오전 11:04 ET 에 리전 간 통신을 열려고 호스트 방화벽 규칙 변경을 배포했고, 오후 1:56 ET 에는 DNS 영역 변경이 있었다. 작은 정책 변경이 노드에서 훨씬 큰 규칙 묶음으로 펼쳐졌다.
감지
오후 2:02 ET 에 엔지니어들이 인프라 문제 알림을 받았다. 장애가 시작되고 8분 뒤였다.
조치
- DNS 서버로 가는 네트워크 트래픽을 덜고, 새 DNS 서버를 손으로 띄우기 시작했다.
- 인증과 접근 서비스를 되살리려고 네트워크 변경을 손으로 배포했다.
- 모든 데이터센터에 네트워크 변경을 손으로 배포했다.
- DNS 서버를 다시 만들었다.
- 되돌린 방화벽 규칙 묶음으로 새 설정을 만들어 DNS 호스트에 내보냈다.
후속 조치
- DNS 인프라를 격리된 인프라로 옮긴다.
- 핵심 네트워크 인프라에 모니터링과 최적화를 더한다.
- 가능한 곳에서 배포 인프라와 플랫폼 인프라 사이의 의존 관계를 최적화한다.
- 오프라인 모드 지원을 넓히고, 오프라인 모드를 쓸 수 있는지 판매자에게 더 잘 알린다.
교훈
–
출처
관련 사례
IL-0512xPRO 의 쿠버네티스 APISIX 오리진 인증서가 갱신되지 못하고 만료되어 xpro.mit.edu 가 한 시간 동안 503 을 냈다MIT Open Learning · 2026 · sev1같은 원인 · 공통 DNS 서버와 레코드
같은 원인 · 공통 DNS 서버와 레코드
IL-0533Azure China 의 핵심 시스템 도메인 chinacloudapp.cn 과 chinacloudsites.cn 의 이름 해석이 실패해 여러 서비스에 연결할 수 없었다Microsoft Azure · 2024같은 원인 · 공통 DNS 서버와 레코드
같은 원인 · 공통 DNS 서버와 레코드
IL-0186스토리지 구성 요소가 노드에 넣은 iptables REDIRECT 규칙 때문에 워커 노드 하나의 파드가 외부 HTTP 와 HTTPS 로 나가지 못했다.Hans H. Kim · 2023같은 원인 · 공통 노드 iptables 규칙
같은 원인 · 공통 DNS 서버와 레코드
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0254
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0254/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.