CDP:Complex Searcherパターン
提供:AWS-CloudDesignPattern
更新DBと異なるDBエンジンでの検索
目次 |
解決したい課題
「世界でもっとも普及している、オープン ソース データベース」であるMySQLは、本来様々なストレージ・エンジンを使用でき、様々な検索特性に変更できる。しかし、クラウド環境でサービスとして提供している物では、ほとんどの場合MyISAMはInnnoDBしか使用できない。 好きなストレージエンジンを使用する場合は、自前でMySQLの運用など行わなければいけない。
クラウドでの解決/パターンの説明
MySQLでは、標準機能でMaster-Slaveのレプリケーション構成を構築できる。Masterにクラウドで提供しているDBサービスを使用し、バックアップ等の運用の手間を軽減し、Slaveを自前で構築し、自由にストレージエンジンを構成する。
実装
AWSでは、RDBMSサービスの「RDS」が使用でき、他のMySQLへレプリケーションできる。RDSをMasterにし、別途EC2にインストールしたMySQLへレプリケーションする。
- RDSをMasterとして作成する。
- EC2へMySQLをインストールし、好きなストレージエンジンで構成する。
- RDSからMySQL on EC2へレプリケーションを行う。
構造
利点
- 好きなストレージエンジンで検索できるので、全文検索(mroonga)等を高速に行える。
- バックアップ等の運用管理の手間が軽減される。
注意点
- EC2上のMySQLはSPOFにならないように複数台構成することが望ましい。
- ストレージエンジンによってはINSERT/UPDATEが不得意なものがあるため、レプリケーションが詰まる可能性がある。
- レプリケーション対象は、インスタンス全体ではなく対象のDBに絞る必要がある。
その他
- 未検証ではあるが、DWH用ストレージエンジンを使用すれば集計処理を高速に行うことも可能になる。
- Attunity ReplicateやTungsten Replicator等のレプリケーションソフトウェアを使用すれば、同様の構成をRDS->Redshiftで可能になる。