- 公開日
- 最終更新日
【Amazon RDS】マルチAZ構成の設定方法
この記事を共有する
目次
はじめに
パーソル&サーバーワークスの めんらい です。
今回はAWSをこれから触るor触り始めの方向けに、Amazon RDS(以下、RDS)での
マルチAZ構成の設定方法を書いていこうと思います。
また、マルチAZ構成の設定後に、実際にDBインスタンスを手動フェイルオーバーしてみて、テストデータが保持されている(レプリケーションされている)ことも確認してみます。
※RDS構築記事の続きからを意識して書いています。
本記事の目的
- RDSでのマルチAZ構成の設定方法を知る
- マルチAZ構成時のDBインスタンスの手動フェイルオーバーの方法を知る
前提
- AWSマネジメントコンソールへのログインができること
- 東京リージョンを利用
- Amazon VPC(以下、VPC)構築済み(VPCはこちらの記事の構成)
- Amazon EC2(以下、EC2)構築済み(EC2はこちらの記事の構成)
- RDS 構築済み(RDSはこちらの記事の構成)
マルチAZ構成(マルチAZ配置)とは?
- 複数のAvailability Zone(以下、AZ)にEC2 インスタンスやRDS インスタンスを分散して配置することで、高可用性を実現した構成のこと
- RDS では、標準の機能を使用してマルチAZ構成を設定することが可能
ハンズオン
1. 事前準備(テストデータの準備)
※既にテストデータがある場合は、本手順は不要
- AWSマネジメントコンソールにログインして、右上のリージョン選択箇所にて[東京]リージョンを選択する

- 構築済みのEC2 からRDS に接続する
mysql -h <RDSエンドポイント> -u admin -p
- 以下コマンドを実行してデータベース一覧を確認する
show databases;

- 以下コマンドを実行してtestdbデータベースを使用する
use testdb;
- 以下コマンドを実行してテストテーブルを作成し、データを挿入する
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100));
INSERT INTO users (name, email) VALUES ('Menrai Menrai', 'menrai.menrai@example.com');
INSERT INTO users (name, email) VALUES ('Enrai Menrai', 'enrai.menrai@example.com');
- 以下コマンドを実行してデータが正常に挿入されたことを確認する
SELECT * FROM users;
- 以下コマンドを実行してRDSから切断する
quit
2. 変更前の設定情報の確認
- 左上の検索バーにて[Aurora and RDS]を検索して開く

- 左のナビゲーションペインから[データベース]をクリックした後、作成したDBインスタンスの識別子をクリックする

- [接続とセキュリティ]タブをクリックし、「リージョンとAZ」の情報を確認する(以下例の場合、ap-northeast-1a となっている)

- [設定]タブをクリックし、「マルチAZ」の情報が「なし」であることを確認する

3. マルチAZ配置有効化(スタンバイインスタンス作成)
- DBインスタンスの詳細画面から、[変更]をクリックする

- 設定画面をスクロールし、「マルチAZ配置」を「スタンバイインスタンスを作成する(本番環境向けに推奨)」にする

- 設定画面をスクロールし、[続行]をクリックする

- 「変更のサマリー」で意図通りの変更であるか確認した後、「変更のスケジュール」を「すぐに適用」にして[DBインスタンスを変更]をクリックする

- 数分待ち、ステータスが「利用可能」になったのを確認する


- [設定]タブをクリックし、「マルチAZ」の情報が「あり」であることを確認する

- [ログとイベント]タブをクリックし、「最近のイベント」にマルチAZ配置の設定が完了した旨が記載されていることを確認する

4. フェイルオーバーしてみる
- データベースの管理画面に戻り、作成したDBインスタンスを選択した上で、[アクション]>[再起動]をクリックする(再起動することでフェイルオーバーが実行されます)

- 「フェイルオーバーで再起動しますか?」にチェックを入れ、[確認]をクリックする

- 数分待ち、ステータスが「利用可能」になったのを確認する


- DBインスタンスの詳細画面から、「リージョンとAZ」が設定変更前の値と変わっていること(以下例の場合、ap-northeast-1cとなっている)、[ログとイベント]タブでフェイルオーバーが完了していることを確認する

- EC2 からRDS に再度接続し、「1. 事前準備(テストデータの準備)」で挿入したテストデータがあることを確認する
mysql -h <RDSエンドポイント> -u admin -p
show databases;
use testdb;
SELECT * FROM users;

まとめ
今回は、RDS でのマルチAZ構成の設定方法と、実際にフェイルオーバーしたときにデータが保持されている(レプリケーションされている)ことを確認しました。
DBインスタンスの冗長構成を容易に設定できることを学べたのではないかと思います。
ただし、マルチAZ構成では、DBインスタンスが常に2台稼働していることになるので、AWSの利用料金も2倍になることに注意しましょう。
また、本番環境でフェイルオーバーを実行する場合には、その他のリソースや、エンドユーザーへの影響がないかを確認しましょう。
メンテナンスの時間を設けた上で実行が安全かと思いますので、こちらも注意するようにしましょう。
この記事は私が書きました
めんらい
記事一覧め の人です
AWSを日々勉強中です
フロリダ旅行を目指して頑張っています