if(kakao)dev2022 1일차 내용 정리

lea_hwang·2022년 12월 7일
0

뉴스기사링크

2022.10.15

SK C&C 판교 데이터센터에서 화재가 발생하였다.
(나를 포함한) 많은 사람들이 카카오톡을 비록한 많은 카카오 서비스를 사용할 수 없게 되어 불편함을 겪었다. 그러나, 생각보다 복구에 많은 시간이 걸렸고, 개발자가 되고 싶은 한사람으로서, 화재 발생시 어떠한 문제가 있었기에 빨리 복구되지 않았는지 원인이 너무 궁금했다.

그러던 중 발견한 카카오 개발자 컨퍼런스.

https://if.kakao.com/
역시 카카오인가 시작부터 UI.. 너무 멋있다

1일차에 카카오 데이터센터 화재로 인한 서비스 중단과 그에 따른 문제 해결 관련 내용을 다룬다기에 참가하여 내용을 요약 정리해보기로 하였다.

1010 장애 원인 분석

장애 상황

10.15 SK C&C 판교 데이터센터에서 화재 발생과 이로 인한 카카오 서비스 전반의 장애

무엇이 문제였을까?

서비스를 담당하는 서버가 이중화가 되어있었음에도 불구하고 서비스 장애가 발생했고 카카오톡 메세지 수발신 등 주요 기능은 먼저 복구되었지만, 10월 20일 오후 11시 모든 서비스가 복구 완료되기까지 상당한 시일이 걸림. 이는 이중화와 위기 대응 과정에 미흡함 때문이었음.

원인 분석: 이중화

이중화란, 운영 중인 서비스의 안정을 위해 각종 자원(하드웨어, OS, 미들웨어, DB 등)을 이중 혹은 그 이상으로 구성하는 것.

1. 데이터 센터 간 이중화가 미흡.

데이터 센터 전체에 문제가 생기더라도 다른 데이터센터의 모든 시스템이 이중화가 되어있었다면 빠르게 복구되었을텐데, 일부 시스템이 판교 데이터센터 내에서만 이중화되어 있어서 장애 복구가 늦어짐.
예로, 서비스를 운영하는 많은 시스템에서 사용되고 있는 캐시 서버와 오브젝트 스토리지가 완벽하게 이중화되지 않고 판교 데이터센터에만 설치되어 있어 이를 사용하는 서비스들의 복구가 늦어짐: 카카오 로그인 카카오톡의 사진 전송 기능.

서로 다른 데이터센터에 이중화가 되어 있는 경우에도, 하나의 데이터 센터에서 장애가 발생하면 다른 데이터 센터로 자동 전환해 주는 시스템이 작동해야 하는데 이 시스템마저 판교 데이터센터에만 설치되어 있었음. 이에 따라 수동으로 전환 작업을 진행했기 때문에 복구가 늦어짐.

2. 시스템을 복구하기 위한 모니터링 시스템의 이중화가 미흡

사용자 서비스에 직접적으로 필요한 시스템 외에 서비스의 개발과 관리를 위한 운영 관리 도구가 필요한데, 이러한 도구들의 이중화가 미흡함. 상대적으로 이러한 도구들의 안정성 확보에 소홀하였음.
예를 들어, 컨테이너 이미지를 저장하고 관리하는 시스템이나 일부 모니터링 도구 등을 화재 여파로 사용할 수 없게 되어 복구에 상당한 어려움을 겪음.

3. 이중화 전환 후 가용 자원의 부족

판교 데이터센터 전체를 대신할 만큼의 가용 자원이 확보되어 있지 않았기 때문에 판교 데이터센터의 전원이 들어와서 모든 시스템이 정상화되기 전까지 복구를 완료할 수 없었음. 전체 시스템의 이중화 수준은 가장 약한 시스템의 이중화 수준을 따라가기 때문에 개별 시스템의 미흡한 이중화가 전체적인 장애를 유발.

개별 부서나 시스템마다 다른 이중화 수준 및 체계 부족한 상면 등으로 문제가 생기지 않도록 회사 차원에서 체계적인 이중화가 필요.

원인 분석: 위기 대응

1. 장애 복구를 위한 인력과 자원이 부족.

운영 관리 도구의 복구 인력이 부족했던 것이나 이중화에 필요한 상면의 부족이 치명적이었음. 평소 이중화나 장애 대응 체계를 갖추고 있었더라도 이번 서비스 장애와 같이 데이터센터 전체의 장애 상황을 가정하면, 준비가 부족했음.

2. 장애 대응을 위한 커뮤니케이션 채널에 혼선이 있었음.

사내 커뮤니케이션과 모니터링 채널로 카카오톡과 카카오 워크를 사용. 해당 서비스를 사용할 수 없을 때, 중요사항 전파 및 의사결정을 위한 커뮤니케이션 채널이 준비되어 있고 일상적으로 사용되고 있었어야 하나 그러지 못하였음.

3. 재해 초기의 컨트롤 타워의 부재

카카오와 공동체, 그리고 개별 조직이 동시다발적으로 장애에 대응함. 그런데 전체적인 조율과 협업을 지원하는 전사 조직이 사전에 세팅되어 있지 않았고 서비스 별로 개발자들이 최선을 다했지만, 그것만으로는 부족했음.

결론: 주요원인

  1. 데이터센터 간 이중화 미흡
  2. 시스템을 복구하기 위한 모니터링 시스템의 이중화가 미흡
  3. 하나의 데이터센터 전체의 장애에 대응하기 위한 인력과 자원의 부족
profile
끊임없이 도전하는 개발자, 황희원입니다 :)

0개의 댓글