みなさん。こんばんは。サニービュー事業部の小寺です。
Amazon RDSマルチAZデプロイで読み取り可能なスタンバイインスタンス機能「マルチAZ DBクラスター」についてお伝えします。
マルチAZ DBクラスターとは
マルチAZ DBクラスターでは、3つの異なるアベイラビリティーゾーンにある1つのプライマリレプリカと2つの読み取り可能なスタンバイリードレプリカで構成されます。
プライマリ(ライター)DBインスタンスは、読み取りおよび書き込み操作ができ、すべてのデータ変更ができます。スタンバイ(リーダー)DBインスタンスは、プライマリのフェールオーバーターゲットとして機能し、読み取りトラフィックも提供されます。
よって、アプリケーションは、プライマリDBインスタンスからリーダーDBインスタンスへの読み取りトラフィックをオフロードして、アプリケーションの読み取りスループットを向上させることができます。
変更をコミットして適用するには、少なくとも1つのリーダーDBインスタンスから応答が確認できる必要があります。
マルチAZと何が違うの?
RDS には高可用性のためのオプションとして Multi-AZインスタンスが使われてきました。従来の Multi-AZオプションでは高可用性のために 2 つのAZにそれぞれインスタンスを配置して、片方を Active もう片方を Standby としてデータをレプリケートする仕組みでした。
待機系である Standbyにはアクセスすることはなく、AZ障害に備える目的として使われていて、そもそもフェイルオーバーではリカバリ処理が行われるので、切り替えにも時間がかかっています。
マルチAZ DBクラスターでは、最大2倍高速なトランザクションをコミットするレイテンシーと、通常は35秒未満の自動フェイルオーバー機能が提供されます。
既存インスタンスからマルチAZ DBクラスターに移行できる?
現状でRDS データベースを利用されていて、新しいマルチ AZ DB クラスターオプションを利用したい場合は、データベースのスナップショットを取得します。
スナップショット作成後に、このスナップショットを使って、マルチ AZ DB クラスター配置オプションを使用して、新しいデータベース クラスターを作成することができます。
マルチ AZ DB クラスターの接続はどう管理される?
マルチ AZ DB クラスターには、単一の DB インスタンスではなく、3 つの DB インスタンスがあります。各接続は特定の DB インスタンスで処理されます。
マルチ AZ DB クラスターに接続すると、指定したホスト名とポートがエンドポイントにポイントされます。
マルチ AZ DB クラスターは、エンドポイントメカニズムを使用してこれらの接続を抽象化します。そのため、一部の DB インスタンスが使用できないときにすべてのホスト名をコードに埋め込みしたり、接続のルート再設定を行うために独自のロジックをアプリ上でもつ必要がないです。
また、 各クラスターにはクラスター(読み取り/書き込み)エンドポイント、リーダーエンドポイント、そしてクラスター内の各DBインスタンスに関連付けられたインスタンスエンドポイントがあります。クラスタには異なるアベイラビリティーゾーンにライターインスタンスと2つのリーダーインスタンス用に3つの異なるAZのサブネットを用意しておく必要があります。
マルチ AZ DB クラスターの制限事項
・マルチ AZ DB クラスターは、プロビジョンド IOPS ストレージのみをサポートします。
・シングル AZ DB インスタンス配置やマルチ AZ DB インスタンス配置をマルチ AZ DB クラスターに変更することはできません。代わりに、シングル AZ DB インスタンス配置またはマルチ AZ DB インスタンス配置のスナップショットをマルチ AZ DB クラスターに復元することもできます。
・マルチ AZ DB クラスタースナップショットは、マルチ AZ DB インスタンス配置やシングル AZ 配置に復元することはできません。
・マルチ AZ DB クラスターは DB インスタンスレベルでの変更をサポートしていません。これは、すべての変更は DB クラスターレベルで行われるためです。
・マルチ AZ DB クラスターでは、次の機能はサポートされていません。
Amazon RDS Proxy
AWS CloudFormation
IPv6 接続のSupport(デュアルスタックモード)
マルチ AZ DB クラスタースナップショットデータを Amazon S3 バケットにエクスポートする
IAM DB authentication
Kerberos 認証
ポートの変更(別の方法として、マルチ AZ DB クラスターを特定の時点に復元し、別のポートを指定することもできます。)
オプショングループ
リードレプリカ
リザーブド DB インスタンス
マルチ AZ DB クラスタースナップショットを Amazon S3 バケットから復元する
割り当てられる最大ストレージを設定してストレージのオートスケーリング
または、ストレージを手動でスケールすることもできます。
DBクラスターの停止とスタート
マルチ AZ DB クラスターのスナップショットをコピーする
暗号化されていないマルチ AZ DB クラスターを暗号化する
・RDS for MySQL マルチ AZ DB クラスターは、外部ターゲットデータベースへの複製がサポートされない