카카오, 재해복구 시스템 있었나 없었나

지난 주말에 벌어진 카카오 관련 서비스 중단은 많은 교훈을 주고 있다. 카카오라는 특정 기업의 서비스가 중단됐을 뿐인데, 우리의 삶 전반에 큰 영향을 미쳤다. 지인과 카카오톡 대화를 못하는 수준을 넘어 금융, 지급결제, 교통, 쇼핑, 뉴스, 커뮤니티, 웹툰/웹소설, 음악 등 거의 모든 생활에 카카오가 가까이 있음을 체감할 수 있었던 사고였다.

이번 사고는 SK C&C 판교 데이터센터에서 전기시설에서 발생한 화재가 원인인 것으로 알려졌다. 데이터센터 하나 멈췄다고 그 많은 서비스가 모두 멈췄다는 것은 충격적이다. 이런 재난이나 장애 등을 대비해 시스템을 이중화, 삼중화 하도록 권고된다. 카카오처럼 대규모 서비스가 이런 조치를 취하지 않았을까?

 

화재 발원지로 지목된 UPS는 무엇일까?

UPS란 무정전 전원 장치(Uninterruptible Power Supply)의 약자로, 데이터센터를 위한 보조배터리 정도로 이해하면 쉽다. 일반적으로 데스크톱 컴퓨터는 전원이 분리되면 바로 꺼진다. 그 과정에서 메모리에 있던 데이터도 날아간다. 그러나 랩탑(노트북) 컴퓨터는 전원을 뽑아도 배터리가 남아있다면 컴퓨터가 꺼지지 않는다.

UPS는 데이터센터를 위한 보조배터리다. 데이터센터에 전원이 공급되지 않아도 마치 노트북처럼 서버 컴퓨터들이 꺼지지 않고 메모리의 데이터도 날아가지 않는다. 다만, 노트북의 배터리와는 다르게 시간이 매우 짧다. 짧게는 5분, 길게는 30분 정도라고 보면 된다. UPS가 버틸 수 있는 시간이 짧은 것은 데이터센터가 워낙 많은 전력을 소모하기 때문이다. 데이터센터는 보통 자가발전기를 보유하고 있다. UPS는 갑자기 정전이 되었을 때 발전기를 돌리기 전까지만 버텨주는 역할을 한다.

 

UPS 에서 왜 불이 났을까?

기본적으로 데이터센터의 전력실에는 고압의 전류와 발전기를 가동하기 위한 경유와 같은 수많은 인화 요인들이 산재해 있다. 잘못 관리할 경우 화재가 일어날 가능성은 많다. UPS 자체도 화재의 원인이 될 수 있다. 과거 UPS는 납축전지를 많이 사용했는데, 요즘은 리튬이온 배터리를 사용하는 것으로 바뀌고 있다. 리튬이온 배터리는 상대적으로 충격에 약해서 화재를 일으키는 경우가 종종 있다. 다만 소방당국의 공식 발표가 나오기 전까지 화재 원인이 무엇인지는 확언하기 힘들다.

 

카카오 서비스는 왜 중단됐을까? 이런 사태에 대한 대비가 없었을까?

데이터센터는 화재, 홍수, 지진, 전쟁 등 다양한 이유로 제 기능을 발휘하지 못할 가능성이 있다. 이에 대한 대비를 위해 DR(Disaster Recovery, 재해복구) 시스템을 구축해야 한다고 전문가들은 입을 모은다. DR은 예상치 못한 사태로 데이터센터에 장애가 발생했을 때를 대비해 원거리에 복제 시스템을 두는 것을 말한다.

카카오에는 이런 시스템이 없었을까? 우선 카카오의 공식 발표를 들어보자.

“카카오는 모든 데이터를 국내 여러 데이터센터에 분할 백업하고 있으며, 외부 상황에 따른 장애 대응을 위한 이원화 시스템을 가지고 있습니다.  이번 화재가 발생한 직후, 카카오는 해당 사실을 인지하고 즉시 이원화 조치 적용을 시작했습니다. 다만 이번과 같이 데이터센터 한 곳 전체가 영향을 받는 것은 이례적인 상황으로, 해당 조치를 적용하는데 예상보다 오랜 시간이 소요되고 있습니다.”

카카오는 “이원화 시스템”이 있다고 밝혔다. 아울러 “이번과 같이 데이터센터 한 곳 전체가 영향을 받는 것은 이례적인 상황”이라고 덧붙였다. 이를 그대로 해석하면 이원화 시스템이 있기는 하지만, 두 시스템이 같은 데이터센터에 있었다는 것으로 이해된다. 데이터 자체는 여러 데이터센터에 분할 백업해 두었는데 시스템은 분할하지 않은 것으로 풀이된다. 계란을 한 바구니 담아뒀는데, 바구니를 떨어뜨리면 계란이 모두 깨지는 것은 어쩔 수 없다.

같은 데이터센터 안에 시스템을 이원화하는 것은 DR이라고 부르지 않는다. 이는 고가용성(HA)이라고 한다. HA는 특정 서버에 장애가 났을 때 다른 서버가 이를 받아 서비스를 계속 하는 기술이다. HA는 같은 지역 내에서 시스템을 이중화, 삼중화 한다. 이번 카카오 장애처럼 특정 데이터센터 전체에 문제가 발생했을 때는 HA가 할 수 있는 일이 없다.

DR은 다른 지역에, 나아가서는 다른 국가에 하는 것이 기본이다. 지역이 떨어져있어야 천재지변에도 서비스를 지속할 수 있기 때문이다. 그래서 국내에서는 서울과 부산에 DR을 한다. 최대한 먼 거리에 DR을 하기 위해서다.

 

카카오는 DR을 정말 안 했을까?

카카오는 판교 데이터센터에 대해 이원화했다고 말을 할 뿐, 그것이 DR 시스템인지 아닌지는 밝히지 않고 있다. 그러나 DR까지는 안 했을 것이라는 분석이 우세하다. 한 국내 대형 인터넷 기업의 데이터센터 관리자는 “무료 서비스 중에 DR을 하는 곳은 없다고 봐야 한다”고 전했다. 데이터센터를 그대로 복제(미러링)하려면 비용이 두 배가 들기 때문이다.

지난 2018년 AWS 한국 리전 장애로 쿠팡, 배달의민족, 업비트, 코인원, 마켓컬리, 야놀자 등 수많은 서비스가 중단된 적이 있다. 당시 ‘DNS 설정 오류’로 AWS 한국리전이 멈춰버렸는데, 그 어떤 서비스도 다른 AWS 리전에 DR을 하고 있지 않았음이 드러났다.

DR은 단순히 데이터를 복제하는 일이 아니다. DR에 대해 한 IT전문가의 설명을 들어보자.

“DR은 재난상황이 발생했을 때 서버를 옮겨서 전원을 켠다고 끝나는 일이 아닙니다. 재난이 발생하기 이전에 시스템적으로 설계를 해놓고, 상황 발생시 곧바로 시행하는 시스템과 프로세스가 모두 마련돼 있어야 합니다.

최소 두 개의 데이터센터에 있는 데이터들을 실제로 연산을 할 수 있는 서버를 동작 가능하게 구축해야 합니다. 상황이 발생했을 때 즉시 메인 센터에서 보조 센터로 전환이 되고, 대부분의 기능이 동작 가능해야 합니다. 이때 상대적으로 느리거나 혹은 일부 기능이 동작 안 할 수는 있습니다만, 메인 센터의 기능이 돌아올 때까지 보조 센터가 기능적으로 동작이 가능해야 합니다.”

DR을 구축한 후에는 천재지변에 대비한 훈련을 한다. 일부러 서비스를 중단시키고 복구가 잘 되는지 확인해 보는 훈련을 해야 한다.

다만, DR 무용론도 있다. 카카오가 DR 센터가 있다고 해도 이런 사고에 이론대로 작동하지 않는다고 하는 관점이다. 한 IT전문가는 “원격 데이터센터에 DR이 있다고 해도 금방 서비스를 이어받지는 못한다”면서 “장애가 났을 때 다른 데이터센터에서 서비스를 생성하는 동안 기존 센터에서 복구할 가능성이 높다”고 전했다. 카카오의 경우 10시간 만에 서비스를 복구했다.

 

카카오 데이터가 날아갈 우려는 없을까?

일반적으로 대형 시스템들을 설계할 때는 실제로 데이터를 처리하는 서버와 데이터를 보관하는 서버가 분리되도록 설계한다. 대부분의 IT기업들은 데이터는 백업하고 이중, 삼중으로 보관한다. 문제는 데이터를 처리하는 서버들이다. 데이터를 처리하는 서버들의 경우에는 서버의 수량도 많고, 이중 삼중으로 동작하도록 하는데 비용과 수고가 크다. 그러다 보니 데이터만 백업하고 데이터를 처리하는 서버들은 이중 삼중으로 안 하는 경우가 많다. 그런 점에서 데이터 자체가 날아갈 가능성은 크지 않다.

 

SK C&C와 카카오, 누구의 책임인가

화재를 막지 못한 IDC의 책임과 서비스 중단을 최소화 하지 못한 카카오 모두에게 책임이 있다고 할 수 있다. 한 IT 전문가의 말을 전한다.

“이번 사태를 총평하자면, 화재가 난 최초의 이슈는 재난상황이 맞고 이 부분은 데이터센터의 잘못이 맞습니다. 하지만 그 상황에도 불구하고, 빠르게 상황을 수습하지 못하고, 장시간의 다운사태를 만든 것은 카카오의 준비 소홀입니다. 화재가 난 직후에 카카오가 잠깐의 다운타임을 극복하고, 빠르게 시스템을 복구할 수 있었다면, 카카오 입장에서는 해프닝으로 끝나고 책임은 데이터센터의 온전한 책임으로 끝났을 것입니다. 구글은 본사를 포함한 개별 데이터센터가 30일동안 사용할 수 없다고 가정하는 재해복구 훈련을 실시합니다.”

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다