카카오, MHA 대체할 MySQL HA 표준으로 Orchestrator 도입
핵심 내용
카카오는 2023년부터 R&D를 통해 MHA를 대체하는 Orchestrator 기반 HA 표준을 확립했다.
자세히 보기
카카오는 대규모 MySQL 운영 환경의 고가용성(HA) 확보를 위해 기존 MHA 기반 표준 구성을 Orchestrator 기반으로 전환했다. MHA는 2012년 개발된 이후 10년 넘게 패치 및 기능 추가가 중단되어 최신 MySQL 및 OS 버전 대응이 불가능했으며, Perl 언어로 작성되어 유지보수가 어려웠다. 또한 네트워크 장애 시 오동작이 빈번하고 Replica 서버 상태 기반의 유연한 HA 구성이 불가능하다는 한계가 있었다.
차세대 HA 솔루션 선정 및 구성
카카오는 2023년부터 R&D를 진행하여 MySQL Cluster, ProxySQL, Percona XtraDB Cluster 등 13가지 후보 솔루션을 검토한 끝에 Orchestrator를 최종 선정했다. Orchestrator는 Shlomi Noach가 개발한 오픈소스로, 복잡한 Replication 구조를 지능적으로 이해하고 Healing하는 데 초점을 맞췄다. 카카오는 Orchestrator 자체의 고가용성을 확보하기 위해 Raft 알고리즘을 적용한 클러스터 구성을 채택했다. Raft HA 구성은 최소 3대 이상의 홀수 노드로 구성되며, 리더 선출을 통해 Split-Brain 현상을 방지하고 데이터 일관성을 보장한다.
카카오 맞춤형 개발 및 운영 최적화
카카오는 Orchestrator를 내부 DBaaS 환경에 맞게 커스터마이징하여 Protego라는 연동 시스템을 구축했다. Protego는 Orchestrator와 카카오 DBaaS 환경 사이의 연동 기능을 제공하며, DB 메타정보를 관리한다. 또한, Replica 서버의 상태를 모니터링하여 장애 시 도메인 변경을 통해 트래픽을 우회하는 DNS Failover 기능을 자체 개발했다. 이 기능은 Replica 장애 발생 시 약 5분 내외의 시간 내에 다른 Replica로 도메인을 변경하여 서비스 연속성을 확보한다.
운영 방식 변경 및 기대 효과
Orchestrator 도입에 따라 MySQL의 장애 감지 로직이 변경되었다. Orchestrator는 Select 1 쿼리 결과와 SHOW REPLICA/SOURCE STATUS 정보를 기반으로 서버 상태를 판단한다. 이에 따라 네트워크 장애 시 Failover 소요 시간에 영향을 미치는 slave_net_timeout 시스템 변수 값을 조정하여 최적화했다. 카카오는 현재 MHA와 Orchestrator를 병행 운영 중이며, 3년 내 모든 시스템을 Orchestrator로 통합할 계획이다. 이를 통해 네트워크 장애로 인한 Failover 시간을 단축하고, 대규모 MySQL 환경의 모니터링 및 관리 효율성을 높일 것으로 기대하고 있다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.