AlloyDB の高可用性の概要

AlloyDB for PostgreSQL の高可用性(HA)により、ゾーンまたはインスタンスの障害が発生しても、データベースの運用を継続し、クライアント アプリケーションからデータにアクセスできます。ゾーン インスタンスでは、停止中にダウンタイムが長くなる可能性がありますが、HA インスタンスでは、ゾーン間でアクティブ ノードとスタンバイ ノードが自動的にフェイルオーバーされます。HA 用にインスタンスを構成するには、クラスタとインスタンスの設定を表示するをご覧ください。

プライマリ インスタンスとセカンダリ インスタンス

高可用性で構成された AlloyDB プライマリ インスタンスには、異なるゾーンに配置されたアクティブ ノードとスタンバイ ノードが含まれます。ストレージの場合、AlloyDB はリージョン ログ永続化レイヤを使用してデータベースの write-ahead log(WAL)を保存し、AlloyDB Regional Storage サービスを使用してデータブロックを保存します。インスタンスの IP アドレスは、ロードバランサを使用してトラフィックをアクティブ ノードにルーティングします。

書き込みを処理するとき、AlloyDB データベースはまずアクティブ ノードのリージョン ログ永続化レイヤに WAL を書き込み、次に AlloyDB のリージョン ログ処理サーバーにログを非同期的に転送します。これにより、ログがデータブロックにマテリアライズされ、長期保存されます。その後、AlloyDB は正常に処理されたログをクリーンアップします。

次の図は、高可用性アーキテクチャを示しています。

高可用性アーキテクチャ

図 1. 高可用性アーキテクチャ。

フェイルオーバー

アクティブ ノードが使用できなくなった場合、AlloyDB はプライマリ インスタンスをスタンバイ ノードに自動的にフェイルオーバーし、新しいアクティブ ノードにします。ロードバランサは新しいアクティブ ノードを認識し、トラフィックのルーティングを開始します。フェイルオーバー後、元のノードが再びオンラインになっても、新しいアクティブ ノードはアクティブのままになります。リージョン ログ永続化レイヤへの同期 WAL 書き込みにより、フェイルオーバー中にデータが失われることはありません。

次の図は、フェイルオーバー後のトラフィック フローを示しています。

フェイルオーバー後のトラフィック フロー

図 2. フェイルオーバー後のトラフィック フロー。

フェイルオーバーは、次の一連のイベントで発生します。

  1. アクティブ ノードまたはゾーンで障害が発生します。AlloyDB のヘルス モニタリング システムは、アクティブ ノードが正常かどうかを定期的にチェックします。ヘルス モニタリング システムが複数のチェックに失敗すると、フェイルオーバーが開始されます。この検出には最大 30 秒かかることがあります。
  2. データベースがスタンバイ ノードで起動し、接続の受け入れを開始します。通常、この処理は 30 秒ほどで完了します。
  3. スタンバイ ノードがプライマリに昇格します。インスタンスの静的 IP アドレスを使用して、新しいプライマリ ノードがデータの提供を開始し、再接続後にクライアント クエリが成功します。
  4. AlloyDB は、以前にアクティブだったゾーンにスタンバイ ノードを再作成します。このスタンバイ ノードは、将来のフェイルオーバーに備えることができます。

要件

AlloyDB がフェイルオーバーできるようにするには、次の要件を満たす構成が必要です。

  • プライマリ インスタンスが通常の動作状態である(停止していない、メンテナンス中でない)こと。
  • スタンバイ ゾーンとスタンバイ ノードがどちらも正常であること。

ホット スタンバイ アーキテクチャ

PostgreSQL 18 を使用する AlloyDB インスタンスは、ホット スタンバイ機能を使用してフェイルオーバーを改善します。

ホット スタンバイ機能を使用すると、AlloyDB はスタンバイ ノードをレプリカとして実行します。フェイルオーバー中に、このレプリカは読み取り / 書き込みモードに迅速に移行できるため、ダウンタイムが短縮されます。また、レプリケーションによりウォーム キャッシュが有効になり、フェイルオーバー後のクエリ パフォーマンスの一貫性が確保されます。

次の図は、ホット スタンバイを含む高可用性アーキテクチャを示しています。 ホット スタンバイ

図 3. ホット スタンバイ。

読み取りプール

ノードが 2 つ以上の読み取りプール インスタンスは高可用性です。ノードはゾーン間で均等に分散され、障害イベントに対する復元力が確保されます。ノード障害やゾーン障害などの障害イベントが発生した場合、リージョン ロードバランサは残りの正常なノードにトラフィックをルーティングし、クライアントのダウンタイムを回避します。

読み取りプールは、プライマリ インスタンスのフェイルオーバー中もオンラインのままです。プライマリ インスタンスからの WAL レプリケーションは、フェイルオーバー中に一時的に停止し、プライマリ インスタンスが復元されると自動的に再開されます。

次のステップ