Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
みんな大好き
“全文検索 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”権限が増えてます。
だったら、こんなのどう?
MySQL
On EC2
やってみたら、
すんなり作れました。
普通にレプリケーションの設定をする。
CREATE TABLE test_1 (
id INT PRIMARY KEY,
content text,
FULLTEXT INDEX (content)
);
Master側
RDSでテーブル作成
...
動いた!
と思ったら、
すぐエラーでレプリケーショ
ンが
エラーで停止、、、
こんなエラー吐く
‘mysql.rds_heartbeat2’テーブルが無いらしい。
どうもRDS特有のハートビートとかやってる。
Last_Error: Error 'Table 'mysql.rds_heartbeat2' doesn't
...
もろもろ確認すると、
• mysqlデータベースにRDS用テーブルがあ
る。
• RDS用ユーザ”rdsadmin”がある。
• RDS用ストアドプロシージャがある。
等の違いが有りました。
全部作ると
RDSから自前のMySQLへ
レプリケーションが
ちゃんと動く!
demo
これなら、
RDSの堅牢性に
MySQLの柔軟性が!
頑張れば、こんな構成もイケそ
う
Availability Zone Availability Zone
App App
MySQL MySQL
ありがとうございました
Upcoming SlideShare
Loading in …5
×

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

7,078 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. ありがとうございました

×