위치 인식 Git 원격 URL와 AWS Route53
이 구성은 이 문서에 설명된 위치 인식 Git 원격 URL보다 권장됩니다.
사용자에게 가장 가까운 Geo 사이트를 자동으로 사용하는 단일 원격 URL를 제공할 수 있습니다.
이는 사용자가 이동할 때 보다 가까운 Geo 사이트를 활용하기 위해 Git 구성을 업데이트할 필요가 없음을 의미합니다.
이는 Git 푸시 요청이 보조 사이트에서 기본 사이트로 자동으로 리디렉션(HTTP)되거나 프록시(SSH) 될 수 있기 때문에 가능합니다.
이 지침에서는 AWS Route53를 사용하지만
Cloudflare와 같은 다른 서비스도 사용할 수 있습니다.
전제 조건
이 예제에서는 이미 다음을 설정했습니다:
-
primary.example.com
은 Geo 기본 사이트입니다. -
secondary.example.com
은 Geo 보조 사이트입니다.
요청을 자동으로 지시하는 git.example.com
하위 도메인을 만듭니다:
- 유럽에서 보조 사이트로.
- 다른 모든 지역에서 기본 사이트로.
어쨌든 다음이 필요합니다:
- 자신의 주소에서 액세스할 수 있는 작동하는 GitLab 기본 사이트.
- 작동하는 GitLab 보조 사이트.
- 도메인을 관리하는 Route53 호스티드 존.
Geo 기본 사이트 및 보조 사이트를 아직 설정하지 않은 경우,
Geo 설정 지침을 참조하세요.
트래픽 정책 생성
Route53 호스티드 존에서 트래픽 정책을 사용하여 다양한 라우팅 구성을 설정할 수 있습니다.
-
Route53 대시보드로 이동하여
트래픽 정책을 선택합니다. -
트래픽 정책 생성을 선택합니다.
-
정책 이름 필드에
Single Git Host
를 입력하고 다음을 선택합니다. -
DNS 유형을
A: IP 주소 IPv4 형식
으로 두고. -
연결 유형을 선택하고 지리적 위치 규칙을 선택합니다.
- 첫 번째 위치를
Default
로 두고. - 연결 유형을 선택하고 새 엔드포인트를 선택합니다.
-
유형을
value
로 선택하고<your **primary** IP address>
로 입력합니다. - 두 번째 위치로
Europe
를 선택합니다. - 연결 유형을 선택하고 새 엔드포인트를 선택합니다.
-
유형을
value
로 선택하고<your **secondary** IP address>
로 입력합니다. -
트래픽 정책 생성을 선택합니다.
-
정책 레코드 DNS 이름에
git
을 입력합니다. -
정책 레코드 생성을 선택합니다.
이제 위치에 따라 트래픽을 Geo 사이트로 분배하는 단일 호스트, 예를 들어 git.example.com
이 성공적으로 설정되었습니다!
특수 Git URL를 사용하도록 Git 클론 URL 구성
사용자가 처음으로 리포지토리를 클론할 때, 일반적으로 프로젝트 페이지에서 Git 원격 URL을 복사합니다. 기본적으로, 이러한 SSH 및 HTTP URL은 현재 호스트의 외부 URL을 기준으로 합니다. 예를 들어:
git@secondary.example.com:group1/project1.git
https://secondary.example.com/group1/project1.git
다음 내용을 사용자 정의할 수 있습니다:
- 위치 인식
git.example.com
을 사용하도록 SSH 원격 URL을 변경합니다. 이를 위해서는 웹 노드의gitlab.rb
에서gitlab_rails['gitlab_ssh_host']
를 설정하여 SSH 원격 URL 호스트를 변경합니다. - HTTP 원격 URL은 HTTP(S)에서 Git 클론 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
으로 프록시됩니다.
-
- HTTP: