아마존 웹서비스 내부 DNS 서버 장애

HYEONG HWAN, MUN/ 11월 22, 2018/ 미분류/ 0 comments

https://blog.lael.be/post/8064

오늘 2018년 11월 22일 오전에 아마존 내부 DNS 서버 장애가 발생했다.

아마존웹서비스의 경우 대부분의 상품이 floating ip 를 사용하고 있으며, 개발 가이드 문서에도 서비스를 “IP 주소 대신 도메인으로 연결해서 작업하여라” 라고 쓰여 있다.

따라서 아마존웹서비스를 사용하는 곳들은, 비록 자신이 사용하는 서비스의 IP 를 알고 있더라도 Domain 주소를 입력하는게 일반적이다.

 

이렇게 도메인 주소를 사용해서 서비스를 구성하는게 일반적인데, 갑자기 amazon 내부의 domain name resolving 서버가 먹통이 된 것이다!

서버들은 통신 대상을 찾지 못하여 통신 장애를 일으켰다.

여러 장애 시나리오에 대해 대응 정책을 세우지만, (아마존에서 자체 관리하는) 내부 DNS 서버가 다운될 것이라고 가정한 곳은 없었던 것 같다.
따라서 이러한 예측하지 못한 장애에 대해서 대비가 되어있지 않았고, 서비스가 다운된 것이다.

 

나도 감히 이런 장애가 발생할 것이라고는 생각하지 못했다.

 

내가 자체적으로 파악한 바로는, 오늘(2018-11-22)의 Amazon WebService DNS Resolving Server Downtime 은,

오전 8시 17분 ~ 오전 9시 47분 동안 지속되었다. (1시간 30분 장애) (= SLA 기준 99.79% 가동률)

 

내가 다니는 회사도 인프라를 AWS로 사용하기 때문에 영향이 있었고 적절한 조치를 취하였다.

 

오늘의 라엘이의 작업처리

- 오전 8시 17분 : 장애 발생

- 오전 8시 22분 : 장애 인지 (모니터링 Alarm - 매 1분마다 체크해서 연속으로 5회 negative 시 장애라고 가정했었음.)

서버에 접속하여 분석 시작
장애 파악 단계
step Do Result Next Step
1 웹 서비스 프로세스 확인 정상 프로세스가 살아있으므로 포트가 막혀있는건가?
2 웹 포트 확인 정상 포트도 열려있으니 디스크 문제인가? (서버 용량이 꽉차면 이런 식의 장애가 발생함)
3 디스크 용량 확인 정상 그럼 CPU/Memory 과부하인가?
4 CPU 및 메모리 확인 정상 인터넷 연결 불량인가?
5 인터넷 연결 확인 정상 서버 자체는 정상 상태인 것 같다. 어플리케이션 단에서 파악해 보아야겠다.
6 웹서버 로그 확인 비정상 DB서버 연결을 할 수 없다는 오류메세지가 있었다. 도메인 주소를 해석할 수 없다는 로그가 쌓여 있더라.
7 네임서버 쿼리 비정상 문제의 원인은 이곳이군!

오전 8시 28분 : 장애 원인 파악 완료 및 조치 시작

당연히 다음과 같은 생각도 들었지만,
* 아마존 자체 문제가 생길 수 있나?
* 내가 잘못 연동한 부분이 있나?
* 이 계정에서만 발생한 문제인가?
* 다른 나라 지역도 장애인가?
* 계정이 해킹당한 것?
* 다른 원인이 있지는 않을까?
* 그럼 내 과실이 아닌 것이군!

생각은 나중에 해도 되기 때문에, 당장 최우선으로 할 작업은 파악된 원인을 바탕으로 서비스를 살리는 것이었다.
서비스 운영자는 다운타임을 1분1초 줄이는 능력이 매우 중요하다.

회사의 다른 프로젝트팀의 처리 방식을 살펴봤는데, 아마존 정상화 될 때 까지 기다린다고 하더라. (어쩌면 현명한 방법)

 

남탓 할수있는 환경이므로, 남탓하고 정상화 될 때까지 가만히 있어도 되긴 하겠지만,
난 그 정도로 현명하지 못하므로, 장애 조치를 시작하였다.

먼저, 서비스들의 IP 주소를 파악하였다.
집에서 DNS 쿼리해보니까 IP가 나오더라. (또는, 아마존 콘솔에서도 IP 확인가능)
파악된 IP 를 리눅스 서버의 /etc/hosts 파일에 입력하였다.

/etc/hosts 파일은 dns resolving 처리 메커니즘에서 우선순위가 가장 높은 파일이다.

/etc/hosts 파일에 domain 의 ip를 강제 지정해주니 서비스가 정상화 되었다.

 

- 오전 8시 37분 : 서비스 정상화

 

실제 AWS DNS 정상화가 오전 9시 47분쯤 이므로, 1시간 10분의 downtime 을 줄인 것이다.

 

정상 상태를 확인하였고, 씻고 출근했음.

 


AWS KR 를 이용하는 모든 업체에 대해 광범위의 장애가 발생했기 때문에 이런 안내메일이 오기도 하더라.

 

쿠팡, 배민, 마켓컬리등도 최대시간 장애가 발생했었다.

 

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*