기술 블로그
B레벨 - 심화
GitHub Enterprise Server 검색 아키텍처 재구축: Elasticsearch HA
인프라
검색엔진
백엔드
ElasticsearchCross Cluster ReplicationLuceneGHES HA
배경
GitHub Enterprise Server(GHES)의 검색 기능은 이슈 필터링, 릴리즈, 프로젝트 관리, PR 카운트 등 핵심 기능에 의존. 기존 클러스터 Elasticsearch 아키텍처가 HA 환경에서 문제 발생.
도전 과제
클러스터 Elasticsearch 모델의 운영 취약성. Primary 샤드가 Replica로 이동 시 유지보수 중 잠금 상태 발생 가능. 데이터 일관성 문제로 관리자가 정밀한 유지보수 절차 필요.
해결 방안
Elasticsearch Cross Cluster Replication(CCR)으로 마이그레이션. 멀티노드 클러스터링에서 각 서버의 독립 단일 노드 Elasticsearch 클러스터로 전환. CCR이 Lucene 세그먼트 영속화 후 데이터 복사.
결과
읽기 전용 노드에 핵심 데이터가 위치하는 시나리오 제거. 관리자 운영 복잡도 대폭 감소. 내구성 있는 복원력 있는 검색 인프라 확보.
핵심 인사이트
- 1.아키텍처 변경이 시스템 신뢰성을 크게 향상시킬 수 있음
- 2.DB 복제 문제는 최적 솔루션까지 수년의 엔지니어링 노력이 필요할 수 있음
- 3.단순한 아키텍처가 복잡한 클러스터링보다 운영에서 더 안정적