次の方法で共有


Azure portal、CLI、およびREST API から Azure Database for PostgreSQL - フレキシブル サーバーの読み取りレプリカを作成および管理する

適用対象: Azure Database for PostgreSQL - フレキシブル サーバー

この記事では、Azure Database for PostgreSQL フレキシブル サーバーの読み取りレプリカを、Azure portal、CLI、および REST API から作成および管理する方法について説明します。 読み取りレプリカの詳細については、概要を参照してください。

前提条件

プライマリ サーバーにする Azure Database for PostgreSQL フレキシブル サーバー インスタンス

Note

書き込み集中型で持続的かつ高負荷なプライマリ ワークロードに対して読み取りレプリカを配置する場合、レプリケーションの遅延が増加し続け、プライマリに追いつくことができない可能性があります。 WAL ファイルはレプリカで受信されてはじめて削除されるため、これによりプライマリでのストレージの使用量が増加する可能性もあります。

プライマリ設定を確認する

Azure Database for PostgreSQL フレキシブル サーバーの読み取りレプリカを設定する前に、必要な前提条件を満たすようにプライマリ サーバーが構成されていることを確認します。 プライマリ サーバー上の特定の設定は、レプリカを作成する機能に影響する可能性があります。

ストレージの自動拡張: プライマリ サーバーとその読み取りレプリカのストレージ自動拡張設定は、一貫性を確保し、レプリケーションの中断を防ぐために、特定のガイドラインに従う必要があります。 詳細なルールと設定については、「ストレージの自動拡張」を参照してください。

Premium SSD v2: 現在のリリースでは、Premium SSD v2 ストレージを使用したプライマリ サーバーの読み取りレプリカの作成はサポートされていません。 ワークロードで読み取りレプリカが必要な場合は、プライマリ サーバーに別のストレージ オプションを選択します。

  1. Azure portal で、レプリカに使用する Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. [概要] ダイアログで、PostgreSQL のバージョン (例 15.4) をメモします。 また、プライマリが配置されているリージョン (例 East US) もメモしてください。

    プライマリ設定の確認を示すスクリーンショット。

  3. サーバー サイドバーの [設定] で、[コンピューティング + ストレージ] を選択します。

  4. 次の設定を確認してメモします。

    • コンピューティング レベル、プロセッサ、サイズ (例 Standard_D4ads_v5)。

    • 記憶域

      • ストレージ サイズ (例 128GB)
      • [自動拡張]
    • 高可用性

      • 有効/無効
      • 可用性ゾーンの設定
    • バックアップの設定

      • 保持期間
      • 冗長オプション
  5. [設定][ネットワーク] を選択します。

  6. ネットワーク設定を確認します。

    サーバー設定のスクリーンショット。

読み取りレプリカを作成します

読み取りレプリカを作成するには、次の手順に従います。

  1. プライマリ サーバーとして使用する既存の Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. サーバー サイドバーで、[設定][レプリケーション] を選択します。

  3. [レプリカの作成] を選択します。

    レプリカの作成アクションのスクリーンショット。

  4. [基本] フォームに次の情報を入力します。

    基本情報の入力を示すスクリーンショット。

  5. [確認と作成] を選択してレプリカの作成を確認するか、ファイアウォール規則を追加、削除、または変更する場合は [次へ: ネットワーク] を選択します。

    ファイアウォール規則の変更アクションのスクリーンショット。

  6. 残りの既定値のままにして、ページの下部にある [確認と作成] ボタンを選択するか、次のフォームに進んでタグを追加するか、データ暗号化方法を変更します。

  7. 最後の確認ウィンドウの情報を確認します。 準備ができたら、 [作成] を選択します。 新しいデプロイが作成されます。

    最後の確認ウィンドウの情報確認を示すスクリーンショット。

  8. 配置中、プライマリが Updating 状態にあることが分かります。

    更新状態に入るプライマリのスクリーンショット。読み取りレプリカが作成されたら、それを [レプリケーション] ウィンドウから表示できます。

    レプリケーション ウィンドウへの新しいレプリカの表示を示すスクリーンショット。

  • レプリカ サーバー名を設定します。

    ヒント

    クラウド導入フレームワーク (CAF) のベスト プラクティスでは、接続先または管理対象のインスタンスと、そのインスタンスが存在する場所を簡単に判断できるリソースの名前付け規則を使用します。

  • プライマリとは異なる場所を選択します。しかし、同じリージョンも選択できることに注意してください。

    ヒント

    レプリカを作成できるリージョンの詳細については、読み取りレプリカの概念に関する記事を参照してください。

  • コンピューティングとストレージをプライマリから記録したものに設定します。 表示されたコンピューティングが一致しない場合は、[サーバーの構成] を選択し、適切なものを選択します。

    Note

    プライマリよりも小さいコンピューティング サイズを選択した場合、配置は失敗します。 また、そのコンピューティング サイズは別のリージョンでは使用できない可能性があることにも注意してください。

    コンピューティング サイズの選択を示すスクリーンショット。

重要

読み取りレプリカの概要に関するページの考慮事項セクションを確認してください。

レプリカの昇格中に発生する問題を回避するには、次のサーバー パラメーターを、必ず最初にレプリカで変更してから、プライマリで適用します: max_connectionsmax_prepared_transactionsmax_locks_per_transactionmax_wal_sendersmax_worker_processes

仮想エンドポイントの作成

Note

追加、編集、削除のように仮想エンドポイントに関連するすべての操作は、プライマリ サーバーのコンテキストで実行されます。

  1. Azure portal でプライマリ サーバーを選びます。

  2. サーバー サイドバーで、[設定][レプリケーション] を選択します。

  3. [エンドポイントの作成] を選択します。

  4. ダイアログで、エンドポイントのわかりやすい名前を入力します。 生成されている DNS エンドポイントに注目してください。

    カスタム名を使用した新しい仮想エンドポイントの作成を示すスクリーンショット。

  5. [作成] を選択します

    Note

    仮想エンドポイントを作成しない場合は、レプリカ昇格の試行でエラーが発生します。

    仮想エンドポイントが見つからない場合の昇格エラーのスクリーンショット。

仮想エンドポイントの一覧表示

仮想エンドポイントを一覧表示するには、次の手順を使用します。

  1. Azure portal でプライマリ サーバーを選びます。

  2. サーバー サイドバーで、[設定][レプリケーション] を選択します。

  3. ページの上部に、リーダー エンドポイントとライター エンドポイントの両方が、それらが指しているサーバーの名前と一緒に表示されます。

    仮想エンドポイントの一覧のスクリーンショット。

アプリケーションを仮想エンドポイントを指すように変更する

新しい仮想エンドポイントを使用するように Azure Database for PostgreSQL フレキシブル サーバー インスタンスを使用するすべてのアプリケーションを変更します (例: corp-pg-001.writer.postgres.database.azure.com および corp-pg-001.reader.postgres.database.azure.com)。

レプリカのレベル上げ

必要なすべてのコンポーネントが配置され、レプリカのプライマリへの昇格操作を実行する準備が整いました。

Azure portal からレプリカのレベルを上げるには、次の手順に従います。

  1. Azure portal で、プライマリ Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. サーバー メニューで、[設定][レプリケーション] を選択します。

  3. [サーバー] で、レプリカの [昇格] アイコンを選択します。

    レプリカの昇格の選択を示すスクリーンショット。

  4. ダイアログで、アクションが [プライマリ サーバーへの昇格] になっていることを確認します。

  5. [データの同期] で、[計画済み - 昇格前にデータを同期] が選択されていることを確認します。

    レプリカを昇格する方法を示すスクリーンショット。

  6. [昇格] を選択してプロセスを開始します。 完了すると、ロールは逆になります。レプリカがプライマリになり、プライマリがレプリカのロールを引き受けます。

Note

昇格するレプリカには、リーダー仮想エンドポイントが割り当てられている必要があります。そうでない場合、昇格時にエラーが発生します。

アプリケーションをテストする

いくつかの操作を実行するには、アプリケーションを再起動してから、それらの操作を試みます。 アプリケーションは、仮想エンドポイント接続文字列や DNS エントリを変更せずにシームレスに機能する必要があります。 今回はアプリケーションを実行したままにします。

元のサーバーとリージョンへのフェールバック

同じ操作を繰り返して、元のサーバーをプライマリに昇格させます。

  1. Azure portal で、レプリカを選択します。

  2. サーバー サイドバーで、[設定][レプリケーション] を選択します

  3. [サーバー] で、レプリカの [昇格] アイコンを選択します。

  4. ダイアログで、アクションが [プライマリ サーバーへの昇格] になっていることを確認します。

  5. [データの同期] で、[計画済み - 昇格前にデータを同期] が選択されていることを確認します。

  6. [昇格] を選択すると、プロセスが開始されます。 完了すると、ロールは逆になります。レプリカがプライマリになり、プライマリがレプリカのロールを引き受けます。

アプリケーションをテストする

ここでも、使用しているアプリケーションのいずれかに切り替えます。 プライマリとレプリカの状態が Updating に変わるのを待ってから、いくつかの操作の実行を試みます。 レプリカの昇格中に、アプリケーションでエンドポイントへの一時的な接続の問題が発生する可能性があります。

潜在的な昇格接続エラーのスクリーンショット。

セカンダリ読み取りレプリカを追加する

別のリージョンにセカンダリ読み取りレプリカを作成して、リーダー仮想エンドポイントを変更し、また最初のレプリカから独立したサーバーを作成します。

  1. Azure portal で、プライマリ Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. サーバー サイドバーで、[設定][レプリケーション] を選択します。

  3. [レプリカの作成] を選択します。

  4. 3 番目のリージョンの情報 (例: westuscorp-pg-westus-001) を [基本] フォームに入力します

  5. [確認と作成] を選択してレプリカの作成を確認するか、ファイアウォール規則を追加、削除、または変更する場合は [次へ: ネットワーク] を選択します。

  6. ファイアウォールの設定をテストします。 プライマリ設定が自動的にコピーされていることに注意してください。

  7. 残りの既定値はそのままにします。そして、ページの下部にある [確認と作成] ボタンを選択するか、あるいは、セキュリティを構成する、またはタグを追加するには次のフォームに進みます。

  8. 最後の確認ウィンドウの情報を確認します。 準備ができたら、 [作成] を選択します。 新しいデプロイが作成されます。

  9. 配置中、プライマリが Updating 状態にあることが分かります。

    更新状態に入るプライマリのスクリーンショット。

仮想エンドポイントの変更

  1. Azure portal で、プライマリ Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. サーバー サイドバーで、[設定][レプリケーション] を選択します。

  3. 省略記号を選択し、[編集] を選択します。

    仮想エンドポイントの編集を示すスクリーンショット。

  4. ダイアログで、新しいセカンダリ レプリカを選択します。

    セカンダリ レプリカの選択を示すスクリーンショット。

  5. [保存] を選択します。 リーダー エンドポイントがセカンダリ レプリカを指すようになり、昇格操作はこのレプリカに関連付けられまました。

レプリカを独立したサーバーに昇格させる

レプリカへの切り替えではなく、スタンドアロン サーバーになるようにレプリカのレプリケーションを中断することもできます。

  1. Azure portal で、Azure Database for PostgreSQL フレキシブル サーバーのプライマリ サーバーを選択します。

  2. サーバー サイドバーのサーバー メニューの [設定] で、[レプリケーション] を選択します。

  3. [サーバー] で、独立したサーバーに昇格させるレプリカの [昇格] アイコンを選択します。

    レプリカ 2 の昇格を選択する方法を示すスクリーンショット。

  4. ダイアログで、アクションが [独立したサーバーに昇格し、レプリケーションから削除する] であることを確認します。これはプライマリ サーバーには影響しません

  5. [データの同期] で、[計画済み - 昇格前にデータを同期] が選択されていることを確認します。

    独立したサーバーへのレプリカの昇格を示すスクリーンショット。

  6. [昇格] を選択すると、プロセスが開始されます。 完了すると、サーバーはプライマリのレプリカではなくなります。

Note

レプリカは、一度独立したサーバーに昇格させた後は、レプリケーション セットに追加し直すことはできません。

仮想エンドポイントを削除する

  1. Azure portal でプライマリ サーバーを選びます。

  2. サーバー サイドバーで、[設定][レプリケーション] を選択します。

  3. ページの上部にある Virtual endpoints セクションを見つけます。 エンドポイント名の横にある 3 つのドット (メニュー オプション) に移動し、展開して、Delete を選択します。

  4. 削除の確認ダイアログが表示されます。 「このアクションを行うと仮想エンドポイント virtualendpointName が削除されます」という警告が表示されます。 "Any clients connected using these domains may lose access." (これらのドメインを使用して接続されているすべてのクライアントは、アクセスを失う可能性があります。)影響を確認し、[削除] をクリックして確定します。

レプリカの削除

スタンドアロン Azure Database for PostgreSQL フレキシブル サーバーインスタンスの削除と同様の方法で読み取りレプリカを削除できます。

  1. Azure Portal で、読み取りレプリカの [概要] ページを開きます。 [削除] を選択します。

    レプリカの概要ページでレプリカの削除が選択されていることを示すスクリーンショット。

次の手順に従って、 [レプリケーション] ウィンドウから読み取りレプリカを削除することもできます。

  1. Azure portal で、プライマリ Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. サーバー メニューで、[設定][レプリケーション] を選択します。

  3. 削除する読み取りレプリカを選択し、省略記号を選択します。 [削除] を選択します。

    削除するレプリカの選択を示すスクリーンショット。

  4. [削除] 操作を確認します。

プライマリ サーバーを削除する

プライマリ サーバーは、読み取りレプリカをすべて削除した後にのみ削除できます。 レプリカを削除するには、「レプリカの削除」セクションの指示に従い、以下の手順に進みます。

Azure Portal からサーバーを削除するには、次の手順に従います。

  1. Azure portal で、プライマリ Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. サーバーの [概要] ページを開き、[削除] を選択します。

    サーバーの概要ページでプライマリ サーバーの削除が選択されていることを示すスクリーンショット。

  3. 削除するプライマリ サーバーの名前を入力します。 [削除] を選択して、プライマリ サーバーの削除を確認します。

    プライマリ サーバーの削除の確認を示すスクリーンショット。

レプリカの監視

読み取りレプリカを監視するには 2 つのメトリックを使用できます。

物理レプリケーションの最大ラグ

プライマリでのみ使用できます。

[物理レプリケーションの最大ラグ] メトリックには、プライマリ サーバーと最も遅れているレプリカの間のバイト ラグが表示されます。

  1. Azure portal でプライマリ サーバーを選びます。

  2. [メトリック] を選びます。 [メトリック] ウィンドウで、[Max Physical Replication Lag] (物理レプリケーションの最大ラグ) を選びます。

    物理レプリケーションの最大ラグ メトリックを示すメトリック ページのスクリーンショット。

  3. [集計][Max] (最大) を選択します。

[Read Replica Lag] (読み取りレプリカのラグ) メトリック

[Read Replica Lag] (読み取りレプリカのラグ) メトリックには、レプリカで最後に再生されたトランザクションからの経過時間が表示されます。 プライマリでトランザクションが発生していない場合、メトリックにはこのタイム ラグが反映されます。 たとえば、プライマリ サーバーでトランザクションが発生しておらず、最後のトランザクションが 5 秒前に再生された場合、[読み取りレプリカのラグ] には 5 秒のラグが表示されます。

  1. Azure portal で読み取りレプリカを選びます。

  2. [メトリック] を選びます。 [メトリック] ウィンドウで、[Read Replica Lag] (読み取りレプリカのラグ) を選びます。

    読み取りレプリカのラグ メトリックを示すメトリック ページのスクリーンショット。

  3. [集計][Max] (最大) を選択します。

Azure Database for PostgreSQL 製品チームと提案やバグを共有します