Engineering
[안정성 보고서] 1. 프롤로그: 끊김 없는 서비스를 위한 카카오의 안정성 전략
kakao tech카카오
2024년 12월 8일
원문에서 보기 ↗여는 말
지난 14년간, 카카오의 서비스는 지속적으로 발전해 왔습니다. 지금 이 순간에도 다양한 서비스를 떠받치는 새로운 시스템이 구축되고 운영되고 있으며, 규모도 점점 더 거대해지고 극도로 복잡해지고 있습니다. 이러한 시스템들이 장애가 발생하지 않도록 개발하고, 이용자에게 1년 365일간 단 한번의 중단 없이 서비스를 제공하는 것은 기술적으로 매우 도전적인 과제입니다.
이러한 상황에서 카카오는 이용자의 일상을 유지하기 위해 무엇에 집중해야 하는지 고민했습니다. 그 질문에 대한 답은 서비스의 안정성을 기술적 관점이 아닌 이용자 관점에서 측정해야 한다는 결론이었습니다. 이용자 중심의 안정성 확보를 위한 카카오의 구체적인 노력을 이 시리즈에서 소개합니다. 2023년 카카오 안정성 보고서에 이어, 2024년에는 그 이후의 발전된 노력들을 중심으로 담았습니다.
1. 이용자 관점의 안정성
카카오톡은 이미 이용자의 일상에 필수 구성 요소로 자리 잡았습니다. 이러한 서비스에 장애가 발생한다면, 4천만 명의 일상이 큰 영향을 받을 수 있습니다. 그러나 우리는 그 어느 때보다도 기술과 서비스가 빠르게 발전하는 시대를 살고 있습니다. 2024년 8월 기준으로, 이용자의 일상에 가장 밀접한 카카오톡 채팅이 동작하는 서버 일부에서만 하루 평균 11회 이상의 새로운 소스 코드가 배포되고 있습니다.
이러한 기술적 환경에서 장애 발생은 거의 불가피하며, 장애를 완전히 예방하는 것은 현실적으로 불가능합니다. 하지만 이는 곧 카카오가 장애에 효과적으로 대응해야 한다는 것을 의미합니다.
2. 회복탄력성(Resilience) 기반의 안정성 향상
회복탄력성과 3요소
카카오는 장애에 효과적으로 대응하기 위해서 두 가지의 실행 전략을 수립했습니다. 첫 번째, 장애가 발생했을 때 최대한 신속하게 복구합니다. 두 번째, 설령 장애가 발생하더라도 이용자들이 그 영향을 최소한으로 체감하도록 합니다.
이를 위해서 카카오는 장애의 규모나 심각성을 ‘얼마나 많은 이용자가 얼마나 오랫동안 자주 영향을 받았는가’를 기준으로 측정하고 있습니다. 즉, 카카오는 장애의 기술적 난이도나 심각성 보다 이용자의 체감을 우선적으로 고려합니다. 만약 이용자가 특정 장애를 심각하다고 느꼈다면, 그것은 곧 중대한 장애로 간주됩니다.
이용자가 체감하는 장애의 심각성을 측정하기 위해서, 카카오는 장애를 구성하는 3요소를 정의했습니다.
- 장애 빈도: 특정 기간 동안 발생한 장애의 횟수
- 장애 영향 범위: 특정 장애에 영향을 받은 이용자의 수 또는 백분율
- 장애 평균 복구 시간(Mean Time To Repair, MTTR): 장애가 발생한 후부터 서비스 복구까지 소모된 평균 시간
장애 평균 복구 시간, 장애 빈도, 장애 영향 범위 이 3가지 요소는 각기 다른 문제로 각기 다른 해결 방법을 요구합니다.
- 장애 빈도 감소: 배포 및 작업 프로세스 개선, 인프라 확장 및 최적화
- 장애 영향 범위 축소: 서비스의 필수 로직 경량화, 배포 전략 개선
- 장애 평균 복구 시간 단축: 장애를 빠르게 감지, 신속한 롤백 및 서버 전환 전략을 수립, 체계적인 장애 대응 프로세스 확립
이 3가지가 동시에 줄어들어야 이용자들이 체감하는 장애의 심각성과 규모가 줄어듭니다. 이렇게 3요소를 종합적으로 관리하고 개선하는 역량이 바로 회복탄력성입니다.

회복탄력성이란 서비스에 장애가 발생했을 때 얼마나 빠르게 정상 상태로 돌아올 수 있는지를 나타내는 지표입니다. 이는 마치 몸이 질병에 걸렸을 때 스스로 회복하는 능력과 비슷합니다. 예를 들어, 회복탄력성이 높은 시스템은 장애를 신속하게 감지합니다. 일부 기능에 문제가 생겨도 다른 기능은 계속 작동하며, 전체 시스템을 빠르게 정상화할 수 있습니다. 그 덕분에 이용자들은 큰 불편 없이 서비스를 계속 이용할 수 있습니다.
구간별 개선 전략
서비스 전반의 회복탄력성이 향상시키기 위해서, 카카오는 이용자의 기기에서 요청이 발송하고 응답이 전송되는 전 구간을 크게 클라이언트, 서비스, 인프라 3구간으로 나누었습니다.

- 클라이언트: 이용자가 카카오 서비스를 이용하는 단말기
- 서비스: 카카오 서비스가 동작하는 여러 플랫폼과 클라우드
- 인프라: 클라우드와 플랫폼이 동작하는 서버와 데이터베이스
카카오는 지속적으로 각 구간의 취약점을 분석하고 개선해 나가고 있습니다. 이러한 과정을 통해 서비스 전반의 안정성을 향상시켜, 어떠한 장애와 재난 재해에도 중단되지 않는 서비스를 제공하기 위해 최선을 다하고 있습니다.
클라이언트
카카오는 최첨단 기술을 도입하고, 엄격한 품질 관리 프로세스를 운영하며, 건전한 콘텐츠 생태계를 조성하기 위한 탐지 및 모니터링 시스템을 구축했습니다.
서비스
카카오에서 운영하는 서비스는 클라우드 위에서 동작하고 있습니다. 장애에 신속하게 대응하고 데이터를 손실없이 안전하게 보관하기 위하여, 클라우드는 다중화되어 여러 데이터센터에 물리적으로 분산되어 있습니다.
인프라
카카오는 서비스의 안정성을 향상하기 위해서 데이터센터 및 설비를 지속적으로 확충하는 장기 로드맵을 수립했습니다. 2024년에 운영을 시작한 카카오 데이터센터 안산은 로드맵의 실행 과제 중 하나입니다.
전 구간
카카오는 각 구간 뿐만 아니라 전체 구간에서 서비스의 안정성을 향상하기 위해 여러 과제를 실행하고 있습니다. 먼저, BCM(업무연속성) 체계를 수립하여 실제 재난 재해가 발생하더라도 카카오의 업무와 서비스를 신속히 복구할 수 있도록 준비하고 있습니다. 그리고 전체 구간에서 철저한 보안 대응 체계를 구축하고, 24시간 365일 모니터링을 통해 사이버 공격을 방어하고 있습니다.
닫는 말
이처럼 카카오는 서비스의 안정성 향상을 위해 끊임없이 노력하고 있습니다. 이러한 기술적 노력과 더불어, 2024년, 카카오는 또 한번의 새로운 도약을 위해 미션을 수립했습니다. "사람을 이해하는 기술로, 필요한 미래를 더 가깝게 만듭니다"라는 이 미션은 카카오의 목표를 표현하고 있습니다.
이를 달성하기 위해, 카카오는 시대에 맞는 기술과 이용자 중심의 서비스를 제공해 이용자의 일상을 더 편리하고 풍요롭게 만들어가고 있습니다. 카카오의 성장이 곧 이용자의 만족이 되고, 이용자의 만족이 다시 카카오의 성장이 되는 선순환 구조를 만들고자 노력하고 있습니다.