세상을 멈춘 아마존 장애, 무슨 일 있었나?

세상을 멈춘 아마존 장애, 무슨 일 있었나?
Photo by David Pupăză / Unsplash
💡
Editor's Pick
- 아마존 스스로도 핵심 인프라로 사용하던 다이나모DB
- 그 다이나모DB의 DNS 시스템에서 충돌이 발생
- 충돌 발생하면서 DNS 기록들이 자동으로 삭제되고

이번 주 아마존 일부 서비스가 마비되면서 인터넷의 광범위한 영역에서 장애가 발생하는 사건이 있었다. 왜 그런 일이 일어난 걸까? 아마존이 자체 조사 후 발표한 내용에 의하면 “다이나모디비(DynamoDB)의 DNS 관리 시스템에 있던 경합 조건 관련 현상으로부터 촉발된 연쇄적 장애 때문”이라고 한다. 이게 도대체 무슨 말인지 살펴보자.

구조적 문제

먼저 다이나모DB는 AWS가 제공하는 완전관리형 NoSQL 데이터베이스 서비스다. NoSQL이라는 말에서 볼 수 있듯, 다이나모DB는 전통적 방식의 MySQL 혹은 PostgreSQL 데이터베이스와 다르다. MySQL 등은 ‘관계형 데이터베이스’라고 하며, 테이블과 행, 열로 구성돼 있다. NoSQL은 키값과 문서 형태로 데이터를 저장한다. 관계형 데이터베이스보다 NoSQL 방식이 유연하며, 대규모 트래픽을 빠르게 처리하는 데 유리하다. 다이나모DB도 이런 특성을 가지고 있어 ‘빠르고 확장성 좋은 클라우드 저장소’로 홍보된다.

‘완전관리형’이라는 건 AWS가 서버, 스토리지, 백업, 확장 등을 모두 자동으로 처리한다는 의미다. 아마존의 고객사 측에서 인프라 걱정과 관리를 전혀 할 필요가 없다. 그러므로 다이나모DB는 사용자 입장에서 매우 편리한데다가 유연하며 확장하기도 용이한, 만능 데이터베이스라고 할 수 있다. 그렇게 믿고 있던 것에서 이와 같은 사고가 발생한 거라 아이러니 하다.

흥미로운 건 이 다이나모DB가 ‘아마존에서 제공하는 여러 서비스 중 하나’에 그치지 않는다는 것이다. AWS 스스로도 다이나모DB를 핵심 인프라로서 활용하고 있었다. 그러니 다이나모DB에서 문제가 생기면 AWS를 통해 다이나모DB를 유료로 사용하던 사용자들만 문제를 겪는 게 아니었다. AWS 스스로도 흔들릴 수밖에 없던 구조였다. 일개 서비스의 장애가, 광범위한 마비 사태로 번진 요인 중 하나가 바로 이것이었다.

경합 조건 발생

이 중요한 다이나모DB에서 정확히 어떤 문제가 발생한 것일까? 아마존은 “DNS 관리 시스템에서 경합 조건이 발생했다”고 설명했다. 경합 조건(race condition)은 컴퓨터 시스템 내에서 두 개 이상의 프로세스가 동시에 같은 자원에 접근할 때 생기는 현상이다. 물론 같은 자원을 여러 프로세스가 동시에 접근하는 건 현대 컴퓨터에서는 늘 있는 일이다. 그럴 때 순서대로 접근 권한이 주어지면 아무 이상이 일어나지 않는다. 이 순서가 꼬이면서 발생하는 게 ‘경합 조건’이다. 

DNS 관리 시스템은 일종의 ‘전화번호부’와 같은 것이다. 여기에 인터넷의 여러 ‘전화번호’ 즉 IP 주소와 도메인 이름 정보가 저장된다. AWS의 경우 이 DNS 관리 시스템은 크게 두 가지로 구성돼 있다고 아마존 측은 발표했다. 바로 DNS 플래너(DNS Planner)와 DNS 인액터(DNS Enactor)다. 전자는 로드밸런서 상태를 관찰해 DNS 플랜이라는 것을 생성하고, 후자는 이 DNS 플랜을 실제 적용한다.

💡
여기서 잠깐!
DNS 플랜이란, 특정 서비스가 어떤 IP 주소 세트를 사용할지 미리 정의해 놓은 계획표다. 예를 들어 thetechedge.ai라는 도메인이 어떤 IP 주소에 실제 연결되어야 할지를 결정한 내용을 담고 있는 것으로, DNS 인액터는 바로 이 내용을 바탕으로 DNS 이름과 IP 주소를 매칭시킨다. 그러므로 이 DNS 플랜은 일종의 설정표라고도 할 수 있다.

그러므로 DNS 플래너와 DNS 인액터는 순서대로 작동해야 한다. 플래너가 플랜을 만들고, 인액터가 플랜을 실행한다는 게 바로 그 순서다. 경합 조건은 ‘순서가 꼬일 때’ 나타나는 현상이라 했다. 그러면 DNS 관리 시스템에서 경합 조건이 발생했다는 아마존의 발표가 슬슬 이해되기 시작한다.

정확히 무슨 일 일어났나

현재까지 알려진 바에 따르면 다이나모DB의 DNS 관리 시스템에서 일어난 일은 순서대로 다음과 같다.

1) DNS 플래너가 새로운 DNS 플랜을 평소처럼 생성하고 있었다.
2) DNS 인액터가 이 플랜들을 여느 때처럼 실행하려 했다.
3) 하지만 2)번이 무슨 이유에서인지 지연됐다.
4) 2)번이 지연된 상태에서 또 다른 플랜을 실행하려는 인액터의 시도가 발생했다.
5) 그러면서 2)번과 4)번의 인액터들이 동시에 같은 DNS 처리를 시작했다.
6) 작업이 꼬이면서 DNS 엔드포인트에서 충돌이 일어나 IP 주소가 삭제됐다.

7) IP 주소가 비어있으니 연결이 되지 않았다. 
8) 이 현상은 AWS 내부에서도 일어났고(다이나모DB를 아마존도 핵심 인프라로서 사용하고 있었으므로)
9) 곧 DNS 조회 실패 이후 연결 불가 상태가 광범위한 인터넷 영역에서 보고됐다.

이 상황을 여행에 비유하자면, 오늘 비행 스케줄을 짜는 사람(DNS 플래너) A가, 그 스케줄을 실제 항공사 시스템에 반영하는 사람(즉, DNS 인액터) B가 오늘따라 늑장을 부리는 걸 모른 채, 내일 스케줄을 다음 반영 담당자 C에게 건내준 것과 같다. C 역시 B가 일 처리를 늦게 한다는 걸 모르고 있다. 새 스케줄을 등록시키려면 이전 스케줄을 지워야 하는데, 하필이면 A가 막 적용 완료한 오늘 스케줄까지도 같이 지워버리면서 항공사 전체가 따라야 할 오늘 스케줄이 사라진 것이다.

이를 파악한 아마존은 전 세계적으로 DNS 플래너와 DNS 인액터라는 자동화 시스템을 일시적으로 비활성화시켰다. 그리고 지워진 DNS 레코드를 수동으로 복구했다. 그 후 다이나모DB를 재시작하면서 하위 서비스들을 재가동했다. 그렇게 함으로써 급한 불을 최대한 빨리 껐다.

장기적으로 아마존은 DNS 플래너와 DNS 인액터의 동기화 알고리즘을 강화해 두 플랜이 동시에 적용되지 않도록 할 예정이다. 또한 DNS 레코드가 빈 상태로 저장되지 않도록 설정을 변경시켰다고 한다. 예외적인 상태가 발생했을 때 자동 롤백이 되도록 하는 기능 역시 추가했다.

by 문가용 기자(anotherphase@naver.com)


AWS 마비! 엉뚱한 오해도 확산?
💡Editor’s Pick - 인터넷의 광범위한 영역이 마비돼 - 아마존 발표 중 ”오류 비율 급증”이라는 표현이 오해 낳기도 - 인프라 이용 현황, 다시 돌아봐야 AWS가 마비되면서 인터넷의 광범위한 영역이 장애를 일으키는 중이다. 스냅챗(Snapchat), 포트나이트(Fortnite), 로블록스(Roblox), 듀오링고(Duolingo), 링(Ring), 퍼플렉시티(Perplexity) 등 인기 높은 웹 서비스 및

Read more

영국 군, 내년도에 대규모 이스포츠 대회 연다?

영국 군, 내년도에 대규모 이스포츠 대회 연다?

💡Editor's Pick for Juniors - 영국 군, 40개 동맹국과 함께 이스포츠 대회 열어 - 내년도에 있을 대규모 워게임 훈련...게임 하듯 진행 - 러우 전쟁 치르는 우크라이나 군에서 많은 아이디어 얻어온 듯 Juniors! 안녕! 테크를 가장 날카롭고 가치 있게 읽어주는 더테크엣지 아빠들이야. 영국 군이 내년에 국제적인 규모의 군사

By 문가용 기자
파일 이름 검색 도구 글롭에서 고위험군 취약점 나와

파일 이름 검색 도구 글롭에서 고위험군 취약점 나와

💡Editor's Pick - 개발자들이 널리 사용하는 도구 글롭 - 그 글롭의 명령행 인터페이스에서 취약점 발견돼 - 파일 이름이 공격 도구로 전환돼 개발자들이 흔히 사용하는 오픈소스 패키지인 글롭(glob)에서 위험한 취약점이 발견됐다. 일반 사용자들이 직접 사용할 일은 거의 없어 대중적으로 낯선 이름이지만, 개발자들은 이를 활용해 여러 가지 도구와

By 문가용 기자
삼성 갤럭시 A와 M 시리즈에 선탑재된 스파이웨어 논란

삼성 갤럭시 A와 M 시리즈에 선탑재된 스파이웨어 논란

💡Editor's Pick for Juniors - 삼성 저가형 스마트폰 시리즈에서 발견된 앱클라우드 앱 - 사실은 지는 여름부터 지적돼 온 스파이웨어 - 이런 스마트폰 문제 쉽게 해결되지 않아...소비자 훈련이 더 중요 Youngsters! 테크를 가장 날카롭고 가치 있게 읽어주는 더테크엣지 아빠들이야. 한국을 대표하는 회사인 삼성에서 프라이버시 침해 논란이 일어났어. 삼성이

By 문가용 기자