みんな大好き“全文検索 on AWS”を試してみました!

22
みみみみみみ “みみみみ on AWS” みみみみみみみみin JAWS-UG みみみ Vol.1 2013/08/31 @maroon1st

description

2013年8月31日のJAWS-UG 千葉團のLT資料です。

Transcript of みんな大好き“全文検索 on AWS”を試してみました!

みんな大好き“全文検索 on AWS”

を試してみました!in JAWS-UG 千葉團 Vol.1

2013/08/31@maroon1st

お前誰よ?@maroon1st某 SIer に勤務してます。JAWS-UG 横浜 コアメンバー大学時代は千葉人でした

好きなサービス: RDS 、 IAM好きな CDP : Scheduled Scale Out パターン

今日のネタ

全文検索 on AWS

今時、全文検索と言ったら

でも

今日はカジュアルに

      とは• 全文検索エンジン” 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 へ

レプリケーションがちゃんと動く!

demo

これなら、RDS の堅牢性に

MySQL の柔軟性が!

頑張れば、こんな構成もイケそう

Availability Zone Availability Zone

App App

MySQL MySQL

ありがとうございました