선택적 동기화
GitLab v19.5Offering: GitLab Self-Managed
요약
Geo는 선택적 동기화를 지원하며, 관리자는 이 기능으로 보조 사이트가 동기화할 프로젝트를 선택할 수 있습니다. Geo의 동기화 로직은 문서에 설명되어 있습니다. 선택적 동기화의 특성은 다음과 같습니다. 기본적으로 선택적 동기화는 비활성화되어 있습니다.
Geo는 선택적 동기화를 지원하며, 관리자는 이 기능으로 보조 사이트가 동기화할 프로젝트를 선택할 수 있습니다. 프로젝트의 하위 집합은 그룹 또는 스토리지 샤드 기준으로 선택할 수 있습니다. 전자는 일부 사용자에게 속한 데이터만 복제하여 전송 비용과 스토리지 비용을 줄이는 데 적합하고, 후자는 대규모 GitLab 인스턴스에 Geo를 점진적으로 롤아웃하는 데 더 적합합니다.
Geo의 동기화 로직은 문서에 설명되어 있습니다. 솔루션과 문서는 모두 수시로 변경될 수 있습니다. 개인 정보 보호 및 사이버 보안 법률과 적용 대상 무역 통제 법률에 따른 법적 의무는 지속적으로 직접 판단해야 합니다.
선택적 동기화의 특성은 다음과 같습니다.
- 보조 사이트의 권한을 제한하지 않습니다.
- 선택적 동기화에 포함되지 않은 프로젝트 리포지터리를 사용자가 조회하고, 상호 작용하고, 클론하고, 푸시하는 것을 막지 않습니다.
- 자세한 내용은 보조 사이트용 Geo 프록시를 참고합니다.
- 보조 사이트에서 프로젝트 메타데이터를 숨기지 않습니다.
- Geo는 PostgreSQL 복제에 의존하므로 모든 프로젝트 메타데이터는 보조 사이트에 복제되지만, 선택되지 않은 리포지터리는 보조 사이트에 존재하지 않습니다.
- Geo 이벤트 로그에 생성되는 이벤트 수를 줄이지 않습니다.
- 기본 사이트는 보조 사이트가 하나라도 존재하는 한 이벤트를 생성합니다. 선택적 동기화 제한은 기본 사이트가 아니라 보조 사이트에서 구현됩니다.
- OpenBao 데이터에는 적용되지 않습니다.
- OpenBao는 데이터를 PostgreSQL에 저장하며, 이 데이터는 그룹이나 프로젝트별로 필터링할 수 없습니다. 따라서 시크릿, 정책, 인증 구성은 선택적 동기화 설정과 관계없이 보조 사이트에 전체가 복제됩니다. 자세한 내용은 Geo에서의 OpenBao 동작을 참고합니다.
선택적 동기화 활성화#
기본적으로 선택적 동기화는 비활성화되어 있습니다. 활성화하려면 다음 단계를 수행합니다.
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Geo > Sites를 선택합니다.
- 편집할 보조 사이트 옆의 연필 아이콘을 선택합니다.
- Selective synchronization 드롭다운 목록에서 Projects in certain groups 또는 Projects in certain storage shards를 선택합니다.
- 선택한 항목에 따라 Groups to synchronize 또는 Shards to synchronize를 구성합니다.
- Save changes를 선택합니다.
선택적 동기화가 활성화된 보조 사이트 승격#
선택적 동기화가 활성화된 보조 사이트를 기본 사이트로 승격하면 해당 보조 사이트에 복제되지 않은 모든 데이터가 영구적으로 손실됩니다.
보조 사이트에 선택적 동기화가 구성되어 있으면 데이터의 일부만 복제됩니다.
- groups 기준으로 동기화하는 경우: 선택한 그룹의 프로젝트만 복제됩니다.
- storage shards 기준으로 동기화하는 경우: 선택한 샤드의 프로젝트만 복제됩니다.
- organizations 기준으로 동기화하는 경우: 선택한 조직의 프로젝트만 복제됩니다.
나머지 데이터는 원래 기본 사이트에만 남아 있습니다. 선택적 동기화가 적용된 보조 사이트를 새 기본 사이트로 승격하면 다음과 같은 결과가 발생합니다.
- 복제 대상으로 선택되지 않은 데이터는 영구적으로 접근할 수 없게 됩니다.
- 사용자는 선택적 동기화에서 제외된 프로젝트, 리포지터리 및 관련 데이터에 접근할 수 없게 됩니다.
- 원래 기본 사이트에 여전히 접근할 수 있는 경우가 아니라면 이 데이터는 복구할 수 없습니다.
승격 과정에는 이 상황을 방지하는 유효성 검사나 경고가 없습니다.
권장 사항#
선택적 동기화가 적용된 보조 사이트를 승격하기 전에 다음 절차를 수행합니다.
- 승격할 보조 사이트에서 선택적 동기화를 비활성화합니다.
- 전체 복제가 완료될 때까지 기다립니다. Geo 대시보드를 모니터링하여 모든 데이터 유형이 100% 동기화되었는지 확인합니다.
- 승격을 진행하기 전에 복제가 완료되었는지 검증합니다.
- 그 다음에 계획된 장애 조치 절차를 진행합니다.
긴급 상황 등으로 선택적 동기화가 활성화된 보조 사이트를 승격해야 하는 경우에는 다음을 수행합니다.
- 손실될 데이터를 문서화합니다.
- 이해관계자가 데이터 손실을 이해하고 수용하도록 합니다.
- 백업 또는 원래 기본 사이트를 다시 사용할 수 있게 될 때 누락된 데이터를 복원할 계획을 수립합니다.
복제되지 않은 리포지터리의 Git 작업#
HTTP(S) 및 SSH를 통한 Git clone, pull, push 작업은 기본 사이트에는 존재하지만 보조 사이트에는 없는 리포지터리에 대해서도 지원됩니다. 이 상황은 다음과 같은 경우에 발생할 수 있습니다.
- 선택적 동기화가 해당 리포지터리에 연결된 프로젝트를 포함하지 않는 경우.
- 리포지터리가 복제 중이지만 아직 완료되지 않은 경우.