GitLab DR, 재해복구 시스템 만들기

GitLab 에는 중요한 비즈니스 자산 데이터가 저장되어 있습니다. 제일 중요한 소스 코드를 포함해서 말이죠.
GitLab DR (Disaster Recovery). 즉 재해 복구는 자연재해와 사람에 의한 재난! 에 의해 GitLab 을 사용할 수 없는 경우에 복구 할 수 있는 프로세스에 따라 연속성을 갖고 GitLab을 사용 할 수 있도록 해주는 재해 복구 기능을 가지고 있습니다.
GitLab 엔터프라이즈 버전인 Premium 이상에서 사용 가능합니다. 보통의 엔터프라이즈 회사들은 이 기능 때문에 라이센스를 구입 하게 됩니다. 자체적으로 DR을 구축하는 비용 vs GitLab DR(Geo) 비용 따져보면 싸기 때문이겠지요?
GitLab 은 Geo 노드를 별도로 만들어서 재해 상황에 조치 할 수 있습니다. 재해 복구 솔루션을 설정하려면 투자가 필요합니다. 아직 GitLab 은 모든 것들을 복제하지 않습니다. 시스템 관리자는 Geo로 복제가 자동으로 되는 부분과 아닌 부분이어서 백업이 필요한 내용을 알고 있어야 합니다. 그럼 지금 부터 GitLab DR에 대해 알아볼까요?
GitLab DR(Geo) 는 어떻게 작동 되는 하는 건가요?

- 메인(Primary) 서버에서 세컨드리 서버로 미러링하고, 보조(Secondary) 읽기 전용 사용 됩니다.
- 사용자 계정, 이슈, 머지 요청(Merge Request), 그룹, 프로젝트 데이터를 포함한 레파지토리와 데이터베이스가 세컨드리에 미러링 됩니다.
- 팀은 모든 변경사항을 메인(Primary) 서버로 푸시하면서 보조(Secondary)에서 읽기 전용 미러링을 사용합니다.
- 모든 미러링 복제는 비동기로 진행 되어 즉시 디스패치 되도록 대기 큐를 관리 합니다.
좀 더 자세히 알아 보기 위해 아키텍처도 살펴 볼까요?

아키텍처를 통해 드러나는 특징을 공식 문서에 있는 내용에서 요약했습니다.
- DB에 대해 쓰기는 메인(Primary) 노드에서만 수행하고, 보조(Secondary) 노드에서는 스트리밍 리플리케이션을 통해 업데이트합니다.
- LDAP를 쓰고 있다면, 별도로 구성되어야 합니다. GitLab에서는 복제 안 합니다.
- 보조 노드는 동기화를 JWT 기반 인증을 통해 수행됩니다. 즉 레파지토리 데이터(git 브랜치, 위키) 는 git over https를 통해 업데이트되고, 첨부파일, LFS 데이터, CI 아티펙트(저장된 결과물)들은 비공개 API 엔드포인트로 복제됩니다.
GitLab DR 구성을 위해서는 시스템 요구사항, 방화벽 규칙, LDAP 설정과 로그를 설정하는 방법을 사전에 확인해야 합니다. 복수의 보조 노드들을 구성하거나 DR 구성으로 생기는 문제인 복제 중단, 다시 시작하는 방법 등을 알아야 합니다.
그래야지 재해 상황에서 어떤 시나리오를 통해 복구를 진행할 지를 알게 되기 때문이죠.
인포그랩은 GitLab의 한국 최고의 파트너이며 Agile 과 DevOps의 기술 서비스 회사입니다. 경험 있는 전문 컨설턴트, 엔지니어들이 고객의 다음 니즈를 해결해 드립니다.
GitLab 의 DR 구성에 대한 기술지원이 가능합니다. 사전 시뮬레이션과 데모를 통해 고객사 인프라 구성에 맞도록 충분히 검토된 결과를 제공합니다.
제품에 집중하세요. 나머지는 저희가 돕겠습니다.
사전 동의 없이 2차 가공 및 영리적인 이용을 금하며, 온·오프라인에 무단 전재 또는 유포할 수 없습니다.
Dexter
DevOps Consultant
DevOps 컨설팅·영업·팀 리더를 함께 맡으며, 전략 수립부터 실행까지 직접 끝내는 스타일로 일합니다. 맥락과 목표를 빠르게 파악해 지금 할 수 있는 가장 적합한 행동을 찾아 실행하는 것을 강점으로 삼습니다. 두괄식·속전속결 커뮤니케이션을 선호하며, 완성도보다 완료를 먼저 챙기고 그 위에 뛰어남을 쌓아가는 방식으로 성과를 만들어 냅니다. 호기심 하나로 시작해 결국 해내는 사람입니다.
이 저자의 글 모두 보기 →DevOps 도입이 필요하신가요?
인포그랩 전문가가 맞춤 을 도와드립니다.
관련 글

GitLab Pipeline Execution Policy로 DevOps 보안 자동화하기
GitLab의 Pipeline Execution Policy 기능을 사용하면, 모든 변경 사항이 컴플라이언스 요구 사항을 충족하도록 손쉽게 강제하고, 그 결과를 확인할 수 있습니다. 이 글은 Pipeline Execution Policy의 개념, 구성 방법, 정책 적용 확인 방법을 실습 예제와 함께 다뤘습니다.
2025년 5월 7일

GitLab Release 자동화 완벽 가이드(feat. CI/CD)
GitLab의 릴리즈 관리 기능을 활용하면 배포와 릴리즈 노트 생성을 자동화할 수 있습니다. 이는 소프트웨어 변경 사항을 효과적으로 전달하고, 배포 안정성과 효율성을 높이는 데 도움이 됩니다. 이 글은 GitLab의 릴리즈 관리 기능과 release-cli, changelog API를 활용한 릴리즈 자동화 방법을 다뤘습니다.
2025년 2월 19일

Pulumi로 GitLab 리소스 효과적으로 관리하기
Pulumi는 IaC 도구로, 인프라를 편리하게 구성하고 관리하는 데 도움이 됩니다. 특히 이는 CI/CD를 작동시킬 때 필요한 사전 작업을 편리하게 수행하도록 지원하는데요. 이 글은 Pulumi를 사용해 GitLab 리소스를 생성하는 방법을 알아보고요. GitLab에서 Pulumi로 IaC 자동화를 진행하는 방법도 살펴봤습니다.
2024년 4월 17일