[アップデート]RDS for PostgreSQLでリードレプリカとして マルチAZ DB クラスターの指定が可能になりました

リードレプリカからそのままマルチAZ DB クラスターとして昇格させることができます
2023.02.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、崔です。

RDS for PostgreSQL のリードレプリカとして、マルチAZ DBクラスターを設定することができるようになりました。

これにより、作成したリードレプリカを昇格させることで、マルチAZ DBクラスターへの構成変更も可能になります。

2023年2月1日時点で、マルチAZ DBクラスターは、RDS for MySQL と RDS for PostgreSQL で利用可能ですが、今回のアップデートは RDS for PostgreSQL のみ対象です。

制限事項

  • マルチAZ DBクラスターのリードレプリカは、ソースDBと同じメジャーバージョンで、マイナーバージョンも同じかそれ以上であること
  • ソースDBのバックアップ保持期間を0以外の値に設定し、自動バックアップをONにしていること
  • ソースDBの割り当てストレージが100GiB以上であること
  • ソースDBと同じAWSアカウント、同じリージョンであること

やってみた

リードレプリカの作成

まずソースDBからリードレプリカを作成します。
(なお、2023年1月時点で、ソースDBのバージョンが PostgreSQL 13.8 では今回のアップデートは利用できませんでした。13.7 で下記を実施しています)

リードレプリカのDBインスタンス識別子を入力します

少しスクロールして、デプロイオプションを選択します。
「マルチAZ DB クラスター」を選択します。

上にスクロールして戻り、DBインスタンスクラスを選択します。
デプロイオプションで「マルチAZ DB クラスター」を選択後は、リストに上がってくるDBインスタンスクラスが自動的に絞られます。
今回は、db.r6gd.large を選択しました。

次にストレージを設定します。
ストレージタイプは「io1」しか選択できません。これはマルチAZ DBクラスターを構築するときと同じですね。
ストレージ割り当ては、今回は最小の100GiBとしました。
ソースDBのストレージが100GiB未満の場合は、事前に100GiB以上に拡張しておく必要があります。
(リードレプリカ作成時にエラーも出ず、設定画面に戻るだけでしたので、気をつけてください)
プロビジョンドIOPSも設定します。今回は最小の1000としました。

これで作成します。

しばらく待つとリードレプリカの作成が完了します。

ロールの表記が「Multi-AZ DB replica cluster」になっていることが確認できます。

リードレプリカから昇格

レプリカラグを確認し、ゼロになった後に昇格させます。

リードレプリカを選択し、アクションから「昇格」をクリックします。

注意文がポップアップされてきます。「リードレプリカの昇格」をクリックします。

しばらく待つと無事に昇格が完了しました。

まとめ

2023年2月1日時点では、シングルAZやマルチAZのRDSインスタンスからマルチAZ DBクラスターへの変更はサポートされていませんが、それらのスナップショットからマルチAZ DBクラスターに復元することは可能です。

今回のアップデートにより、スナップショットからマルチAZ DBクラスターに復元する方法だけではなく、リードレプリカとしてマルチAZ DBクラスターを作成し、そこから昇格することで書き込み可能なマルチAZ DBクラスターとして利用することも可能になりました。
ちなみに、マルチAZ DBクラスターのインスタンス名の変更も昨年末のアップデートで可能になりました。

サービス停止可能時間などを考慮にいれながら、どちらの方法がプロジェクトにマッチしているか検討して、マルチAZ DBクラスターへの変更方法を選択しましょう。

参考情報