1월말 구글클라우드 장애 ‘카나리 테스트 문제’

컴퓨팅입력 :2017/02/13 11:27

지난달 30일 구글클라우드플랫폼 일부 서비스가 2시간 동안 중단됐다. 구글은 장애발생 열흘 만에 너무 많은 업데이트가 한번에 몰리면서 최종사용자 검증 작업이 돼 외부 트래픽을 막으면서 발생한 사고란 설명을 내놨다.

10일(현지시간) 미국 지디넷에 따르면, 구글은 지난달30일 오전10시54분부터 오후12시50분(태평양표준시)까지 일어난 구글클라우드플랫폼의 일부 서비스 중단에 대해 해명글을 올렸다. [구글클라우드 대시보드 바로가기]

지난달 30일 구글컴퓨트엔진 신규생성 인스턴스와, 클라우드VPN, 네트워크로드밸런서 등이 2시간8분동안 중단됐다.

구글에 의하면, 구글컴퓨트엔진과 클라우드VPN, 네트워크로드밸런서 등의 생성과 실시간 이전 작업이 같은날 오전10시36분부터 오후12시42분까지 공용 IP주소에서 사용불가능했다. 영향을 받은 인스턴스와 로드밸런서의 점검작업이 진행되면서, 외부 트래픽이 해당 인프라에 접근하지 못했다. 이전에 생성된 VPN 터널, 로드밸런서와 실시간 이전을 겪지 않은 인스턴스 등은 장애의 영향을 받지 않았다.

GCE 인스턴스와 로드밸런서, VPN 터널은 상위의 레이어2 로드밸런서를 공유하게 돼 있다. 이 로드밸런서들은 자원들에 IP 주소를 변경하도록 돼 있고, 모든 인프라에 변경을 적용하기전 일부 최종사용자에게 신규사항을 테스트하는 작업(카나리 테스트)을 자동으로 진행한다.

이날 구글은 거의 사용되지 않는 로드밸런싱 설정으로 대규모 업데이트를 실행했다. 업데이트가 비효율적인 코드 패스를 노출했고, 자동 카나리 테스트 중지를 초래했다. 모든 공용 IP주소의 변경이 일어났고, 테스트 단계를 진행할 수 없게 했다.

구글은 네트워크 로드밸런서의 장애관련 작업과 프로그래밍 변경을 재시작했다. 재시작 후 문제를 일으킨 변경을 배치 환경에서 진행했다. 비효율적인 코드 패스에 도달하지 않게 하기 위해서였다. 이후 일반적 트래픽이 재시작돼 진행됐다. 이같은 수정작업은 존 별로 순차적으로 진행됐는데, 오전 11시36분부터 오후12시42분까지 소요됐다.

구글은 동일 사건의 발생을 방지하기 위한 조치를 시행했다. 단기 해법으로 카나리 테스트 타임아웃 단계를 늘리고, 업데이트들이 비효율적 코드 패스를 이용할 경우 완전히 중지시키기보다 네트워크 변경을 느리게 하도록 했다.

장기 해법으로 비효율적 코드 패스를 개선하기로 했다.

관련기사

구글은 이와 함께 주소 배열의 글로벌 확대에 분산 라우팅을 사용하기로 했다. 모든 IP주소의 배열 작업이 중앙에 집중돼 발생한 사안이기 때문이다.

구글은 "이 작업은 전세계에 영향을 주는 (레이어2의) 문제를 예방할 것"이라며 "문제를 더 빠르게 경고하는 새로운 메트릭스를 수립하겠다"고 밝혔다.