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

5,380 views
5,166 views

Published on

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

Published in: Technology

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

  1. 1. みんな大好き “全文検索 on AWS” を試してみました! in JAWS-UG 千葉團 Vol.1 2013/08/31 @maroon1st
  2. 2. お前誰よ? @maroon1st 某SIerに勤務してます。 JAWS-UG横浜 コアメンバー 大学時代は千葉人でした 好きなサービス:RDS、IAM 好きなCDP:Scheduled Scale Outパターン
  3. 3. 今日のネタ 全文検索 on AWS
  4. 4. 今時、全文検索と言ったら
  5. 5. でも
  6. 6. 今日はカジュアルに
  7. 7. とは • 全文検索エンジン”groonga”がベースの MySQLのストレージエンジン • 日本語が使える! (MySQLのFULLTEXT Indexは日本語がダ メ)
  8. 8. MySQLのストレージンエンジン ↓ 自分でMySQL運用するの面倒臭い 冗長化とか大変 ↓ MySQLならRDSでしょ!
  9. 9. でも RDS は 好きなストレージエンジンが 使えない、、、
  10. 10. 最近RDSがMySQL5.6に対応したけど、 実は”REPLICATION SLAVE”権限が増えてます。
  11. 11. だったら、こんなのどう? MySQL On EC2
  12. 12. やってみたら、 すんなり作れました。
  13. 13. 普通にレプリケーションの設定をする。 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に変更
  14. 14. 動いた!
  15. 15. と思ったら、 すぐエラーでレプリケーショ ンが エラーで停止、、、
  16. 16. こんなエラー吐く ‘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'
  17. 17. もろもろ確認すると、 • mysqlデータベースにRDS用テーブルがあ る。 • RDS用ユーザ”rdsadmin”がある。 • RDS用ストアドプロシージャがある。 等の違いが有りました。
  18. 18. 全部作ると RDSから自前のMySQLへ レプリケーションが ちゃんと動く!
  19. 19. demo
  20. 20. これなら、 RDSの堅牢性に MySQLの柔軟性が!
  21. 21. 頑張れば、こんな構成もイケそ う Availability Zone Availability Zone App App MySQL MySQL
  22. 22. ありがとうございました

×