正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

AWS Route53によるロケーション対応GitリモートURL

  • プラン: Premium、Ultimate
  • 提供形態: GitLab Self-Managed

GitLab Geoは、Web UIとAPIトラフィックを含むロケーション対応DNSをサポートしています。この設定は、このドキュメントで説明されているロケーション対応GitリモートURLよりも推奨されます。

GitLabユーザーに、最も近い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ホストゾーンでは、トラフィックポリシーを使用して、さまざまなルーティング設定を設定できます。

  1. Route53ダッシュボードに移動し、Traffic policies(トラフィックポリシー)を選択します。

    Route53ダッシュボードのトラフィックポリシーセクション

  2. Create traffic policy(トラフィックポリシーを作成)を選択します。

    トラフィックポリシーに名前を付ける

  3. Policy Name(ポリシー名)フィールドにSingle Git Hostを入力し、次へを選択します。

    トラフィックポリシーのDNS種類を選択

  4. DNS type(DNS種類)をA: IP Address in IPv4 formatのままにします。

  5. Connect to(接続先)を選択し、Geolocation rule(地理ロケーションルール)を選択します。

    地理ロケーションルールを追加

  6. 最初のロケーションでは、Defaultのままにします。

  7. Connect to(接続先)を選択し、New endpoint(新しいエンドポイント)を選択します。

  8. 種類 valueを選択し、<your **primary** IP address>を入力します。

  9. 2番目のロケーションで、Europeを選択します。

  10. Connect to(接続先)を選択し、New endpoint(新しいエンドポイント)を選択します。

  11. 種類 valueを選択し、<your **secondary** IP address>を入力します。

    地理ロケーションルールへのロケーションとエンドポイントの設定

  12. Create traffic policy(トラフィックポリシーを作成)を選択します。

    トラフィックポリシーでのポリシーレコードの設定

  13. Policy record DNS name(ポリシーレコードDNS名)にgitを入力します。

  14. Create policy records(ポリシーレコードを作成)を選択します。

    ポリシーレコードを持つトラフィックポリシーが正常に作成されました

たとえば、git.example.comなどのシングルホストを正常に設定しました。これは、地理ロケーションに基づいてGeoサイトにトラフィックを分配します。

特別な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。これを行うには、Webノードのgitlab.rbgitlab_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にリクエストをプロキシします。