AWSでRDS使いつつ全文検索もしたい!(CDP新提案)
本日はCDP Advent Calendar 2013 on Zusaarの7日目のエントリを書きます
毎年AWSは相も変わらず、新機能ラッシュですね。今年は個人的にRDS関連の新機能が目立った気がします。Read ReplicaのMaster昇格やリージョン間スナップショットコピー、PostgreSQL対応など盛りだくさんでした。
今日は、RDSを使ってCDPの新提案してみます。
ここからは、CDPのテンプレートに則って書いて行きます。
CDPの内容
解決したい課題
「世界でもっとも普及している、オープン ソース データベース」であるMySQLは、本来様々なストレージ・エンジンを使用でき、様々な検索特性に変更できる。しかし、クラウド環境でサービスとして提供している物では、ほとんどの場合MyISAMはInnnoDBしか使用できない。
好きなストレージエンジンを使用する場合は、自前でMySQLの運用など行わなければいけない。
クラウドでの解決/パターンの説明
MySQLでは、標準機能でMaster-Slaveのレプリケーション構成を構築できる。Masterにクラウドで提供しているDBサービスを使用し、バックアップ等の運用の手間を軽減し、Slaveを自前で構築し、自由にストレージエンジンを構成する。
構造
利点
- 好きなストレージエンジンで検索できるので、全文検索(mroonga)等を高速に行える。
- バックアップ等の運用管理の手間が軽減される。
注意点
その他
- 未検証ではあるが、DWH用ストレージエンジンを使用すれば集計処理を高速に行うことも可能になる。
- Attunity Replicate等のソフトウェアを使用すれば、同様の構成をRDS->Redshiftで可能になる。
まとめ
実は、JAWS-UG 千葉團の第1回でやったLTネタ(みんな大好き“全文検索 on AWS”を試してみました!)をまとめた物です。
名付けて、"Complex Searcher パターン"!
これは、id:understeer さんが、RDS: MySQL5.6 のbinlogアクセス権限 - aws memo でRDSにMySQL 5.6が使えるようになったら、REPLICATION SLAVE権限が使えるようになってたと書いていたの覚えていたのが始まりでした。その後、ElasticSearchとか検索エンジンが盛り上がってきましたが、カジュアルに使うならmroongaだろ!と思ったので、このパターンを思いつきました。