📝
Amazon RDS の DB インスタンスをシングル AZ からマルチ AZ に変更してみた
Amazon RDS の DB インスタンスをマルチ AZ 配置に変換する - Amazon Relational Database Service
上記ドキュメントを参考にマネジメントコンソールでの手順を試してみました。
マルチ AZ への変更フロー
冒頭のドキュメントに記載されている通り、シングル AZ からマルチ AZ への変更時に RDS では以下のアクションが実行されます。
- プライマリ DB インスタンスの EBS ボリュームのスナップショットを作成
- スナップショットからスタンバイレプリカ用の新しいボリュームを作成
- プライマリレプリカとスタンバイレプリカのボリューム間の同期ブロックレベルレプリケーションの有効化
注意点
冒頭のドキュメントに記載されている通り、シングル AZ からマルチ AZ への変更時には以下の点に注意する必要があります。
- ダウンタイムを回避できるが書き込みに敏感なワークロードではパフォーマンスに影響する可能性がある
- 同期レプリケーションは I/O レイテンシーを増加し、データベースのパフォーマンスに影響を与える可能性がある
- 本番 DB インスタンスをマルチ AZ DB インスタンスに変換することは避けることがベストプラクティス
- リードレプリカを作成し、バックアップを有効にしてマルチ AZ に変換し、そのボリュームにデータをロードしてからプライマリ DB インスタンスに昇格する方法が推奨されている
変更手順
事前にシングル AZ インスタンスを作成済みです。

対象のデータベースのアクションから「マルチ AZ 配置への変換」を選択します。

今回は検証用インスタンスなのですぐに適用しますが、ワークロードへの影響がある場合にはメンテナンス期間中に適用することも検討してください。


数分後にマルチ AZ DB インスタンスへの変更が完了しました。

なお、AWS CLI や AWS SDK で変更する場合のオプションについても冒頭のドキュメントに記載されている通りです。
- AWS CLI を使用して modify-db-instance コマンドを呼び出し、--multi-az オプションを設定します。
- RDS API を使用して、ModifyDBInstance オペレーションを呼び出して、MultiAZ パラメータを true に設定します。
まとめ
今回は Amazon RDS の DB インスタンスをシングル AZ からマルチ AZ に変更してみました。
どなたかの参考になれば幸いです。
Discussion