Incident Library

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 서비스 용량을 늘렸지만 나아지지 않았다.

증상 DNS 조회 실패서비스 중단

원인

촉발
Square 는 2023년 9월 7일 오전 11:04 ET 에 리전 간 통신을 열려고 호스트 방화벽 규칙 변경을 배포했고, 오후 1:56 ET 에는 DNS 영역 변경이 있었다. 작은 정책 변경이 노드에서 훨씬 큰 규칙 묶음으로 펼쳐졌다.

감지

오후 2:02 ET 에 엔지니어들이 인프라 문제 알림을 받았다. 장애가 시작되고 8분 뒤였다.

조치

후속 조치

교훈

–

출처

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: DNS 서버와 레코드, 노드 iptables 규칙. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.