[アップデート]RDS for PostgreSQLでリードレプリカとして マルチAZ DB クラスターの指定が可能になりました
こんにちは、崔です。
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クラスターへの変更方法を選択しましょう。