Skip to main content

Enterprise Server 3.15 は、現在リリース候補として使用できます。

クラスタリングと High Availability (HA) の違い

GitHub Enterprise Server インスタンスを構成する仮想マシン (VM) のデプロイ トポロジの違いについて説明します。

この機能を使用できるユーザーについて

GitHub はクラスタリングの適格性を決定し、インスタンスのライセンスの構成を有効にする必要があります。 クラスタリングには、慎重な計画と追加の管理オーバーヘッドが必要です。 詳しくは、「クラスタリングについて」を参照してください。

GitHub Enterprise Server のデプロイ トポロジについて

GitHub Enterprise Server インスタンスの仮想マシンは、環境とユーザーのニーズに応じて異なるトポロジにデプロイできます。

  • ディザスター リカバリーと補足バックアップの計画をサポートしたり、地理的に分散したユーザーのネットワークと書き込みパフォーマンスを向上させたりするには、高可用性を構成できます。 High Availability 設定では、1 つのノードがプライマリとして機能し、他のノードがレプリカとして機能します。 詳しくは、「High Availability設定について」を参照してください。

  • 数万人の開発者が使用する環境に水平スケーリングを提供するには、クラスター トポロジを使用できます。 クラスタリングは、1 つのプライマリ ノードでリソースの枯渇が日常的に発生する状況に対処します。 この構成には、慎重な計画と追加の管理オーバーヘッドが必要です。 GitHub はお客様と協力して、クラスタリングの適格性を判断します。 詳しくは、「クラスタリングについて」を参照してください。

フェイルオーバーのシナリオ

High Availability (HA) とクラスタリングはどちらも、障害の原因となる単一ノードを排除することによって冗長性を提供します。 可用性は次のシナリオで提供できます:

  • ソフトウェアのクラッシュ: オペレーティング システムの障害や、回復不能なアプリケーションによる。
  • ハードウェアの障害: ストレージ ハードウェア、CPU、RAM、ネットワーク インターフェイスなどを含む。
  • 仮想化ホスト システムの障害: AWSAzure、または GCP の計画外とスケジュールされたメンテナンス イベントを含む。
  • 論理的あるいは物理的に切断されたネットワーク: フェールオーバー アプライアンスがその障害によって影響されない別のネットワーク上にある場合。

スケーラビリティ

クラスタリングは、負荷を複数のノードに分配することによってスケーラビリティを向上させます。 この水平スケーリングは、数万の開発者を持つような組織に適しているかもしれません。HAでは、アプライアンスのスケールはプライマリノードにのみ依存し、負荷がレプリカサーバーに分配されることはありません。

フェイルオーバーの方法と構成における相違点

機能フェイルオーバーの構成フェールオーバー方式
高可用性構成プライマリアプライアンスもしくはロードバランサを指す短いTTLのDNSレコード。DNSフェイルオーバー及びロードバランサ構成のどちらでも、レプリカアプライアンスを手作業で昇格させなければならない。
クラスタリングDNSレコードはロードバランサを指さなければならない。ロードバランサの背後にあるノードが落ちた場合、トラフィックは動作している他のノードに自動的に送られる。

バックアップとディザスター リカバリー

HA もクラスタリングも、定期的なバックアップに代わるものと考えるべきではありません。 詳しくは、「インスタンスでのバックアップの構成」を参照してください。

監視

可用性の機能、特にクラスタリングのように自動フェイルオーバーを持つものは、通常は何かが失敗してもサービスが破綻しないので、障害を覆い隠すことができます。 HA を使用しているかクラスタリングを使用しているかに関係なく、障害が起きたことに気づけるよう、各インスタンスの健全性を監視することが重要です。 監視について詳しくは、「アラートの推奨閾値」と「クラスターの正常性の監視」をご覧ください。