📝

RDSをマルチAZに変えてみた

2021/06/02に公開

RDSのデータベースをシングルAZからマルチAZに変更する手順です。

先にドキュメントを読みましょう!

シングル AZ 配置の DB インスタンスをマルチ AZ 配置に変更すると (エンジンは Amazon Aurora 以外)、Amazon RDS でいくつかのことが実行されます。まず、Amazon RDS は配置から、プライマリ DB インスタンスのスナップショットを撮ります。その後、他のアベイラビリティーゾーンにスナップショットを復元します。その後、Amazon RDS によりプライマリ DB インスタンスと新しいインスタンスとの間に同期レプリケーションが設定されます。

このアクションにより、シングル AZ からマルチ AZ への変換時のダウンタイムを回避できますが、マルチ AZ への変換中と変換後にパフォーマンスに影響が出ることがあります。この影響は、書き込み頻度の高い大規模な DB インスタンスで大きくなる可能性があります。

DB インスタンスでマルチ AZ を有効にするため、RDS はプライマリ DB インスタンスの EBS ボリュームのスナップショットを取得し、新しく作成されたスタンバイレプリカに復元してから、両方のボリュームを同期します。既存の EBS スナップショットを基に作成された新しいボリュームは、バックグラウンドで時間をかけて読み込まれます。この機能を使用すると、スナップショットから大量のボリュームをすばやく復元できますが、変更中および変更完了後にレイテンシーが高くなる可能性があります。
Amazon RDS での高可用性 (マルチ AZ) - Amazon Relational Database Serviceより

シングルAZからマルチAZになるまでは以下のような流れだと説明されています。

  1. 既存のDBインスタンスのスナップショットを取得
  2. 別のAZにスナップショットからDBを復元
  3. 既存のDBと復元したDBの間で同期

また、以下の点に注意するよう説明されています。

  • ダウンタイムなし
  • ただし、変更中または変更後の通信における遅延時間が増える可能性あり
  • 書き込み頻度の高い大規模なDBの場合はパフォーマンスへの影響に注意

変更方法

RDS コンソールを使用すると、DB インスタンスを作成する際にマルチ AZ を指定するだけでマルチ AZ 配置を作成できます。コンソールを使用し、DB インスタンスを変更してマルチ AZ オプションを指定することで、既存の DB インスタンスをマルチ AZ 配置に変換できます。AWS CLI または Amazon RDS API を使用してマルチ AZ 配置を指定することもできます。create-db-instance または modify-db-instance CLI コマンドを使用するか、CreateDBInstance または ModifyDBInstance API オペレーションを使用します。

3つの変更方法があります。

  1. コンソール
  2. CLI
  3. API

今回はコンソールからの変更手順をやってみます。

変更手順

実際に変更していきますが、上記の注意点を理解したうえで関係者には必ず確認をとってから変更してください。また、マルチAZはコストが高くなりますので、料金 - Amazon RDS | AWSなどで料金も確認してください。

まずはRDSのコンソールに移動します。

DBインスタンスをクリックします。

変更対象のインスタンスを選択し、変更をクリックします。

可用性と耐久性の項目で、スタンバイインスタンスを作成するを選択します。

画面最下部の続行をクリックします。

確認画面でマルチAZがありになっていることを確認します。
変更のスケジューリングは次のメンテナンスとすぐに適用から選択できます。今回はすぐに適用させます。
パフォーマンスへの影響は冒頭で説明した通りなので、問題なければDBインスタンスを変更をクリックしましょう。

コンソール上ではステータスが変更中になりました。

10分ほど待つとステータスが利用可能になりました。マルチAZもありになっています。

イベントにも記録されていました。

以上でマルチAZへの変更は完了です!超簡単ですね!

シングルAZへの変更

せっかくなのでマルチAZからシングルAZに戻してみたいと思います。こちらも手順は簡単です。

マルチAZへの変更時と同様にDBインスタンスの変更から可用性と耐久性の項目を変更します。
シングルAZに変更する場合はスタンバイインスタンスを作成しないでくださいを選択しましょう。

画面下部の続行をクリックします。

マルチAZ配置がなしになっていることを確認し、すぐに適用を選択してDBインスタンスを変更をクリックします。

ステータスが変更中になります。

5分ほどでステータスが利用可能になりました。マルチAZもなしになっています。

こちらもイベントに記録されています。

以上がマルチAZからシングルAZに変更する手順です。

まとめ

今回はRDSのデータベースをシングルAZからマルチAZに変更する手順を紹介しました。シングルAZへの変更はおまけです。どちらの変更もコンソール上から数クリックするだけで簡単にでき、ダウンタイムがないのがうれしいですね。
これだけ簡単にできるので、開発中はコストを抑えるためにシングルAZ、本番稼働が始まるタイミングでマルチAZにするという手法が多いようです。要件に合わせて使い分けていきましょう!
最後に、何度も言いますがマルチAZへの変更によるパフォーマンスへの影響やコストについてはドキュメントなどをしっかりと読み、理解したうえで変更を実施しましょう。

Discussion