CDP:DB Replicationパターン
From AWS-CloudDesignPattern
オンラインDBの複製
Contents |
解決したい課題
システムにとって重要なデータを守る方法として、データをデータベースに格納し、さらにデータベースのレプリケーションを行う方法がある。 これについては、多くのソフトウェア・ハードウェアベンダーが取り組んでおり、パターンとしては非常に典型的なものとなるが、従来はコストの関係上、 1つのデータセンター内で、何台かのディスクやサーバをレプリケーションするという対応が大半であった。 しかしながら、9.11や東日本大震災のような大規模な人災や天災により、データセンターごと損傷を受けるケースが現実に発生しており、 地理的ロケーションをまたいだレプリケーションを行う必要も多くなっている。
クラウドでの解決/パターンの説明
このパターンはデータロストを防ぐ事と、データアクセスの可用性を担保するためのものである、 クラウド以前からもあったパターンであるが、クラウドを用いることで非常に安価に複数の地理的ロケーションを利用する事ができるようになり、 現実的な選択肢となった。 クラウドデザインパターンではあえてDBレプリケーションを地理的に離れた場所へのレプリケーションも考慮したパターンとして、 改めて扱っている。
実装
AWSにはアベイラビリティゾーンと呼ばれる、異なるデータセンターに透過的にEC2を配置して利用できる仕組みが用意されている。 また、リージョンと呼ばれる様々な地域で利用することも容易に可能となっており、それらにEC2を配置し、レプリケーションを行うこととなる。 アベイラビリティゾーン間のレプリケーションはRDSのMulti-AZを利用すると容易に実現できる。
- 2台のEC2を、それぞれ地理的ロケーションが異なるアベイラビリティゾーンに配置する。
- それぞれのEC2にRDBMSをインストールし、レプリケーション設定を行う。(RDSのMulti-AZ機能で実現することも可能)
- またDisaster Recoveryを目的とする場合は、地理的に大きく離れた場所(別リージョン)のDBに対してレプリケーション設定を行う。
構造
利点
- 災害や障害発生時でも、データをロストすることなく業務を継続できる
- DBへのパッチやフィックス適用時も、切り替えながら行う事で無停止で行える
注意点
- 別リージョンのDBへレプリケーションを行う場合、同期型のレプリケーションを使用するとパフォーマンスが落ちるケースがあるため、その場合は非同期レプリケーションや定期的なレプリケーションを利用する方法を検討する必要がある。