マルチAZとクロスリージョンレプリケーションの違い
2019-11-6 |
2020-5-14 |
2 min read
Contents
この記事は、1年間更新されておりません。
つい最近、表題について調べることが合ったため、忘備録として記載しておきます。
違いについて
結論から書くと、
- クロスリージョンレプリカはサブがリードレプリカなのに対して、マルチ AZ ではスタンバイレプリカになっている
- クロスリージョンレプリカは複数リージョンを利用するのに対し、マルチ AZ では同一リージョンを利用する
が大きな違いかなと思います。
MultiAZ 構成について
RDS をマルチ AZ 構成で起動すると Master とは別の AZ に Slave の RDS が立ち上げられ、同期レプリケーションが行われます。俗に言う Master-Slave 構成。
Master がサーバダウンすれば、Slave くんが変わりに担当してくれるわけです。
クロスリージョンレプリケーションについて
名の通り、複数のリージョンにまたがって RDS を建てる仕組みのことです。
各リージョンには、リードレプリカが設置されて、Master がダウンすると、リードレプリカくんが代わりに担当してくれます。
え?じゃあ MultiAZ よりもいいんじゃね?
そうなんです、MultiAZ はオワコンです。
と思っていた時期が私にもありました。
クロスリージョンを行うには以下の制約があります。
MySQL
PostgreSQL
MariaDB
Amazon Aurora MySQL DB
にしか適応できない- リージョン間の通信の遅延時間が長くなる
- Amazon RDS のデータ転送料金が発生する
- VPC が 5 つを超えるクロスリージョンリードレプリカのインスタンスについては保証されていない(ACL に制限が あるため)
- 昇格プロセスが完了するまで数分以上かかる場合がある
- RDS のリードレプリカは昇格するとスタンドアロンの RDS になるため、一般的なマスタ-スレイブ構成のようにフェールバックができない
とりあえずクロスリージョンにすれば良いというわけでもないのです。
コストや時間、RDS の DB エンジンなども考慮に入れないとベストな選択はできなさそうです。
昇格プロセスについては、数分かかると AWS のドキュメントに記載してあったので、書いてます。
具体的に MultiAZ とクロスリージョンとで、起動にどれぐらいの差があるかは気になりますね。
気が向いたら検証してみます。
さいごに
DB の重要性やコスト感を考えて運用していくことが大事。
ユースケースに合ったモデルを選びましょう。