grep

Engineering

[안정성 보고서] 5. 안정성을 위한 복구 체계

kakao tech카카오

2024년 12월 8일

원문에서 보기 ↗

여는말

카카오는 사용자에게 더 쉽고, 더 편리한 일상을 제공할 수 있도록 노력합니다. 사용자가 언제 어디서든 일상을 누릴 수 있도록 안정적인 서비스를 제공하고자, BCM(업무연속성) 체계를 수립했습니다.

BCM 체계는 회사 전반의 업무 및 서비스를 중단할 수 있는 상황을 재난 재해로 정의합니다. 재난 재해에는 홍수, 해일, 태풍, 지진 등 다양한 천재지변부터 IT 관련 사고까지, 서비스의 안정성을 위협하는 여러가지 상황이 포함되어 있습니다. BCM 체계를 기반으로 설립된 BCM 운영 거버넌스는 재난 재해의 위험을 평가하고, 이를 예방하기 위한 위험 관리 방안을 수립합니다.

BCM 체계와 BCM 운영 거버넌스는 다양한 재난 재해 상황을 가정한 재해 모의 훈련을 정기적으로 시행하고, 재해 복구 전략을 수립합니다. 카카오는 이러한 위험 관리 및 예방 활동을 지속적으로 수행해, 실제 재난 재해가 발생하더라도 카카오의 업무와 서비스를 신속히 복구할 수 있도록 준비하고 있습니다.

그림 27. 카카오 BCM 체계 프레임워크

1. BCM 체계와 조직

1-1. BCM 기반 체계적인 전사적 위험 관리

BCM 운영 거버넌스는 BCM 관련 국제 표준인 ISO 22301(비즈니스 연속성 관리 시스템)인증을 취득하였으며, 이를 위하여 카카오의 상황과 특수성을 고려한 여러가지 재난 재해의 위험 평가 및 업무 영향도 분석을 수행했습니다. 특히 위험 평가시에는 화재, 낙뢰, 지반 침하와 같은 자연 재해는 물론 시설물 붕괴, 감염병으로 인한 인력 부족 등 각종 사회적 재난과 IT 관련 사고까지 폭넓게 고려하여 잠재적 위험 요소를 식별했습니다.

카카오는 이러한 위험 요소들 중에서 카카오의 산업적 특성, 과거 발생 사고의 유형, 그리고 전반적인 위험 성향 등을 종합적으로 고려하여 중점 위험 관리 대상을 선정했습니다. 이 중점 위험 관리 대상은 카카오가 특별히 주의를 기울이고 우선적으로 대비해야 할 주요 재해 유형을 의미합니다.

카카오는 중점 위험 관리 대상에 대해 중단 시나리오를 마련했습니다. 이는 해당 위험 요소가 실제로 발생했을 때, 카카오의 업무와 서비스가 어떤 영향을 받을 수 있는지를 분석한 것입니다. 이러한 업무 및 서비스 중단 상황을 예방하기 위해서 중단 시나리오를 기반으로 위험 관리 방안도 수립했습니다.

구체적인 예를 통해서 카카오가 어떻게 중점 위험 관리 대상을 관리하고 있는지 알아보겠습니다. 데이터센터에 단수가 발생할 경우, 전산실은 냉각 시스템을 운영할 수 없습니다. 냉각 시스템이 작동을 멈추면 서버실 내부 온도가 급격히 상승할 수 있습니다. 수많은 서버가 동작하면서 발생시키는 열이 축적되면 하드웨어가 견딜 수 있는 온도를 초과할 수 있기 때문입니다. 과열된 서버는 성능 저하 또는 하드웨어 손상을 초래할 수 있습니다. 심각한 경우에는 서버의 자체 보호 기능에 의해 자동으로 동작을 중지하거나 물리적 손상으로 인해 작동을 멈출 수 있습니다.

냉각 시스템 실패로 인한 영향은 서버에만 국한되지 않습니다. 고온 상태가 지속되면 데이터센터 내부의 다른 장비들도 연쇄적으로 가동을 중단할 수 있으며, 이는 결국 카카오의 전반적인 업무 및 서비스의 중단으로 이어질 수 있습니다. 이러한 중단 시나리오가 실제로 발생하는 상황을 방지하기 위해서 카카오는 아래와 같은 예방 대책을 마련했습니다.

  1. 데이터센터를 여러 곳에 분산 배치하여 위험을 분산
  2. DCIM(Data center infrastructure management)을 통해 데이터센터의 상태를 24시간 모니터링

카카오는 체계적인 위험 관리를 통해 여러 가지 위험 요소에 대한 대비책을 마련하고 있습니다. 잠재적인 위험을 사전에 파악하고 미연에 방지함으로써, 결과적으로는 사용자에게 더 안정적이고 쾌적한 서비스를 제공하고자 노력하고 있습니다.

1-2. 업무연속성 관리를 위한 조직 체계

BCM 관리 거버넌스는 재해로 인한 비상 상황이 발생할 경우 신속한 대응을 위한 비상 대응 조직 체계를 수립했습니다. 비상 대응 조직은 기존에도 존재했지만, 전사적 재난재해의 컨트롤타워 역할을 수행하기에 부족함이 있었습니다.

이에 따라 CEO를 위원장으로 하는 비상대책위원회를 구성해 빠른 의사결정을 돕고, 실무적 컨트롤타워 역할을 하는 BCM 종합상황실을 별도로 구성했습니다. 서비스를 직접 복구하는 부서뿐만 아니라 인사·재무·법무·홍보·대외협력 등 지원부서를 복구 지원반으로 구성하고, 각각의 역할을 구체적으로 정의했습니다. 이를 바탕으로 카카오는 더욱 신속하고 효과적으로 재난재해에 대응하고자 합니다.

그림 28. 카카오의 비상 대응 조직체계

그림 29. 서비스 복구반

그림 30. 복구지원반

카카오는 재해 발생 시 신속하고 효과적으로 대응하기 위해 비상 대응 체계를 구축했습니다. 이 체계는 시설 및 서비스 중단에 따른 피해를 최소화하고 신속하게 복구하는 것을 목표로 합니다. 서비스를 직접 복구하는 서비스 복구반 뿐만 아니라 인사·재무·법무·홍보·대외협력 등의 다양한 지원 부서도 복구지원반으로 조직되어 있습니다. 이러한 조직 구성을 통해 전사적 차원에서 조직 구성원의 비상대응 활동을 지원하고, 사용자 불편을 최소화하기 위해 최선을 다하고 있습니다.

1-3. 재해 및 장애 대응 전략

카카오는 서비스의 안정성을 위해서 재해와 장애 상황에 따른 맞춤형 대응 전략을 수립했습니다. 각 상황의 특성에 적합한 조직과 대응 전략을 수립함으로써, 재난 재해에도 신속하고 효과적인 조치를 취할 수 있습니다.

사고가 발생하면 모니터링 시스템이 상황을 감지하거나 이용자 또는 크루를 통해서 신고가 접수됩니다. 상황에 영향을 받고 있는 서비스의 담당자 또는 관련자들을 중심으로 상황에 대한 정보가 전파됩니다. 비상대응체계가 가동되어 예상되는 피해를 산정합니다. 예비 피해 평가를 기반으로, 재해 선포 여부가 필요한지 판단합니다.

재해 선포 대상이 아닌 상황인 경우는 대부분 신속한 서비스 복구가 필요한 장애 상황입니다. 비상대응조직이 가동되어 장애대응전략을 실행해 장애 상황에 대처하고 서비스 복구 활동을 진행합니다. 필요하다면 일부 BCM 조직에 한하여 선별적으로 소집할 수 있습니다.

반면, 카카오가 서비스를 제공하거나 업무를 수행하기 위해 사용하는 공간에 화재, 단수, 절전과 같은 물리적인 피해와 함께 서비스 중단이 발생한 경우는 재해에 해당할 수 있습니다. 재해가 선포되면, BCM 조직이 가동되어 BCP(Business Continuity Plan)에 따라 업무 및 서비스를 정상화 절차를 수행합니다.

그림 31. 재해 및 장애 대응 전략

2. 장애 대응 및 관리 체계

2-1. 장애 대응 체계

장애 대응 조직

서비스에 장애가 발생하면 비상대응조직이 가동되어 신속히 정상화 조치를 취합니다. BCM 종합상황실이 장애에 대응하기 위한 실무를 총괄하며, 서비스 복구반과 복구지원반의 업무를 지휘합니다.

서비스 복구반은 장애 대응 프로세스에 따라 서비스를 정상화하기 위한 활동을 수행합니다. 복구지원반은 이용자 피해를 최소화하기 위해서 이용자 고지 등 법령 준수 사항에 관해 확인하고, 법적 요구사항에 따라 대외기관에 장애 사황을 보고합니다.

그림 32. 장애 대응 조직

장애 대응 프로세스

카카오는 장애를 보다 빠르고 정확하게 대응하고, 서비스의 연속성을 확보하기 위해 장애 대응 프로세스를 정비하고 장애 대응 매뉴얼을 수립했습니다. 모니터링 시스템을 통해 서비스 장애를 감지할 경우, 즉시 장애의 심각성을 평가하고 실시간으로 상황을 전파하며 복구에 착수합니다. 장애 처리는 원인 분석, 회고, 재발 방지 대책 수립 및 실행 완료 후에 종료됩니다.

장애 대응 프로세스의 궁극적 목표는 서비스 연속성 확보이며, 이를 달성하기 위해 아래와 같은 세부 목표를 갖고 있습니다.

• 신속하고 정확한 서비스 장애 복구

• 관련 부서에 실시간 장애 전파와 주기적 알림

• 직관적이고 명확한 역할별 장애 대처 가이드

• 장애 분석 및 선제 대응을 통한 재발방지 대책 마련

• 회고와 사례교육

• 서비스 장애에 대한 인식 개선

그림 33. 장애 대응 흐름도

장애 대응 역할

장애 대응의 과정에서 서비스 복구반의 컨트롤타워(Control Tower), 오퍼레이터(Operator), 커뮤니케이터(Communicator) 그리고 운영책임자까지, 네 가지 역할의 조화와 협업은 매우 중요합니다. 컨트롤타워는 장애가 서비스에 미치는 영향과 장애 범위에 따라 장애의 등급을 결정합니다. 외부 커뮤니케이션을 담당하는 운영책임자에게는 장애 등급 및 서비스 상태 정보를 공유합니다. 그리고 장애 처리 업무를 수행하는 오퍼레이터에게는 구체적 작업 내용을 지시합니다. 오퍼레이터는 컨트롤타워를 중심으로 장애 처리 업무를 수행합니다.

이때 컨트롤타워와 오퍼레이터가 장애 대응에 집중할 수 있도록, 커뮤니케이터는 서비스와 조직 내 상황을 정확하게 파악하고 소통 채널에 공유하며, 대시보드에 대응 이력과 이벤트를 실시간으로 정리합니다. 이 네 가지 업무의 담당자는 장애 감지부터 후속 대응까지 장애 대응 전 과정에서 각자의 역할을 수행합니다.

컨트롤타워와 커뮤니케이터 역할을 두는 이유는 커뮤니케이션 혼선으로 인한 피해를 줄이고 장애에 신속하게 대응하기 위해서입니다. 장애가 발생하면 무엇보다도 오퍼레이터가 장애를 빠르고 정확하게 처리하는 것이 중요합니다. 이를 위해 각 서비스 담당자 간의 원활한 커뮤니케이션을 바탕으로 관련된 정보가 효과적으로 공유되어야 합니다. 그래서 카카오의 장애 대응 체계 매뉴얼은 컨트롤타워를 3순위까지 복수로 지정하거나 인사 변동 시 매뉴얼을 즉각 업데이트하는 등 커뮤니케이션의 혼선을 줄이려고 노력하고 있습니다. 또한 연간 2~3회의 상시 훈련을 통해 매뉴얼에 따라 각 역할이 잘 수행 되고 있는지 확인하는 등 장애 대응 업무 체계를 개선하고 있습니다.

그림 34. 장애 대응 커뮤니케이션 흐름도

2-2. 장애 등급 및 대응 과정

장애 등급 구분

장애가 발생하면 사용자의 영향 범위와 서비스 위험도, 복구시간, 대외 반응 등에 따라 장애 등급을 판단합니다. 장애 등급은 총 3가지 유형으로 1~3급으로 나눠지며 장애 등급 판단은 담당 부서의 컨트롤타워가 결정하게 됩니다.

3등급 장애는 사용자가 직접 체감할 수 없는 수준의 장애입니다. 서비스 보수작업을 위해 사전에 공지한 경우도 3등급에 해당합니다. 2등급 장애는 일부 사용자가 체감할 수 있는 수준의 장애로 발생 빈도가 가장 높습니다. 1등급 장애는 서비스가 정상적으로 작동하지 않아 다수의 사용자가 서비스에 접근할 수 없는 상태를 의미합니다. 3등급 또는 2등급으로 분류된 장애의 복구가 예상보다 지연될 경우에는 한 단계 높은 장애 등급으로 격상됩니다.

그림 35. 장애 등급 구분

장애 대응 과정

장애 대응체계에서 정한 장애 대응 과정은 ①장애 감지, ②장애 선언, ③장애 처리, ④장애 종료, ⑤후속 대응 총 5단계로 구성됩니다. 컨트롤타워와 운영책임자는 장애 대응 전 과정에서 역할을 수행합니다.

장애 대응 과정의 흐름을 시간순으로 살펴보면, 먼저 서비스 장애 발생을 인지한 카카오 구성원이 카카오워크나 카카오톡, 또는 다른 사내 메신저의 보조 소통 채널을 통해 장애 현황을 공유합니다. 담당 개발자가 장애 발생을 확인하면 장애 상황을 선언합니다.

이후, 보조 소통 채널을 통해서 각 부서에 장애 심각성 및 장애 내용을 전파 합니다. 장애가 선언되면 각 서비스 기획팀이 대시보드를 생성하고, 개발팀은 대시보드에 개발팀 수행 내역, 운영팀 수행 내역을 시간대별로 기록합니다. 장애를 처리하는 중에는 장애 상황을 해결하는 오퍼레이터가 메신저 서비스나 화상회의 서비스를 사용해 커뮤니케이션하면서 장애를 처리합니다. 장애가 종료되면 개발자가 장애 종료를 선언하고, 후속 대응으로 잔여 이슈 등 장애 여파 후속 처리와 회고를 진행합니다.

그림 36. 장애 대응 과정

카카오의 장애 대응 과정을 조금 더 자세히 살펴보면 아래와 같습니다.

①장애 감지: 카카오는 카카오워크 외의 다른 메신저 서비스에서도 조직 구성원이 장애 상황을 공유하는 보조 소통 채널을 운영하고 있습니다. 장애 상황에서 카카오워크 메시지가 작동하면 카카오워크의 장애 공유 채널에 공유하며, 카카오워크 메시지가 동작하지 않으면 다른 사내 메신저 서비스에 운영하는 보조 소통 채널로 커뮤니케이션이 이루어집니다.

②장애 선언: 컨트롤타워가 카카오톡에서 장애가 발생했다는 것을 확인하면 관련 부서와 운영책임자에 장애 상황을 선언합니다. 운영책임자는 컨트롤타워가 미처 장애 선언을 공유하지 못한 채널에 장애 선언을 공유해 누락이 발생하지 않도록 합니다. 장애가 선언되면 각 서비스의 개발팀은 대시보드를 생성해 개발팀 수행 내역, 운영팀 수행 내역을 시간대별로 기록합니다. 복구지원반은 외부 관련 기관에 장애 상황을 보고하며, 이용자 공지와 언론 보도 자료를 제공합니다.

③장애 처리: 장애 처리 과정에서는 컨트롤타워, 커뮤니케이터, 운영책임자, 오퍼레이터 모두의 역할이 중요합니다.

컨트롤타워는 장애를 직접 처리하는 역할을 담당하는 오퍼레이터에게 작업을 지시합니다. 오퍼레이터는 장애를 신속히 처리하기 위해 컨트롤타워의 지시를 최우선으로 수행합니다. 커뮤니케이터는 오퍼레이터의 커뮤니케이션을 지원하는 역할을 합니다. 서비스와 조직 내 상황을 정확히 파악하고 장애 공유 채널이나 보조 소통 채널에 공유합니다. 그리고 대시보드에 대응 이력과 이벤트를 실시간으로 정리합니다. 이 과정에서 신속한 의사결정과 대응을 위해 다양한 소통채널을 활용합니다. 운영책임자는 컨트롤타워와 오퍼레이터가 기술적 대응에 집중할 수 있도록 카카오톡 서비스 사용자 및 카카오 내부의 커뮤니케이션을 책임집니다.

④장애 종료: 장애 처리를 주관한 담당자는 장애가 해소되면 장애 종료를 선언합니다. 이후 컨트롤타워, 운영책임자가 장애 종료를 보조 소통 채널에 전파합니다. 운영책임자는 사용자가 카카오톡 서비스를 불편함 없이 사용할 수 있을 정도로 안정화되면, 장애 시간 및 원인 등을 포함한 장애 해소 공지를 게재합니다.

⑤후속 대응: 컨트롤타워는 개발팀의 조치와 대응을 지속 관리합니다. 운영책임자는 사용자 영향 파악, 사용자 대응 커뮤니케이션 등을 지속해서 수행합니다.

2-3. 장애 일지 작성과 회고

카카오의 각 서비스 담당자는 서비스의 연속성을 개선하기 위한 방안 중 하나로 장애일지를 작성하고 있습니다. 장애일지는 서비스 운영 과정에서 발생한 장애에 대한 종합적인 기록물입니다. 여기에는 장애의 발생 시점, 원인, 영향도, 조치 내역, 그리고 재발 방지 대책이 상세히 서술되어 있습니다. 장애 일지는 향후 동일하거나 유사한 장애가 재발하는 것을 예방하는 데 도움이 되며, 장애 발생 시 신속하게 대응하기 위한 참고자료로 활용됩니다. 카카오는 정기적으로 장애일지의 내용을 분석해, 서비스 개선에 활용하고 있습니다.

장애 일지 작성을 완료하면 팀 내에서 회고를 진행합니다. 이 회고에는 해당 서비스 담당자 뿐만 아니라 장애로 영향 받은 서비스의 담당자도 함께 참여합니다. 회고를 통해서 장애가 사용자에게 미치는 영향을 최소화하고, 장애에 대응하는 시간을 단축하기 위한 방안을 마련합니다. 필요하다면, 회고에서 도출된 개선점을 바탕으로 프로세스를 매뉴얼화하거나 자동화하는 방안을 검토합니다. 각 조직은 회고에서 도출된 개선 과제를 수행해 유사한 장애를 예방하려 노력합니다.

서비스에 심각한 피해를 준 1급 장애에 대해서는 전사 회고를 진행합니다. 이 회고에는 해당 서비스 담당자, 장애로 영향 받은 서비스의 담당자, 컨트롤타워 등등 다양한 관련자들이 참여합니다. 전사 회고의 목적은 전사적 관점에서 근본적인 지원과 복합적인 해결 방안을 계획하고 실행하기 위함입니다. 아울러 팀 내 회고에서 도출된 개선 과제들이 실행 가능한지, 적절한 담당자가 지정되었는지, 우선순위가 명확히 정리되고 진행 상황의 가시성이 확보됐는지 등을 함께 점검합니다.

2-4. 장애 모의 훈련

체계적이고 반복적인 연습은 실제 상황에서 신속하고 효과적인 대처를 가능하게 합니다. 카카오는 정기·상시 모의 훈련을 시행해 각종 장애 상황에 대비하고 있습니다.

우선, 순간적으로 대량의 트래픽이 발생하는 경우에 대비해 정기 훈련을 시행하고 있습니다. 지난 대응에 대한 회고부터 시작해 대응 수정, 시나리오 점검, 대응 훈련, 신년 대응까지의 5단계로 진행되는 정기 훈련은 약 두 달 반 동안 체계적으로 진행됩니다.

다양한 장애 상황을 가정하고 시행하는 상시 훈련은 4단계에 걸쳐 진행되며, 장애 상황에서 사전 준비한 매뉴얼에 따라 얼마나 빠르고 효율적으로 담당자들이 장애에 대처하는지 평가합니다.

한편 데이터센터의 문제로 야기되는 장애에 대응하기 위해 메시지의 수·발신 기능을 핵심적으로 수행하는 요소들이 정상 작동하는지 점검하는 데이터센터 장애 모의 훈련도 시행합니다.

정기 훈련

카카오는 대량의 트래픽이 발생하는 신년 이벤트를 대비하기 위한 정기 훈련을 진행합니다. ‘혹한기 훈련’이라고도 부르는 정기 훈련은 실제 상황을 30분에서 1시간 내외로 압축해 실시하는 훈련으로, 실제 카카오톡 서버가 동작하는 환경과 거의 동일한 환경에서 총 2.5개월간 진행하는 큰 규모의 훈련입니다.

정기 훈련 과정은 ①지난 대응 회고, ②대응 수정, ③시나리오 점검, ④대응 훈련, ⑤신년 대응의 5단계 순서로 진행됩니다. 첫 번째, 신년 대응이 끝나고 1월 첫째 주가 되면 정기 훈련 참여자들이 지난 정기 훈련 회고를 진행합니다. 잘된 점, 아쉬웠던 점을 기반으로 개선점을 도출합니다. 두 번째, 신년을 1~2달 정도 앞둔 10월이 되면 장애 대응 방식을 업데이트합니다. 이때 회고를 기반으로 장애 대응을 위한 신규 기능을 개발하거나 기존 코드를 수정, 보완하는 작업을 진행합니다. 세 번째, 정기 훈련 시나리오를 점검합니다. 수정된 대응 방식을 시험해볼 수 있는 시나리오를 작성하고, 관련 담당자에게 시나리오를 공유하고 피드백을 받아 시나리오를 수정하는 과정을 반복하면서 시나리오를 점검합니다. 네 번째, 실제 카카오톡 서비스가 동작하는 환경과 가장 유사한 환경에서 대응 훈련을 합니다. 다섯 번째, 대응 방식을 기반으로 신년 트래픽에 대응합니다. 신년 대응을 위해 진행하는 정기 훈련 과정에 대해 좀 더 자세히 알아보겠습니다.

그림 37. 정기 훈련 과정

①지난 대응 회고: 지난 대응 회고는 1월 첫째 주부터 약 일주일간 진행됩니다. 이전에 진행한 장애 대응 과정에서 좋았던 점, 아쉬웠던 점을 파악하고 기록합니다.

②대응 수정: 대응 수정은 신년 이벤트를 1~2개월 정도 앞둔 10월경에 약 한 달 동안 진행됩니다. 카카오톡 서비스의 코드나 서버 구조가 작년과 같지 않으므로, 작년과 달라진 차이점을 확인해서 목록을 작성합니다. 담당자들은 이 목록을 기반으로 새롭게 업데이트된 장애 대응 계획을 세우기 위해 신규 기능을 개발하거나 서버를 증설하고, 시스템 설정을 변경하는 작업을 진행합니다. 이 과정에서 작업한 내용은 모두 기록해 문서화합니다.

③시나리오 점검:: 대응 훈련을 시행하기 전 약 3일 동안 대응 훈련 시나리오를 결정하고 점검합니다. 이때, 시나리오를 최종 확정하기까지 카카오톡 서비스의 연관 부서 간의 활발한 커뮤니케이션과 피드백이 필요합니다. 시나리오는 시간 순서 대로 작성되며, 서비스별 장애 대응 담당자, 담당자가 취해야 하는 대응 및 설명을 포함합니다. 시나리오 작성이 끝나면 담당자들이 모두 모여 시나리오를 최종 점검합니다.

④대응 훈련: 실제 이벤트가 발생하기 전 대응 훈련을 진행합니다. 대응 훈련을 진행할 때는 카카오톡 서비스와 연관된 부서에 미리 공지 후 대응 훈련 내용을 공유합니다. 대응 훈련은 실제 상황과 가장 비슷한 환경에서 진행되며, 서비스를 구성하는 각 컴포넌트의 설정값 역시 실제와 동일한 값으로 설정합니다.

대응 훈련을 실제와 유사한 환경에서 진행하는 이유는 카카오톡 서비스와 연관된 많은 종류의 서비스들이 장애 상황에서 제대로 동작하는지 확인하고 대응해야 하기 때문입니다. 예를 들어, 카카오톡 서비스 중에는 알림톡 기능이 있습니다. 알림톡은 톡으로 메시지를 발송한 뒤, 카카오톡 서버에 메시지 발송을 확인하는 요청을 보냅니다. 그런데 카카오톡 서버에는 장애 상황을 감지하면 자동으로 비상 상황 모드로 변경하는 트래픽 분할 시스템이 있습니다. 비상 상황 모드에서 서버는 요청을 중요도에 따라 분류하고, 중요도가 높은 요청을 우선 처리합니다. 그래서 알림톡의 메시지 발송 확인 요청과 같은 요청들은 메시지 수·발신 요청에 비해 처리 순서가 밀리게 됩니다. 이렇게 요청이 지연되는 상황이 발생하면, 알림톡도 이상이 발생했다고 감지하고 이전과 다르게 동작하기 시작합니다.

대응훈련에서는 이런 서비스의 동작을 확인하고, 이러한 동작이 카카오톡 서비스를 이용하는 데 불편함을 주는지 확인합니다. 가끔 예상한 대로 동작하지 않아 장애를 일으키는 서비스가 있습니다. 이런 경우에는 서비스 담당자들이 회고를 통해 문제점을 파악하고, 신년 대응 전까지 대책을 마련하고 전략을 수정합니다.

⑤신년 대응: 정기 훈련을 기반으로 신년 이벤트에 대응합니다. 여러 장애 대응 중 가장 중요한 신년 대응은 12월 31일 저녁 6시부터 1월 1일 새벽 2시까지 총 8시간 정도 진행합니다. 2023년 신년 대응에는 50명 이상의 인원이 12월 31일 오후 6시부터 1월 1일 오전 2시까지 장애에 대응했습니다. 2023년 1월 1일 0시 기점으로 카카오톡의 트래픽이 폭증했으나 장애는 발생하지 않았고, 이용자의 새해 인사 카톡은 문제없이 수·발신되었습니다.

상시 훈련

카카오는 상시 훈련 체계를 수립해서 서비스별로 훈련을 진행하고 있습니다. 상시 훈련은 장애 상황에서 담당자들이 각자의 역할을 얼마나 잘 수행하는지 확인하고, 당황하지 않고 매뉴얼에 익숙해지도록 돕는 데 중점을 두고 있습니다. 상시 훈련과 정기 훈련은 아래와 같이 크게 3가지 차이점이 있습니다.

①상시 훈련은 담당자들에게 훈련 진행 날짜와 내용을 공지하지 않으며, 실제 장애 상황처럼 불시에 진행됩니다. 정기 훈련은 훈련 날짜 및 내용을 미리 담당자에게 공지합니다.

②상시 훈련은 장애가 발생했다는 사실을 가정하고 매뉴얼을 기반으로 담당자들 사이에서 정보를 전파하며 진행합니다. 정기 훈련은 프로덕션 환경에서 장애 시뮬레이션을 진행합니다.

③상시 훈련은 담당자 간의 소통으로 장애 관련 정보 전파를 진행합니다. 장애 시작부터 장애 완료까지의 담당자 간 소통과 정보 전달 상태를 평가하고 매뉴얼을 개선합니다. 정기 훈련은 실제로 발생할 수 있는 장애에 대응하기 위해서 스크립트를 개발하거나 개선하는 작업을 진행합니다. 그리고 모의 훈련을 실행해 코드 및 서비스 컴포넌트를 개선합니다.

그림 38. 상시 훈련 과정

상시 훈련은 ①장애 선언, ②담당자 지정, ③장애 대응, ④회고의 4가지 순서로 진행됩니다. 첫 번째, 상시 훈련 담당자는 카카오톡이 아닌 메신저로 장애를 선언합니다. 이때부터, 카카오톡은 장애가 발생해서 사용할 수 없는 상황이라고 가정합니다. 상시 훈련 참여자는 카카오톡이 아닌 다른 메신저 서비스를 사용해서 소통합니다. 두 번째, 매뉴얼에 따라 담당자가 지정됩니다. 세 번째, 담당자는 서비스 상태와 장애 대응을 위해서 실행한 조치를 시간 순서에 따라 대시보드에 기록합니다. 상시 훈련에 참여한 다른 담당자들은 대시보드에 기록된 내용을 바탕으로 장애가 해결될 때까지 다양한 조치를 실행하면서 소통합니다. 이 과정은 장애 상황을 해결할 때까지 진행됩니다. 네 번째, 장애 상황이 종료되고 상시 훈련이 끝나면 담당자 간 회고를 진행합니다. 회고를 통해 이번 상시 훈련에서 부족했던 부분을 파악하고, 매뉴얼을 개선합니다. 업데이트된 매뉴얼은 신규 입사자 또는 조직 구성원이 그 내용을 기억할 수 있도록 주기적으로 공유합니다.

상시 훈련은 신년, 연말처럼 예상할 수 있는 이벤트가 아니라, 예상치 못한 이벤트가 발생했을 때 담당자들이 신속하게 대처할 수 있도록 도와줍니다. 예를 들면, 2023년 7월 29일 오후 7시 7분 전북에서 지진이 발생했을 때에도 트래픽이 증가했으나 상시 훈련의 경험을 바탕으로 서비스 담당자들이 신속하게 대응할 수 있었고, 장애는 발생하지 않았습니다.

상시 훈련 중 하나인 데이터센터간 페일 오버 장애 모의 훈련은, 다중화된 데이터센터 중 특정 데이터센터가 제 기능을 하지 못해서 발생하는 장애에 대응하기 위한 모의 훈련입니다. 대부분 데이터센터는 자체적으로 자연재해 및 서비스 장애에 대응하는 장애 대응 체계를 구축하고 있으나, 아주 드문 확률로 제 기능을 수행하지 못하는 경우가 생길 수 있습니다.

데이터센터 장애는 한번 발생하면 장애의 영향이 연관된 다른 서비스에까지 미칠 정도로 파급력이 큰 편입니다. 그만큼 장애를 복구하는 것도 다른 장애에 비해 어렵습니다. 이러한 장애가 발생했을 때 최대한 빠르게 복구할 수 있도록, 카카오는 데이터센터 장애를 가정한 모의 훈련을 진행합니다. 데이터센터 페일 오버 장애 모의 훈련에 대해서 좀 더 자세히 알아보겠습니다.

데이터센터 페일 오버 장애 모의 훈련의 목표는 카카오톡의 핵심 기능인 메시지 수·발신 기능의 정상 동작입니다. 데이터센터 장애는 그 영향이 서비스 전체에 미칠 수 있을 정도로 영향 범위가 크기 때문에 모든 기능이 정상 동작하도록 대응하는 데 다소 긴 시간이 소요될 수 있습니다. 그래서 가장 중요한 메시지 수·발신 기능의 정상 동작을 목표로 장애 모의 훈련을 구성합니다.

메시지 수·발신 기능은 카카오 계정, API, 메시징의 3가지 컴포넌트로 동작합니다. 데이터센터 페일 오버 장애 모의 훈련을 위해 3가지 필수 컴포넌트를 여러 데이터센터에 실제 환경의 컴포넌트 크기보다 작은 크기로 구축합니다. 그리고 실제 카카오톡 서비스와 동일한 소스코드와 설정을 유지하기 위해, 실제 카카오톡 서비스를 운영하는 환경에 새 소스코드가 배포될 때마다 실제 컴포넌트와 코드 및 설정 동기화를 진행합니다.

데이터센터 페일 오버 장애 모의 훈련을 진행할 때는 실제 서비스에서 발생하는 트래픽과 거의 동일한 수준의 트래픽 부하를 주며, 여러 데이터센터 중에서 한두 개의 데이터센터에 있는 컴포넌트 동작을 중지하여 장애를 유발합니다. 이러한 상황을 임의로 만들어 메시지 수·발신 기능의 동작을 확인합니다. 모의 훈련 과정 중 정상 작동에 문제가 발생하면 회고를 통해 대응 전략을 수정하고 매뉴얼을 업데이트합니다.

그림 39. 데이터센터 페일 오버 장애 모의 훈련

3. 재해 복구 대응 및 관리 체계

3-1. 재해 복구 체계

재해 복구 조직

재해선포 판단기준에 따른 재해 선포가 선언되면 비상대책위원회를 중심으로 전사 재해복구체계를 구성하여 서비스 복구 및 재해 발생으로 인한 리스크 대응, 업무 복귀 지원활동 등 전반적인 위기 대응 활동을 수행합니다.

각 분과별 구성원은 비상대책위원회의 판단에 따라 결정되며, 비상대응반은 사고 발생 초기 대응 활동을 수행한 뒤 서비스 복구 및 복구 지원반에 편입되어 재해복구 활동을 수행합니다.

그림 40. 재해 복구 조직

재해 복구 프로세스

카카오의 재해 복구 프로세스는 ①재해 선포 선언 ②재해 대응(BCM 가동) ③재해 종료 선언의 3가지 순서로 진행됩니다.

①재해 선포 선언: 데이터센터나 사무 공간에 물리적인 피해가 발생해서 업무가 중단되거나, 서비스가 중단됐는데 복구 목표 시간 내에 복구가 불가능할 경우에 비상대책위원회에서 상황통제반을 가동하고, 재해를 선포합니다.

②재해 대응(BCP 가동): BCP 기반의 재해 복구 절차가 가동되며, 재해 복구 담당자들은 서비스를 신속하게 복구하기 위해서 사전에 정의된 역할에 따라 복구 작업을 수행합니다. 예를 들어 데이터센터에 일부 상면 등에 화재가 발생했을 경우 타센터 내 대체 상면을 긴급하게 확보하여 재해 복구 절차를 수행합니다.

③재해 종료 선언: 종합상황실은 위협 요인이 해소되었는지, 시설 및 인프라의 복원이 완료되었는지, 카카오의 업무와 서비스가 정상적으로 재개되었는지 등의 다양한 요소를 종합적으로 검토하고 이를 비상대책위원회에 보고합니다. 비상대책위원회는 이 보고를 바탕으로 재해 종료 선언 여부를 결정합니다.

카카오는 더 안정적인 서비스를 이용자에게 제공하기 위해서 노력하고 있습니다. 이러한 노력의 일환으로, 매년 1회 이상 전사 규모의 재해 복구 모의 훈련을 실시하고 있습니다. 이 훈련을 통해 재해 복구 프로세스가 실제 상황에서 작동할 수 있을지 점검하고, 필요한 부분은 개선하고 있습니다.

그림 41. 재해 복구 프로세스

3-2. 재해 복구 모의 훈련

전사 재해 복구 모의 훈련

카카오는 화재, 홍수 등 다양한 재해 상황 대비해 실질적인 대응 역량을 강화하고, 대응 체계 전반을 점검해 미비점을 보완하기 위해 정기적인 재해 모의 훈련을 실시합니다.

전사 재해 복구 모의 훈련은 연 1회 이상 실시하며, 필요시 비상대책위원장의 요청에 따라 추가 실시할 수도 있습니다. 훈련의 실효성과 효과성을 높이기 위해 전사 재해 복구 모의 훈련, 서비스별 복구 훈련, 절차서 기반 훈련, 시스템 전환 훈련 등 다양한 방식을 적용합니다.

BCM 주관부서는 서비스⋅플랫폼⋅인프라의 업무연속성을 확인하기 위한 훈련계획을 수립하고, 훈련 전반을 주관합니다. 훈련이 종료되면 훈련에 대한 총평, 설문조사 등을 실시함으로써 결과를 분석합니다. 재해 모의 훈련을 강화하고자 하는 노력을 통해 기술, 인프라 등 각 부문별 장애 대응 역량 뿐만 아니라 전사적인 재해 대응 능력을 향상하고 있습니다.

재해 모의 훈련은 ①재해 모의 훈련 시나리오 및 훈련계획서 수립, ②재해 모의 훈련, ③재해 모의 훈련 결과 평가 및 보완의 3단계 순서로 진행됩니다.

첫 번째, 재해 모의 훈련 담당자와 훈련 참여자들이 모여서 재해 모의 훈련 시나리오와 훈련계획서를 수립합니다. 두 번째, 훈련계획서를 바탕으로 재해 모의 훈련을 실시합니다. 세 번째, 훈련이 종료된 후 참여자들이 훈련의 각 항목을 평가합니다. 이를 기반으로 미흡했던 부분을 파악하고, 개선점을 도출하여 다음 모의 훈련에 반영합니다. 재해 모의 훈련에 대해서 좀 더 자세히 알아보겠습니다.

①재해 모의 훈련 시나리오 및 훈련계획서 수립: 재해 모의 훈련 대상 서비스의 담당자와 해당 서비스의 유관련자들이 모여서 재해 훈련 계획을 수립하고 이를 기반으로 재해 모의 훈련 시나리오를 작성합니다. 이 시나리오는 서비스가 화재, 홍수 또는 정전과 같이 예기치 못한 재해에 직면한 상황을 가정합니다. 재해 발생부터 정상화까지 일련의 전 과정을 시간별로, 이용자에게 안정적인 서비스를 제공하기 위해 신속하게 복구하는 과정과 방법이 상세하게 서술되어 있습니다.

②재해 모의 훈련: 재해 모의 훈련 담당자와 참여자들이 재해 모의 훈련 시나리오에 따라 재해 모의 훈련을 실시합니다. 훈련은 실제 서비스가 동작하는 환경과 가장 유사한 환경에서 진행합니다. 훈련 참여자들은 시간대별로 각기 담당한 조치사항을 수행하고, 수행 여부를 기록합니다.

조치를 진행하는 과정에서 재해 모의 훈련 시나리오를 수립할 때 예상하지 못했던 문제 또는 상황이 발생할 수 있습니다. 훈련 참여자들은 이러한 상황을 대응하기 위해서 행했던 조치를 다른 참여자에게 신속히 공유하거나 특이사항을 기록합니다.

③재해 모의 훈련 결과 평가 및 보완: 훈련이 종료되면, 훈련 참여자는 사전에 계획한 대로 훈련이 원활하게 수행되었는지 평가합니다. 이러한 과정을 통해 예기치 못한 상황을 야기하거나 여러 이유로 인해 계획과 다르게 진행된 부분을 파악합니다.

또한 훈련 평가를 바탕으로 개선이 필요한 부분을 파악하고, 이에 대한 개선 방안을 마련합니다. 다음 재해 모의 훈련을 준비할 때 개선점을 반영해 재해 모의 훈련을 더욱 견고하게 준비합니다.

카카오는 정기적으로 재해 모의 훈련을 수행하고 그 과정을 평가 및 개선합니다. 예기치 못한 재해가 발생하더라도 신속하고 효과적으로 대응할 수 있는 역량을 강화하고자 합니다.

2024년도 을지연습

4차 산업혁명 시대의 핵심 인프라인 데이터센터는 데이터 저장 및 관리, 서비스 안정성 유지하는 등 중요한 역할을 담당합니다. 카카오의 안산 데이터센터는 최대 12만 대의 서버를 수용할 수 있는 대규모 시설로, 6엑사바이트(EB) 이상의 데이터를 저장할 수 있는 만큼 보안에 각별한 주의가 필요합니다.

카카오는 2024년 8월 21일 안산시와 함께 2024 을지연습 연계 도 단위 민방위훈련을 실시했습니다. 이번 훈련은 카카오 안산 데이터센터에서 진행됐으며 총 16개 기관에서 200여 명이 참가했습니다. 실제 실무담당자들도 현장에서 임무를 수행했으며, 참가자들은 실제 재난 상황처럼 계획된 시나리오를 따라 다양한 위협에 대응하는 훈련을 진행했습니다. 도 단위의 대규모 훈련인 만큼 51사단장과 경기도 균형발전기획실장이 직접 참관했으며, 훈련 과정은 경기도 전시종합상황실에 실시간으로 중계됐습니다.

카카오는 데이터센터를 비롯한 중요 시설 및 인프라를 보호하는 능력을 강화하고 자체적인 위기 대응 역량을 기르기 위해 노력하고 있습니다. 아울러 다양한 유형의 재난 재해도 효과적으로 대응하기 위해 장애 및 재해 대응 체계와 전략을 지속적으로 개선해 나가고 있습니다.

그림 42. 2024년도 을지연습

닫는말

카카오는 사용자의 일상과 함께하는 서비스입니다. 사용자들이 언제 어디서나 가장 쉽고 편리한 일상을 즐길 수 있도록, 데이터센터와 같은 핵심 인프라를 보호하기 위해 지속적인 훈련과 체계적인 재해 및 장애 대응 전략을 개발하는 데 힘쓰고 있습니다. 또한 적극적으로 위험 평가, 관리 및 예방 활동을 지속적으로 수행해 서비스의 안정성과 지속성을 보장하고자 최선의 노력을 다하고 있습니다.

기여한 사람들

강훈구 ed 윤영석 ken 진일섭 brett 허명주 mj