본문으로 건너뛰기

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

Dexter
· 약 5분

GitLab 에는 중요한 비즈니스 자산 데이터가 저장되어 있습니다. 제일 중요한 소스 코드를 포함해서 말이죠.

GitLab DR (Disaster Recovery). 즉 재해 복구는 자연재해와 사람에 의한 재난! 에 의해 GitLab 을 사용할 수 없는 경우에 복구 할 수 있는 프로세스에 따라 연속성을 갖고 GitLab을 사용 할 수 있도록 해주는 재해 복구 기능을 가지고 있습니다.

GitLab 엔터프라이즈 버전인 Premium 이상에서 사용 가능합니다. 보통의 엔터프라이즈 회사들은 이 기능 때문에 라이센스를 구입 하게 됩니다. 자체적으로 DR을 구축하는 비용 vs GitLab DR(Geo) 비용 따져보면 싸기 때문이겠지요?

GitLab 은 Geo 노드를 별도로 만들어서 재해 상황에 조치 할 수 있습니다. 재해 복구 솔루션을 설정하려면 투자가 필요합니다. 아직 GitLab 은 모든 것들을 복제하지 않습니다. 시스템 관리자는 Geo로 복제가 자동으로 되는 부분과 아닌 부분이어서 백업이 필요한 내용을 알고 있어야 합니다. 그럼 지금 부터 GitLab DR에 대해 알아볼까요?

GitLab DR(Geo) 는 어떻게 작동 되는 하는 건가요?

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

좀 더 자세히 알아 보기 위해 아키텍처도 살펴 볼까요?

photo | 인포그랩 GitLab | 인포그랩 GitLab

아키텍처를 통해 드러나는 특징을 공식 문서에 있는 내용에서 요약했습니다.

  • DB에 대해 쓰기는 메인(Primary) 노드에서만 수행하고, 보조(Secondary) 노드에서는 스트리밍 리플리케이션을 통해 업데이트합니다.
  • LDAP를 쓰고 있다면, 별도로 구성되어야 합니다. GitLab에서는 복제 안 합니다.
  • 보조 노드는 동기화를 JWT 기반 인증을 통해 수행됩니다. 즉 레파지토리 데이터(git 브랜치, 위키) 는 git over https를 통해 업데이트되고, 첨부파일, LFS 데이터, CI 아티펙트(저장된 결과물)들은 비공개 API 엔드포인트로 복제됩니다.

GitLab DR 구성을 위해서는 시스템 요구사항, 방화벽 규칙, LDAP 설정과 로그를 설정하는 방법을 사전에 확인해야 합니다. 복수의 보조 노드들을 구성하거나 DR 구성으로 생기는 문제인 복제 중단, 다시 시작하는 방법 등을 알아야 합니다.

그래야지 재해 상황에서 어떤 시나리오를 통해 복구를 진행할 지를 알게 되기 때문이죠.

인포그랩은GitLab의 한국 최고의 파트너이며 Agile 과 DevOps의 기술 서비스 회사입니다. 경험 있는 전문 컨설턴트, 엔지니어들이 고객의 다음 니즈를 해결해 드립니다.

GitLab 의 DR 구성에 대한 기술지원이 가능합니다. 사전 시뮬레이션과 데모를 통해 고객사 인프라 구성에 맞도록 충분히 검토된 결과를 제공합니다.

제품에 집중하세요. 나머지는 저희가 돕겠습니다.