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へレプリケーションを行う。

構造

ComplexSearcher.jpg

利点

  • 好きなストレージエンジンで検索できるので、全文検索(mroonga)等を高速に行える。
  • バックアップ等の運用管理の手間が軽減される。

注意点

  • EC2上のMySQLはSPOFにならないように複数台構成することが望ましい。
  • ストレージエンジンによってはINSERT/UPDATEが不得意なものがあるため、レプリケーションが詰まる可能性がある。
  • レプリケーション対象は、インスタンス全体ではなく対象のDBに絞る必要がある。

その他

  • 未検証ではあるが、DWH用ストレージエンジンを使用すれば集計処理を高速に行うことも可能になる。
  • Attunity ReplicateやTungsten Replicator等のレプリケーションソフトウェアを使用すれば、同様の構成をRDS->Redshiftで可能になる。
個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス