Skip to main content

Geo-replicationについて

GitHub Enterprise Server 上の Geo-replication は、地理的に分散したデータセンターからの要求を満たすために、複数のアクティブなレプリカを使用します。

アクティブなレプリカが複数あれば、最も近いレプリカへの距離を短くできます。 たとえばサンフランシスコ、ニューヨーク、ロンドンにオフィスを持つ組織は、プライマリのアプライアンスをニューヨークの近くのデータセンター内で動作させ、2つのレプリカをサンフランシスコとロンドンの近くのデータセンターで動作させることができます。 地理的な場所を認識するDNSを利用すれば、ユーザーは利用可能な最も近いサーバへ振り分けられ、リポジトリのデータに高速にアクセスできます。 ニューヨークの近くにあるアプライアンスをプライマリにすれば、ロンドンへのレイテンシが大きいサンフランシスコ近くのアプライアンスをプライマリにする場合に比べ、ホスト間のレイテンシの削減に役立ちます。

アクティブなレプリカは、自身では処理できないリクエストをプライマリインスタンスに中継します。 レプリカは、すべてのSSL接続をターミネートする接続点として機能します。 ホスト間のトラフィックは、暗号化されたVPN接続を通じて送信されます。これは、Geo-replicationなしの2ノードのHigh Availability構成に似ています。

Git リクエストと、LFS やファイルアップロードなどの特定のファイルサーバーリクエストは、プライマリからデータをロードせずにレプリカから直接処理できます。 Webリクエストは常にプライマリにルーティングされますが、レプリカがユーザに近ければ、近くでSSLのターミネーションが行われることからリクエストは高速に処理されます。

Geo-replicationがスムーズに動作するためには、Amazon's Route 53 サービスのようなGeo DNSが必要です。 インスタンスのホスト名は、ユーザの場所に最も近いレプリカに解決されるべきです。

制限事項

レプリカへの書き込みリクエストには、データをプライマリとすべてのレプリカへ送信することが必要です。 This means that the performance of all writes is limited by the slowest replica, although new geo-replicas can seed the majority of their data from existing co-located geo-replicas, rather than from the primary. To reduce the latency and bandwidth caused by distributed teams and large CI farms without impacting write throughput, you can configure repository caching instead. For more information, see "About repository caching."

Geo-replication は、GitHub Enterprise Server インスタンスに容量を追加したり、不十分な CPU やメモリリソースに関連するパフォーマンスの問題を解決したりしません。 プライマリのアプライアンスがオフラインである場合、アクティブなレプリカはいかなる読み込みや書き込みのリクエストも処理できません。

ノート: GitHub Enterprise Serverでは、最大で8つのHigh Availabilityレプリカ(パッシブ及びアクティブ/Goのいずれでも)が利用できます。

Geo-replication設定のモニタリング

GitHub Enterprise Serverの可用性は、https://HOSTNAME/statusというURLに対して返されるステータスコードをチェックすればモニタリングできます。 ユーザトラフィックを処理できるアプライアンスは、ステータスコード200 (OK)を返します。 いくつかの理由で、アプライアンスが503 (Service Unavailable) を返すことがあります。

  • 2ノードの高可用性構成のレプリカなど、そのアプライアンスがパッシブなレプリカである場合。
  • アプライアンスがメンテナンスモードになっている場合。
  • アプライアンスがGeo-replication構成の一部で、ただしアクティブではないレプリカの場合。

以下からアクセスできるレプリケーションの概要ダッシュボードを使うこともできます。

https://HOSTNAME/setup/replication

参考リンク