みんな大好き“全文検索 on AWS”
を試してみました!in JAWS-UG 千葉團 Vol.1
2013/08/31@maroon1st
お前誰よ?@maroon1st某 SIer に勤務してます。JAWS-UG 横浜 コアメンバー大学時代は千葉人でした
好きなサービス: RDS 、 IAM好きな CDP : Scheduled Scale Out パターン
とは• 全文検索エンジン” groonga” がベースの
MySQL のストレージエンジン• 日本語が使える!
( MySQL の FULLTEXT Index は日本語がダメ)
MySQL のストレージンエンジン↓
自分で MySQL 運用するの面倒臭い冗長化とか大変
↓MySQL なら RDS でしょ!
でも RDS は好きなストレージエンジンが
使えない、、、
最近 RDS が MySQL5.6 に対応したけど、実は” REPLICATION SLAVE” 権限が増えてます。
だったら、こんなのどう?
MySQLOn EC2
やってみたら、すんなり作れました。
普通にレプリケーションの設定をする。
CREATE TABLE test_1 (id INT PRIMARY KEY,content text,FULLTEXT INDEX (content));
Master 側RDS でテーブル作成
ALTER TABLE test_1
ENGINE = mroonga
COMMENT = 'engine "innodb"' ;
Slave 側ストレージエンジンを mroonga に変更
と思ったら、すぐエラーでレプリケーショ
ンがエラーで停止、、、
こんなエラー吐く
‘mysql.rds_heartbeat2’ テーブルが無いらしい。どうも RDS 特有のハートビートとかやってる。
Last_Error: Error 'Table 'mysql.rds_heartbeat2' doesn't exist' on query. Default database: ''. Query: 'INSERT INTO mysql.rds_heartbeat2(id, value) values (1,1377866550010) ON DUPLICATE KEY UPDATE value = 1377866550010'
もろもろ確認すると、• mysql データベースに RDS 用テーブルがあ
る。• RDS 用ユーザ” rdsadmin” がある。• RDS 用ストアドプロシージャがある。等の違いが有りました。
全部作るとRDS から自前の MySQL へ
レプリケーションがちゃんと動く!
これなら、RDS の堅牢性に
MySQL の柔軟性が!
頑張れば、こんな構成もイケそう
Availability Zone Availability Zone
App App
MySQL MySQL