この記事では、Azure portal または Azure CLI を使用して、Azure Database for PostgreSQL フレキシブル サーバー インスタンスで高可用性 (HA) を有効または無効にする方法について説明します。 この情報は、同じゾーン内のインスタンスを使用しているか、ゾーン冗長デプロイ モデルを使用しているかに関係なく適用されます。
高可用性機能は、物理的に分離されたプライマリ レプリカとスタンバイ レプリカをデプロイします。 選択したデプロイ モデルに応じて、同じ可用性ゾーン内または異なるゾーンにレプリカをプロビジョニングできます。 詳細については、 高可用性の概念に関する記事を参照してください。 Azure Database for PostgreSQL フレキシブル サーバー インスタンスの作成中または作成後に高可用性を有効にすることができます。
重要
2024 年 4 月に、HA 対応サーバーを使用して v5 コンピューティング レベルの課金モデルを更新しました。 この変更は、プライマリ サーバーとスタンバイ サーバーの両方を占めることで、料金を正しく反映します。 この変更前は、プライマリ サーバーに対してのみ誤って課金されていました。 HA 対応サーバーで v5 レベルを使用すると、課金数量に 2 が乗算されます。 この更新プログラムは、v4 および v3 レベルには影響しません。
既存のサーバーの高可用性を有効にする
Azure portal で、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
左側のメニューの [設定] セクションで、[ 高可用性] を選択します。
ゾーンの回復性オプションは、サーバーが可用性ゾーン間で保護されているかどうかを制御します。 次の 2 つの選択肢があります。
- 有効 – このオプションを選択すると、Azure はプライマリとは異なる可用性ゾーンにスタンバイ サーバーの作成を試みます。 このオプションを使用すると、ゾーン レベルの障害に対する最適な保護が提供されます。
- 無効 – 高可用性が構成されていません。
ゾーンの回復性が有効になっていても、リージョンにゾーン冗長セットアップの容量がない場合は、[有効] オプションの下に追加のチェック ボックスが表示されます。 これを選択すると、プライマリと同じゾーンにスタンバイを作成できます。 ゾーン容量が使用可能になると、Azure から通知が送信されます。 その時点で、PITR または読み取りレプリカを使用して、最大の回復性のためにワークロードをゾーン冗長 HA 構成に移行できます。 詳細については、「 制限事項と考慮事項」 セクションを参照してください。
ゾーンの回復性が有効になっていない場合は、[ 有効 ] オプションを選択します。
[有効] オプションを選択すると、可用性ゾーンをサポートするリージョンに対してゾーン冗長オプションが既定で適用されます。 この構成は、ゾーン障害から保護します。
リージョンにゾーン容量がない場合は、優先リージョンで高可用性 (HA) が有効になっていることを確認するために、有効なオプションの下にあるチェックボックスをオンにして、リージョンの Same-Zone モードで HA を作成できるようにします。 ゾーン容量が使用可能になると、ワークロードは自動的に Zone-Redundant HA に移行されます。
設定の構成が完了したら、[ 保存] を選択して変更を適用します。
ダイアログには、スタンバイ サーバーの展開に関連するコストの増加が表示されます。 続行する場合は、[高可用性を有効にする] を選択します。
デプロイが開始されます。 完了すると、高可用性が正常に有効にされたことを示す通知が表示されます。
高可用性を無効にする
Azure portal で、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
左側のメニューの [設定] セクションで、[ 高可用性] を選択します。
高可用性が有効になっている場合は、ゾーン回復性の [有効] ラジオ ボタンが既に選択されています。 また、 高可用性モード は構成済みモードに設定され、 高可用性状態 の値は通常 は正常です。
HA を無効にするには、[ 無効] ラジオ ボタンを選択します。
[保存] をクリックして変更を適用します。
ダイアログには、スタンバイ サーバーの削除に関連するコスト削減が表示されます。 続行する場合は、[高可用性を無効にする] を選択します。
デプロイが開始されます。 完了すると、高可用性が正常に無効にされたことを示す通知が表示されます。
サーバー のプロビジョニング中に高可用性を有効にする
Azure portal で、新しい Azure Database for PostgreSQL フレキシブル サーバー インスタンスのプロビジョニング中に、Business Critical (高可用性) セクションに移動します。 [ゾーン回復性] セクションで [有効] ラジオボタンを選択してください。
- 既定では、サーバーはゾーンの回復性を最大限に高めるために、 ゾーン冗長 HA モードを使用して別の可用性ゾーンにスタンバイ サーバーを作成しようとします。
プライマリ サーバーの特定のゾーンを選択するには、可用性ゾーンを [優先設定なし] 以外の値に設定します。
強制フェールオーバーを開始する
Azure Database for PostgreSQL のスタンバイ サーバーへのプライマリ サーバーのフェールオーバーを強制するには、次の手順に従います。
強制フェールオーバーを開始すると、プライマリ サーバーはすぐにダウンし、スタンバイ サーバーへのフェールオーバーをトリガーします。 強制フェールオーバーの開始は、計画外の停止によって発生したフェールオーバーがワークロードに与える影響をテストする場合に便利です。
重要
フェールオーバーをすぐに連続して実行することはしないでください。 フェールオーバーの間に少なくとも 15 ~ 20 分待ちます。 この待機時間により、新しいスタンバイ サーバーを完全に確立できます。
ポータルで報告された全体的なエンドツーエンドの操作時間は、アプリケーションで発生する実際のダウンタイムよりも長くなる可能性があります。 アプリケーションの観点からダウンタイムを測定する必要があります。
Azure portal で、高可用性が有効になっている Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
左側のメニューの [設定] セクションで、[ 高可用性] を選択します。
高可用性モードが ゾーン冗長に設定されている場合は、 プライマリ可用性ゾーンとスタンバイ可用性ゾーン に割り当てられている値に注意 してください。 フェールオーバー操作が完了した後は、元に戻す必要があります。
[ 強制フェールオーバー ] を選択して、手動フェールオーバー手順を開始します。 フェールオーバーが完了するまで、予想されるダウンタイムがダイアログで通知されます。 続行する場合は、[強制フェールオーバーの開始] を選択します。
フェールオーバーが進行中であることを示す通知が表示されます。
スタンバイ サーバーへのフェールオーバーが完了すると、完了が通知されます。
高可用性モードが ゾーン冗長として構成されている場合は、 プライマリ可用性ゾーン と スタンバイ可用性ゾーン の値が逆になっていることを確認します。
計画されたフェールオーバーを開始する
プライマリ サーバーから Azure Database for PostgreSQL のスタンバイ サーバーへの計画されたフェールオーバーを実行するには、次の手順に従います。 この操作を開始すると、スタンバイ サーバーが準備され、フェールオーバーが実行されます。
このフェールオーバー操作では、スタンバイ サーバーへのグレースフル フェールオーバーが実行されるため、ダウンタイムが最小限になります。 これは、予期しないフェールオーバー後にプライマリ サーバーを優先可用性ゾーンに戻すなどの状況に役立ちます。
重要
フェールオーバーをすぐに連続して実行することはしないでください。 フェールオーバーの間に少なくとも 15 ~ 20 分待ちます。 この待機時間により、新しいスタンバイ サーバーを完全に確立できます。
アクティビティの少ない期間中に計画されたフェールオーバーを実行します。
ポータルで報告された全体的なエンドツーエンドの操作時間は、アプリケーションで発生する実際のダウンタイムよりも長くなる可能性があります。 アプリケーションの観点からダウンタイムを測定する必要があります。
Azure portal で、高可用性が有効になっている Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
左側のメニューの [設定] セクションで、[ 高可用性] を選択します。
高可用性モードが ゾーン冗長に設定されている場合は、 プライマリ可用性ゾーンとスタンバイ可用性ゾーン に割り当てられている値に注意 してください。 フェールオーバー操作が完了した後は、元に戻す必要があります。
[ 計画されたフェールオーバー ] を選択して、手動フェールオーバー手順を開始します。 フェールオーバーが完了するまで、予想されるダウンタイムがダイアログで通知されます。 続行する場合は、[計画フェールオーバーの開始] を選択します。
フェールオーバーが進行中であることを示す通知が表示されます。
スタンバイ サーバーへのフェールオーバーが完了すると、完了が通知されます。
高可用性モードが ゾーン冗長として構成されている場合は、 プライマリ可用性ゾーン と スタンバイ可用性ゾーン の値が逆になっていることを確認します。
制限事項と考慮事項
Azure Database for PostgreSQL フレキシブル サーバー インスタンスで高可用性を有効または無効にしても、ネットワーク構成、ファイアウォール設定、サーバー パラメーター、バックアップリテンション期間など、他の設定は変更されません。 高可用性の有効化または無効化はオンライン操作です。 アプリケーションの接続と操作には影響しません。
Azure Database for PostgreSQL では、両方のレプリカが同じゾーンにデプロイされた高可用性がサポートされています。 この構成は、サポートされているすべてのリージョンで使用できます。 ただし、ゾーン冗長を使用した高可用性は 、特定のリージョンでのみ使用できます。
バースタブルティアでは、高可用性はサポートされていません。 高可用性をサポートするのは、 汎用 レベルと メモリ最適化 レベルのみです。
単一の可用性ゾーンで構成されるリージョンにサーバーをデプロイする場合は、同じゾーン モードでのみ高可用性を有効にすることができます。 リージョンが複数の可用性ゾーンで将来的に拡張される場合は、同じゾーンまたはゾーン冗長として構成された高可用性を備えた新しい Azure Database for PostgreSQL フレキシブル サーバー インスタンスをデプロイできます。
ただし、リージョンが 1 つの可用性ゾーンで構成されているときにリージョンにデプロイしたインスタンスでは、ゾーン冗長モードで高可用性を直接有効にすることはできません。 回避策として、復元オプションまたは読み取りレプリカ オプションを使用できます。
復元オプション
- 最新の復元ポイントを使用して、新しいサーバー上の既存のインスタンスを復元します。
- 新しいサーバーを作成したら、 ゾーン冗長性を使用して高可用性を有効にします。
- データ検証の後、必要に応じて古いサーバーを削除することもできます。
- クライアントの接続文字列が、新しく復元されたサーバーを指すよう変更されていることを確認します。
レプリカの読み取りオプション
- プライマリ サーバーと同じリージョンに読み取りレプリカを作成します。
- 読み取りレプリカを新しいプライマリ サーバーに昇格させます。
- 元の名前を保つには、仮想エンドポイントを使うか、古いプライマリを削除してから、新しい読み取りレプリカを作成してレベル上げします。
- ポータル ユーザーの場合は、ゾーンの回復性を有効にします。 開発者ツールの場合は、Zone-Redundant オプションを使用して高可用性を設定します。