Azure Database for PostgreSQL フレキシブル サーバーの高可用性を構成する

この記事では、Azure Database for PostgreSQL フレキシブル サーバーで高可用性 (HA) を有効または無効にする方法について説明します。 この情報は、同じゾーン内のサーバーを使用しているか、ゾーン冗長デプロイ モデルを使用しているかに関係なく適用されます。 この記事では、Azure Database for PostgreSQL フレキシブル サーバーで高可用性 (HA) を有効または無効にする方法について説明します。 この情報は、同じゾーン内のサーバーを使用しているか、ゾーン冗長デプロイ モデルを使用しているかに関係なく適用されます。

高可用性機能は、物理的に分離されたプライマリ レプリカとスタンバイ レプリカをデプロイします。 選択したデプロイ モデルに応じて、同じ可用性ゾーン内または異なるゾーンにレプリカをプロビジョニングできます。 詳細については、 高可用性の概念に関する記事を参照してください。 Azure Database for PostgreSQL フレキシブル サーバーの作成中または作成後に高可用性を有効にすることができます。 高可用性機能は、物理的に分離されたプライマリ レプリカとスタンバイ レプリカをデプロイします。 選択したデプロイ モデルに応じて、同じ可用性ゾーン内または異なるゾーンにレプリカをプロビジョニングできます。 詳細については、 高可用性の概念に関する記事を参照してください。 Azure Database for PostgreSQL フレキシブル サーバーの作成中または作成後に高可用性を有効にすることができます。

既存のサーバーの高可用性を有効にする

既存のAzure Database for PostgreSQLフレキシブル サーバーでいつでも高可用性を有効にすることができます。 高可用性を有効にすると、プライマリ サーバーをミラーリングするスタンバイ レプリカがサービスによって作成されます。 リージョンの容量と構成の選択に応じて、スタンバイを別の可用性ゾーンにデプロイして保護を最大にするか、プライマリと同じゾーンにデプロイできます。 既存のAzure Database for PostgreSQLフレキシブル サーバーでいつでも高可用性を有効にすることができます。 高可用性を有効にすると、プライマリ サーバーをミラーリングするスタンバイ レプリカがサービスによって作成されます。 リージョンの容量と構成の選択に応じて、スタンバイを別の可用性ゾーンにデプロイして保護を最大にするか、プライマリと同じゾーンにデプロイできます。

Azure portal を使用します。

  1. お使いの Azure Database for PostgreSQL フレキシブル サーバーを選択します。 Azure portal を使用して以下を実行します。

  2. お使いの Azure Database for PostgreSQL フレキシブル サーバーを選択します。

  3. リソース メニューの [設定] セクションで、[ 高可用性] を選択します。

ゾーンの回復性オプションは、サーバーが可用性ゾーン間で保護されているかどうかを制御します。 次の 2 つの選択肢があります。

  • 無効 (99.9% SLA):高可用性が構成されていません。
  • 有効 (99.99% SLA): このオプションを選択すると、Azureはプライマリとは異なる可用性ゾーンにスタンバイ サーバーの作成を試みます。 このオプションを使用すると、ゾーン レベルの障害に対する最適な保護が提供されます。

ゾーンの回復性を有効にしても、リージョンにゾーン冗長セットアップの容量がない場合は、 有効 (99.99% SLA) オプションの下に追加のチェック ボックスが表示されます。 スタンバイ サーバーをプライマリ サーバーと同じゾーンに作成できるようにするには、このチェック ボックスをオンにします。 ゾーン容量が使用可能になると、Azureはワークロードを同じゾーンからゾーン冗長に自動的に移行します。

  1. ゾーンの回復性を有効にしていない場合は、[ 有効] オプションを選択します。

    高可用性を構成するための [高可用性] ページを示すスクリーンショット。

  2. [有効] オプションを選択すると、可用性ゾーンをサポートするリージョンに対してゾーン冗長オプションが既定で適用されます。 この構成は、ゾーン障害から保護します。

    高可用性を有効にするために選択されたラジオ ボタンを示すスクリーンショット。

  3. リージョンにゾーン容量がない場合は、優先リージョンで高可用性 (HA) が有効になっていることを確認するために、有効なオプションの下にあるチェックボックスをオンにして、リージョンの Same-Zone モードで HA を作成できるようにします。

    高可用性のための同じゾーン オプションの選択を示すスクリーンショット。

  4. 設定の構成が完了したら、[ 保存] を選択して変更を適用します。

  5. ダイアログには、スタンバイ サーバーの展開に関連するコストの増加が表示されます。 続行する場合は、[高可用性を有効にする] を選択します。

    高可用性の有効化を確認するダイアログを示すスクリーンショット。

  6. Azure Database for PostgreSQL フレキシブル サーバーで高可用性を実現するために、新しいデプロイが開始されます。

    高可用性構成のデプロイが進行中であることを示すスクリーンショット。

  7. デプロイが完了したら、[リソースに移動] を選択して、Azure Database for PostgreSQLフレキシブル サーバーに戻ることができます。

    高可用性構成を有効にするためにデプロイが正常に完了したことを示すスクリーンショット。

高可用性を無効にする

スタンバイ レプリカの保護が不要になったら、Azure Database for PostgreSQL フレキシブル サーバーで高可用性を無効にすることができます。 高可用性を無効にすると、スタンバイ サーバーが削除され、コストが削減されますが、サーバーはゾーンまたはサーバーの障害から保護されなくなります。

Azure portal を使用します。

  1. お使いの Azure Database for PostgreSQL フレキシブル サーバーを選択します。

  2. リソース メニューの [設定] セクションで、[ 高可用性] を選択します。

  3. 高可用性が有効になっている場合は、ゾーン回復性[有効] ラジオ ボタンが既に選択されています。 また、 高可用性モード は構成済みモードに設定され、 高可用性状態 の値は通常 は正常です

    高可用性を構成するためのウィンドウを示すスクリーンショット。高可用性オプションは既に選択されており、状態は [正常] です。

  4. 高可用性を無効にするには、[ 無効] ラジオ ボタンを選択します。

    高可用性を有効にするためのチェックボックスのチェックが外れている状態を示すスクリーンショット。

  5. [保存] をクリックして変更を適用します。

  6. ダイアログには、スタンバイ サーバーの削除に関連するコスト削減が表示されます。 続行する場合は、[高可用性を無効にする] を選択します。

    高可用性の無効化を確認するダイアログを示すスクリーンショット。

  7. デプロイが開始されます。 完了すると、高可用性が正常に無効にされたことを示す通知が表示されます。

    高可用性の無効化が成功したことを示す通知を示すスクリーンショット。

サーバーのプロビジョニング中に Business Critical (高可用性) を有効にする

Azure Database for PostgreSQL フレキシブル サーバーを初めて作成するときに、高可用性を構成できます。 プロビジョニング中に高可用性を有効にすると、プライマリ サーバーと共にスタンバイ レプリカがデプロイされるため、ゾーンまたはサーバーの障害からすぐに保護できます。

Azure portal を使用します。

  1. 新しいAzure Database for PostgreSQLフレキシブル サーバーのプロビジョニング中に、Business Critical (高可用性) セクションに移動します。 [ゾーンの回復性] セクションで [有効] オプションを選択します。

    • 既定では、サーバーはゾーンの回復性を最大限に高めるために、 ゾーン冗長 HA モードの別の可用性ゾーンにスタンバイ サーバーを作成しようとします。

    ゾーン冗長オプションを使用した HA の有効化を示すスクリーンショット。

    • ゾーン容量を使用できない場合は、フォールバックとして [ゾーンの 回復性に失敗した場合に同じゾーンのスタンバイを許可する ] チェック ボックスをオンにします。 このオプションを選択しない場合、ワークフローの作成の次の手順に進むことはありません。 このチェックにより、高可用性が引き続き有効になります。 ゾーン容量が使用可能になると、Azure はワークロードを Same-Zone HA からゾーン冗長 HA に自動的に移行します。

      同じゾーン HA オプションの検証エラー メッセージを示すスクリーンショット。

    • チェック ボックスをオンにした後、作成ワークフローの [認証] セクションに進みます。

      同じゾーンの HA オプションを使用した高可用性を示すスクリーンショット。

  2. プライマリ サーバーの特定のゾーンを選択するには、可用性ゾーン[優先設定なし] 以外の値に設定します。

    プライマリ サーバーの特定の可用性ゾーンの選択を示すスクリーンショット。

強制フェールオーバーを開始する

Azure Database for PostgreSQL のスタンバイ サーバーへのプライマリ サーバーのフェールオーバーを強制するには、次の手順に従います。

強制フェールオーバーを開始すると、プライマリ サーバーはすぐにダウンし、スタンバイ サーバーへのフェールオーバーをトリガーします。 強制フェールオーバーの開始は、計画外の停止によって発生したフェールオーバーがワークロードに与える影響をテストする場合に便利です。

Important

  • フェールオーバーをすぐに連続して実行することはしないでください。 フェールオーバーの間に少なくとも 15 ~ 20 分待ちます。 この待機時間により、新しいスタンバイ サーバーを完全に確立できます。

  • ポータルで報告された全体的なエンドツーエンドの操作時間は、アプリケーションで発生する実際のダウンタイムよりも長くなる可能性があります。 アプリケーションの観点からダウンタイムを測定する必要があります。

Azure portal を使用します。

  1. 高可用性が有効になっているAzure Database for PostgreSQLフレキシブル サーバーを選択します。

  2. リソース メニューの [設定] セクションで、[ 高可用性] を選択します。

  3. プライマリ サーバーとスタンバイ サーバーが異なるゾーンにデプロイされている場合は、 プライマリ可用性ゾーンスタンバイ可用性ゾーンに割り当てられている値に注意してください。 これらの値は、フェールオーバー操作の完了後に逆になります。

    プライマリとスタンバイの可用性ゾーンを示すスクリーンショット。

  4. [ 強制フェールオーバー ] を選択して、手動フェールオーバー手順を開始します。 フェールオーバーが完了するまで、予想されるダウンタイムがダイアログで通知されます。 続行する場合は、[強制フェールオーバーの開始] を選択します。

    強制フェールオーバーの開始前に表示されたダイアログを示すスクリーンショット。

  5. フェールオーバーが進行中であることを示す通知が表示されます。

    強制フェールオーバーの開始後に進行中のフェールオーバーに関する通知を示すスクリーンショット。

  6. スタンバイ サーバーへのフェールオーバーが完了すると、完了が通知されます。

    強制フェールオーバーが完了したときに表示される通知を示すスクリーンショット。

  7. プライマリ サーバーとスタンバイ サーバーが異なるゾーンにデプロイされている場合は、フェールオーバーが開始される前と比較して、 プライマリ可用性ゾーンスタンバイ可用性ゾーン の値が逆であることを確認します。

計画されたフェールオーバーを開始する

プライマリ サーバーから Azure Database for PostgreSQL のスタンバイ サーバーへの計画されたフェールオーバーを実行するには、次の手順に従います。 この操作を開始すると、スタンバイ サーバーが準備され、フェールオーバーが実行されます。

このフェールオーバー操作では、スタンバイ サーバーへのグレースフル フェールオーバーが実行されるため、ダウンタイムが最小限になります。 これは、予期しないフェールオーバー後にプライマリ サーバーを優先可用性ゾーンに戻すなどの状況に役立ちます。

Important

  • フェールオーバーをすぐに連続して実行することはしないでください。 フェールオーバーの間に少なくとも 15 ~ 20 分待ちます。 この待機時間により、新しいスタンバイ サーバーを完全に確立できます。

  • アクティビティの少ない期間中に計画されたフェールオーバーを実行します。

  • ポータルで報告された全体的なエンドツーエンドの操作時間は、アプリケーションで発生する実際のダウンタイムよりも長くなる可能性があります。 アプリケーションの観点からダウンタイムを測定する必要があります。

Azure portal を使用します。

  1. 高可用性が有効になっているAzure Database for PostgreSQLフレキシブル サーバーを選択します。

  2. リソース メニューの [設定] セクションで、[ 高可用性] を選択します。

  3. プライマリ サーバーとスタンバイ サーバーが異なるゾーンにデプロイされている場合は、 プライマリ可用性ゾーンスタンバイ可用性ゾーンに割り当てられている値に注意してください。 これらの値は、フェールオーバー操作の完了後に逆になります。

    プライマリとスタンバイの可用性ゾーンを示すスクリーンショット。

  4. [ 計画されたフェールオーバー ] を選択して、手動フェールオーバー手順を開始します。 フェールオーバーが完了するまで、予想されるダウンタイムがダイアログで通知されます。 続行する場合は、[計画フェールオーバーの開始] を選択します。

    計画されたフェールオーバーの開始前に表示されたダイアログを示すスクリーンショット。

  5. フェールオーバーが進行中であることを示す通知が表示されます。

    計画されたフェールオーバーの開始後に進行中のフェールオーバーに関する通知を示すスクリーンショット。

  6. スタンバイ サーバーへのフェールオーバーが完了すると、完了が通知されます。

    計画されたフェールオーバーが完了したときに表示される通知を示すスクリーンショット。

  7. 高可用性モードが ゾーン冗長として構成されている場合は、 プライマリ可用性ゾーンスタンバイ可用性ゾーン の値が逆になっていることを確認します。

制限事項と考慮事項

  • Azure Database for PostgreSQLフレキシブル サーバーで高可用性を有効または無効にしても、サービスは他の設定を変更しません。 これらの設定には、ネットワーク構成、ファイアウォール設定、パラメーター、バックアップの保持期間が含まれます。 高可用性の有効化または無効化はオンライン操作です。 この操作は、アプリケーションの接続と操作には影響しません。

  • Azure Database for PostgreSQL では、両方のレプリカが同じゾーンにデプロイされた高可用性がサポートされています。 この構成は、サポートされているすべてのリージョンで使用できます。 ただし、 ゾーン冗長を使用した高可用性 は、特定のリージョンでのみ使用できます。

  • バースタブルティアでは、高可用性はサポートされていません。 高可用性をサポートするのは、 汎用 レベルと メモリ最適化 レベルのみです。

  • 単一の可用性ゾーンで構成されるリージョンにサーバーをデプロイする場合は、同じゾーン モードでのみ高可用性を有効にすることができます。 Microsoft、複数の可用性ゾーンで将来的にリージョンを拡張する場合は、同じゾーンまたはゾーン冗長として構成された高可用性を備えた新しいAzure Database for PostgreSQLフレキシブル サーバーをデプロイできます。

    ただし、リージョンが単一の可用性ゾーンで構成されている場合、リージョンにデプロイしたサーバーに対してゾーン冗長モードで高可用性を直接有効にすることはできません。 回避策として、復元オプションまたは読み取りレプリカ オプションを使用できます。

復元オプション

  1. 最新の復元ポイントの復元
  2. 新しいサーバーを作成したら、 ゾーン冗長性を使用して高可用性を有効にします
  3. データ検証の後、必要に応じて古いサーバーを削除することもできます。
  4. 新しく復元されたサーバーを指すクライアントの接続文字列を必ず変更してください。

レプリカの読み取りオプション

  1. プライマリ サーバーと同じリージョンに読み取りレプリカを作成します

  2. 読み取りレプリカを新しいプライマリ サーバーに昇格させます。

  3. 元の名前を保つには、仮想エンドポイントを使うか、古いプライマリを削除してから、新しい読み取りレプリカを作成してレベル上げします。

  4. ポータル ユーザーの場合は、ゾーンの回復性を有効にします。 開発者ツールの場合は、Zone-Redundant オプションを使用して高可用性を設定します。

  5. プライマリ サーバーと同じリージョンに読み取りレプリカを作成します

  6. 読み取りレプリカを新しいプライマリ サーバーに昇格させます。

  7. 元の名前を保つには、仮想エンドポイントを使うか、古いプライマリを削除してから、新しい読み取りレプリカを作成してレベル上げします。

  8. ポータル ユーザーの場合は、ゾーンの回復性を有効にします。 開発者ツールの場合は、Zone-Redundant オプションを使用して高可用性を設定します。