AWS Route53을 사용한 위치 인식 Git 원격 URL
Tier: 프리미엄, 얼티메이트
Offering: Self-managed
사용자에게 지리적으로 가장 가까운 Geo 사이트를 자동으로 사용하는 단일 원격 URL을 제공할 수 있습니다. 이는 사용자가 이동하면서 더 가까운 Geo 사이트를 활용하기 위해 Git 구성을 업데이트할 필요가 없음을 의미합니다.
이것은 가능한 이유는 Git 푸시 요청이 보조 사이트에서 주 사이트로 자동으로 리디렉션될 수 있기 때문입니다(HTTP) 또는 (SSH) 사용하여 프록시될 수 있습니다.
이 지침은 AWS Route53를 사용하나 다른 서비스(예: Cloudflare)도 사용할 수 있습니다.
전제 조건
이 예에서 이미 설정된 것들은 다음과 같습니다:
-
primary.example.com
을 Geo 주 사이트로 설정함. -
secondary.example.com
을 Geo 보조 사이트로 설정함.
어떤 경우에도 다음이 필요합니다:
- 작동하는 GitLab 주 사이트가 해당하는 주소로 접근 가능함.
- 작동하는 GitLab 보조 사이트.
- 도메인을 관리하는 Route53 호스팅된 영역.
아직 Geo 주 사이트와 보조 사이트를 설정하지 않은 경우 Geo 설정 지침을 참조하세요.
트래픽 정책 생성
Route53 호스팅 영역에서 트래픽 정책을 사용하여 다양한 라우팅 구성을 설정할 수 있습니다
-
Route53 대시보드로 이동하고 트래픽 정책을 선택합니다.
-
DNS 유형을
A: IPv4 형식의 IP 주소
로 남겨둡니다. - 첫 번째 위치 는
기본값
으로 남겨둡니다. - 연결 위치 를 선택하고 새 엔드포인트 를 선택합니다.
-
유형을
값
으로 선택하고<기본 **주**의 IP 주소>
로 채웁니다. - 두 번째 위치 는
유럽
으로 선택합니다. - 연결 위치 를 선택하고 새 엔드포인트 를 선택합니다.
-
정책 레코드 DNS 이름에
git
를 입력하고 정책 레코드 생성을 선택합니다.
여기까지, 예를 들어 git.example.com
처럼 단일 호스트를 성공적으로 설정하여 위치 정보에 따라 귀하의 Geo 사이트로 트래픽을 분산했습니다!
Git 클론 URL 구성하기
사용자가 처음으로 리포지토리를 복제하면 일반적으로 프로젝트 페이지에서 Git 원격 URL을 복사합니다. 기본적으로 이러한 SSH 및 HTTP URL은 현재 호스트의 외부 URL을 기반으로 합니다.
예:
- git@secondary.example.com:group1/project1.git
- https://secondary.example.com/group1/project1.git
다음을 사용자 정의할 수 있습니다:
- SSH 원격 URL을 위치 인식 git.example.com
을 사용하도록 변경합니다. 이를 위해 웹 노드의 gitlab_rails['gitlab_ssh_host']
에 설정하여 SSH 원격 URL을 변경합니다.
- HTTP(S)를 위한 사용자 지정 Git 클론 URL에 표시된 대로 HTTP 원격 URL을 사용자 정의합니다.
예제 Git 요청 처리 동작
위의 구성 단계를 따른 후, Git 요청 처리는 이제 위치를 고려합니다. 요청:
- 유럽 외부: 모든 요청은 주 사이트로 전달됩니다.
- 유럽 내부: HTTP의 경우:
-
git clone http://git.example.com/foo/bar.git
은 보조 사이트로 전달됩니다. -
git push
는 초기에 보조로 전달되며, 자동으로primary.example.com
로 리디렉션됩니다. - SSH의 경우:
-
git clone git@git.example.com:foo/bar.git
은 보조로 전달됩니다. -
git push
는 초기에 보조로 전달되며, 자동으로 요청을primary.example.com
로 프록시합니다.
-
-