InfoGrab DocsInfoGrab Docs

AWS Route53을 사용한 위치 인식 Git 원격 URL

요약

GitLab Geo는 웹 UI와 API 트래픽을 포함한 위치 인식 DNS를 지원합니다. GitLab 사용자에게 가장 가까운 Geo 사이트를 자동으로 사용하는 단일 원격 URL을 제공할 수 있습니다. 이는 Git 푸시 요청이 보조 사이트에서 기본 사이트로 자동으로 리디렉션(HTTP)되거나 프록시(SSH)될 수 있기 때문입니다.

Note

GitLab Geo는 웹 UI와 API 트래픽을 포함한 위치 인식 DNS를 지원합니다. 이 문서에서 설명하는 위치 인식 Git 원격 URL보다 해당 구성을 권장합니다.

GitLab 사용자에게 가장 가까운 Geo 사이트를 자동으로 사용하는 단일 원격 URL을 제공할 수 있습니다. 따라서 사용자는 이동하더라도 더 가까운 Geo 사이트를 활용하기 위해 Git 구성을 갱신할 필요가 없습니다.

이는 Git 푸시 요청이 보조 사이트에서 기본 사이트로 자동으로 리디렉션(HTTP)되거나 프록시(SSH)될 수 있기 때문입니다.

이 안내는 AWS Route53을 사용하지만, Cloudflare 같은 다른 서비스도 사용할 수 있습니다.

사전 요구 사항#

이 예시에서는 다음이 이미 설정되어 있습니다.

  • Geo 기본 사이트로서의 primary.example.com.
  • Geo 보조 사이트로서의 secondary.example.com.

요청을 자동으로 전달하는 git.example.com 하위 도메인을 만듭니다.

  • 유럽에서 오는 요청은 보조 사이트로 전달합니다.
  • 그 밖의 모든 위치에서 오는 요청은 기본 사이트로 전달합니다.

어느 경우든 다음이 필요합니다.

  • 자체 주소로 접근할 수 있는 정상 동작 중인 GitLab 기본 사이트.
  • 정상 동작 중인 GitLab 보조 사이트.
  • 도메인을 관리하는 Route53 호스팅 영역.

Geo 기본 사이트와 보조 사이트를 아직 설정하지 않았다면 Geo 설정 안내를 참고합니다.

트래픽 정책 생성#

Route53 호스팅 영역에서는 트래픽 정책으로 다양한 라우팅 구성을 설정할 수 있습니다.

  1. Route53 대시보드로 이동해 Traffic policies를 선택합니다.

    Route53 대시보드의 Traffic policies 섹션

  2. Create traffic policy를 선택합니다.

    트래픽 정책 이름 지정

  3. Policy Name 필드에 Single Git Host를 입력하고 Next를 선택합니다.

    트래픽 정책의 DNS 유형 선택

  4. DNS type은 A: IP Address in IPv4 format으로 둡니다.

  5. Connect to를 선택하고 Geolocation rule을 선택합니다.

    지오로케이션 규칙 추가

  6. 첫 번째 Location은 Default로 둡니다.

  7. Connect to를 선택하고 New endpoint를 선택합니다.

  8. Type으로 value를 선택하고 <your primary IP address>를 입력합니다.

  9. 두 번째 Location으로 Europe을 선택합니다.

  10. Connect to를 선택하고 New endpoint를 선택합니다.

  11. Type으로 value를 선택하고 <your secondary IP address>를 입력합니다.

    지오로케이션 규칙에 위치와 엔드포인트 설정

  12. Create traffic policy를 선택합니다.

    트래픽 정책에서 정책 레코드 설정

  13. Policy record DNS name에 git를 입력합니다.

  14. Create policy records를 선택합니다.

    정책 레코드와 함께 생성된 트래픽 정책

이렇게 하면 지리적 위치에 따라 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

리포지터리의 SSH 및 HTTPS URL

다음 항목을 사용자 지정할 수 있습니다.

  • 위치 인식 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으로 요청을 프록시합니다.

AWS Route53을 사용한 위치 인식 Git 원격 URL

GitLab v19.4
Tier: Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기

요약

GitLab Geo는 웹 UI와 API 트래픽을 포함한 위치 인식 DNS를 지원합니다. GitLab 사용자에게 가장 가까운 Geo 사이트를 자동으로 사용하는 단일 원격 URL을 제공할 수 있습니다. 이는 Git 푸시 요청이 보조 사이트에서 기본 사이트로 자동으로 리디렉션(HTTP)되거나 프록시(SSH)될 수 있기 때문입니다.

Note

GitLab Geo는 웹 UI와 API 트래픽을 포함한 위치 인식 DNS를 지원합니다. 이 문서에서 설명하는 위치 인식 Git 원격 URL보다 해당 구성을 권장합니다.

GitLab 사용자에게 가장 가까운 Geo 사이트를 자동으로 사용하는 단일 원격 URL을 제공할 수 있습니다. 따라서 사용자는 이동하더라도 더 가까운 Geo 사이트를 활용하기 위해 Git 구성을 갱신할 필요가 없습니다.

이는 Git 푸시 요청이 보조 사이트에서 기본 사이트로 자동으로 리디렉션(HTTP)되거나 프록시(SSH)될 수 있기 때문입니다.

이 안내는 AWS Route53을 사용하지만, Cloudflare 같은 다른 서비스도 사용할 수 있습니다.

사전 요구 사항#

이 예시에서는 다음이 이미 설정되어 있습니다.

  • Geo 기본 사이트로서의 primary.example.com.
  • Geo 보조 사이트로서의 secondary.example.com.

요청을 자동으로 전달하는 git.example.com 하위 도메인을 만듭니다.

  • 유럽에서 오는 요청은 보조 사이트로 전달합니다.
  • 그 밖의 모든 위치에서 오는 요청은 기본 사이트로 전달합니다.

어느 경우든 다음이 필요합니다.

  • 자체 주소로 접근할 수 있는 정상 동작 중인 GitLab 기본 사이트.
  • 정상 동작 중인 GitLab 보조 사이트.
  • 도메인을 관리하는 Route53 호스팅 영역.

Geo 기본 사이트와 보조 사이트를 아직 설정하지 않았다면 Geo 설정 안내를 참고합니다.

트래픽 정책 생성#

Route53 호스팅 영역에서는 트래픽 정책으로 다양한 라우팅 구성을 설정할 수 있습니다.

  1. Route53 대시보드로 이동해 Traffic policies를 선택합니다.

    Route53 대시보드의 Traffic policies 섹션

  2. Create traffic policy를 선택합니다.

    트래픽 정책 이름 지정

  3. Policy Name 필드에 Single Git Host를 입력하고 Next를 선택합니다.

    트래픽 정책의 DNS 유형 선택

  4. DNS type은 A: IP Address in IPv4 format으로 둡니다.

  5. Connect to를 선택하고 Geolocation rule을 선택합니다.

    지오로케이션 규칙 추가

  6. 첫 번째 Location은 Default로 둡니다.

  7. Connect to를 선택하고 New endpoint를 선택합니다.

  8. Type으로 value를 선택하고 <your primary IP address>를 입력합니다.

  9. 두 번째 Location으로 Europe을 선택합니다.

  10. Connect to를 선택하고 New endpoint를 선택합니다.

  11. Type으로 value를 선택하고 <your secondary IP address>를 입력합니다.

    지오로케이션 규칙에 위치와 엔드포인트 설정

  12. Create traffic policy를 선택합니다.

    트래픽 정책에서 정책 레코드 설정

  13. Policy record DNS name에 git를 입력합니다.

  14. Create policy records를 선택합니다.

    정책 레코드와 함께 생성된 트래픽 정책

이렇게 하면 지리적 위치에 따라 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

리포지터리의 SSH 및 HTTPS URL

다음 항목을 사용자 지정할 수 있습니다.

  • 위치 인식 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으로 요청을 프록시합니다.