Skip to main content

クラスタリングと 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 を使用しているかクラスタリングを使用しているかに関係なく、障害が起きたことに気づけるよう、各インスタンスの健全性を監視することが重要です。 監視について詳しくは、「アラートの推奨閾値」と「クラスターの正常性の監視」をご覧ください。