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.
Dockerイメージで誰でも気軽に
Mroonga体験
2017/02/09
yoku0825
Groonga Meatup 2017
\こんばんは/
yoku0825@GMOメディア株式会社
オラクれない-
ポスグれない-
マイエスキューエる-
⽣息域
Twitter: @yoku0825-
Blog: ⽇々の覚書-
MyNA ML: ⽇本MySQLユーザ会-
MySQL C...
このトークのゴール
Mroongaを使っている/使ってみたい⼈に
より簡単に検証やテストができる環境として
Dockerイメージを使ってみようかなと思ってもらう
2/22
弊社はMroonga派です
全⽂検索、基本は検索も更新もMroonga
5年以上前(Mroonga 2.x)からのユーザーです-
最近、マスターはInnoDB/スレーブがMroongaの構成や-
検索がgroonga-httpdとの⼆⼑流もあり...
このトークの中でのDockerの⽴ち位置
Linuxの中に仮想マシンみたいなコンテナを⽴ち上げてくれ
る何か
Vagrantを知ってる⼈ならまさにその⽤途
これ以上突っ込んだ話や本番環境で使う話とかしません
4/22
このトークの中でのDockerの⽴ち位置
Linuxマシン
docker
コンテナ
mysqld
仮想IP
コンテナ
mysqld
仮想IP
application
5/22
DockerイメージでMroonga体験
Dockerをセットアップ
us-eastのAmazon Linux AMI 2016.09.1にて-
sudo yum install docker mysql
sudo service docker...
3分でで
きた
7/22
DockerイメージはDocker Hubに
8/22
AUTOMATED BUILD
DockerfileはGitHubのリポジトリーにあります
mroonga/docker: Dockerfile for Mroonga-
Patches welcome!!
9/22
MroongaのDockerイメージを使ってできること
簡単にクリーンなMroongaが⽴ち上げられる
もともとはバグレポートの時のクリーンな再現環境として作り始めた-
すぐに使い始められる
groonga-tokenizer-mecab, g...
MroongaのDockerイメージを使ってやらない⽅がいい
こと
本番での運⽤
それを考慮したつくりにはなっていません(セキュリティーとか)-
ガチなベンチマークテスト
Dockerコンテナーであることで何らかの制約を受けるかと思うので、
ゴ...
ちょっと便利な使い⽅
MySQL + Mroongaのバージョンを指定して起動する
sudo docker run -d groonga/mroonga:mysql5623_mroonga410
12/22
Dockerイメージが対応しているバージョン
MySQL 5.6はMroonga4.10と5.06以降に対応
MySQL 5.7はMroonga 5.09以降に対応
13/22
Dockerイメージが対応しているバージョン
14/22
ちょっと便利な使い⽅
ホストのdatadirをコンテナーの /var/lib/mysql にマウント
する
またはコンテナーの /var/lib/mysql をホストのどこかにマ
ウントする
sudo docker run -d 
-v /pa...
ちょっと便利な使い⽅
datadirマウントの応⽤でMroongaイメージに⾃前のmy.cnf
を⾷わせる
sudo docker run -d 
-v /path/to/my/cnf:/etc/my.cnf 
groonga/mroonga
...
ちょっと便利な使い⽅
Mroongaイメージにmysqldのオプションを渡す
sudo docker run -d 
groonga/mroonga 
--log-bin=mysql-bin 
--server-id=2 
--log-slav...
ワンランク上の使い⽅
Mroongaイメージの上に初期データを投⼊して新たなイメ
ージを作る
vim Dockerfile
---
FROM groonga/mroonga:latest
COPY init.sql /var/lib/mysql...
オススメの使い⽅
ちょっとしたテスト環境に
ウインドーズ派なので、VirtualBoxの中にCentOS 7.2のVMを飼って
その中でdockerしていますがその程度の⽤途なら問題なく
-
個⼈的にユニットテストととても相性が良い-
他のメン...
Examples of Suggestions and Contributions
レプリケーション構成を試したいから、binlogとserver̲id
を振ったmy.cnfにするとか
groonga-httpdとの⼆⼑流を試したいからgroo...
このトークのゴール
Mroongaを使っている/使ってみたい⼈が
より簡単に検証やテストができる環境として
Dockerイメージを使ってみようかと思ってもらえました
か︖
21/22
Thank
you!!
22/22
Upcoming SlideShare
Loading in …5
×

Dockerイメージで誰でも気軽にMroonga体験

3,115 views

Published on

2017/02/09 Groonga Meatup 2017

Published in: Technology
  • Be the first to comment

Dockerイメージで誰でも気軽にMroonga体験

  1. 1. Dockerイメージで誰でも気軽に Mroonga体験 2017/02/09 yoku0825 Groonga Meatup 2017
  2. 2. \こんばんは/ yoku0825@GMOメディア株式会社 オラクれない- ポスグれない- マイエスキューエる- ⽣息域 Twitter: @yoku0825- Blog: ⽇々の覚書- MyNA ML: ⽇本MySQLユーザ会- MySQL Casualʼs Slack: MySQL Casual- 1/22
  3. 3. このトークのゴール Mroongaを使っている/使ってみたい⼈に より簡単に検証やテストができる環境として Dockerイメージを使ってみようかなと思ってもらう 2/22
  4. 4. 弊社はMroonga派です 全⽂検索、基本は検索も更新もMroonga 5年以上前(Mroonga 2.x)からのユーザーです- 最近、マスターはInnoDB/スレーブがMroongaの構成や- 検索がgroonga-httpdとの⼆⼑流もあります- エム-ルンガと発⾳すると、アール-ルンガと区別しやすいで す が、別に社内にアール-ルンガ使ってないので迷うことはないです- エヌ-ルンガ使ってる⼈いたらごめんなさい- 3/22
  5. 5. このトークの中でのDockerの⽴ち位置 Linuxの中に仮想マシンみたいなコンテナを⽴ち上げてくれ る何か Vagrantを知ってる⼈ならまさにその⽤途 これ以上突っ込んだ話や本番環境で使う話とかしません 4/22
  6. 6. このトークの中でのDockerの⽴ち位置 Linuxマシン docker コンテナ mysqld 仮想IP コンテナ mysqld 仮想IP application 5/22
  7. 7. DockerイメージでMroonga体験 Dockerをセットアップ us-eastのAmazon Linux AMI 2016.09.1にて- sudo yum install docker mysql sudo service docker start sudo docker pull groonga/mroonga sudo docker run -d groonga/mroonga mysql -h 172.17.0.2 -uroot SHOW PLUGINS; 6/22
  8. 8. 3分でで きた 7/22
  9. 9. DockerイメージはDocker Hubに 8/22
  10. 10. AUTOMATED BUILD DockerfileはGitHubのリポジトリーにあります mroonga/docker: Dockerfile for Mroonga- Patches welcome!! 9/22
  11. 11. MroongaのDockerイメージを使ってできること 簡単にクリーンなMroongaが⽴ち上げられる もともとはバグレポートの時のクリーンな再現環境として作り始めた- すぐに使い始められる groonga-tokenizer-mecab, groonga-normalizer-mysql込みのオ ールインワン - 豊富なバージョンが揃っている 原則、mysql-community-mroongaの全バージョンをサポート- -v オプションで既存の(ホスト側の)データディレクトリ ーをマウント可能 データディレクトリーをあらかじめ複製やスナップショットしておけ ば、何度でも同じデータでテストができる - 10/22
  12. 12. MroongaのDockerイメージを使ってやらない⽅がいい こと 本番での運⽤ それを考慮したつくりにはなっていません(セキュリティーとか)- ガチなベンチマークテスト Dockerコンテナーであることで何らかの制約を受けるかと思うので、 ゴリッと数字を出すベンチマークには不向きだと思う - 11/22
  13. 13. ちょっと便利な使い⽅ MySQL + Mroongaのバージョンを指定して起動する sudo docker run -d groonga/mroonga:mysql5623_mroonga410 12/22
  14. 14. Dockerイメージが対応しているバージョン MySQL 5.6はMroonga4.10と5.06以降に対応 MySQL 5.7はMroonga 5.09以降に対応 13/22
  15. 15. Dockerイメージが対応しているバージョン 14/22
  16. 16. ちょっと便利な使い⽅ ホストのdatadirをコンテナーの /var/lib/mysql にマウント する またはコンテナーの /var/lib/mysql をホストのどこかにマ ウントする sudo docker run -d -v /path/to/host/dir:/var/lib/mysql groonga/mroonga 15/22
  17. 17. ちょっと便利な使い⽅ datadirマウントの応⽤でMroongaイメージに⾃前のmy.cnf を⾷わせる sudo docker run -d -v /path/to/my/cnf:/etc/my.cnf groonga/mroonga 16/22
  18. 18. ちょっと便利な使い⽅ Mroongaイメージにmysqldのオプションを渡す sudo docker run -d groonga/mroonga --log-bin=mysql-bin --server-id=2 --log-slave-updates --enforce-gtid-consistency=ON --gtid-mode=ON 17/22
  19. 19. ワンランク上の使い⽅ Mroongaイメージの上に初期データを投⼊して新たなイメ ージを作る vim Dockerfile --- FROM groonga/mroonga:latest COPY init.sql /var/lib/mysql-files/init.sql RUN service mysqld start && mysql -uroot < /var/lib/mysql-files/init.sql && service mysqld stop RUN rm /var/lib/mysql/groonga.log /var/lib/mysql/auto.cnf --- sudo docker build -t myimage . sudo docker run -d myimage 18/22
  20. 20. オススメの使い⽅ ちょっとしたテスト環境に ウインドーズ派なので、VirtualBoxの中にCentOS 7.2のVMを飼って その中でdockerしていますがその程度の⽤途なら問題なく - 個⼈的にユニットテストととても相性が良い- 他のメンバーとテスト環境を共有できる 物理的な意味での共有ではなく、全員が(簡単な)同じ⽅法で同じコ ンテナーを起動できる - Dockerを使うとっかかりに いきなり新しい技術だと思うとコスト⾼く感じるけれど、⾒知ったソ フトウェアの⼊ったコンテナーからなら気軽にいじれる - OSSに貢献する 新しいバージョンをサポートするDockerfileを書いてPull-Reqするだ けであなたもOSSのコントリビューターに︕ - 19/22
  21. 21. Examples of Suggestions and Contributions レプリケーション構成を試したいから、binlogとserver̲id を振ったmy.cnfにするとか groonga-httpdとの⼆⼑流を試したいからgroonga-httpdも ⼀緒に⼊れるとか 今のところDDLしかテストしてないけどDMLもテストする とか おや、そういえば今⽇は⾁の⽇で、Mroongaのバージョン アップがあったんじゃなかったっけ…︖ 20/22
  22. 22. このトークのゴール Mroongaを使っている/使ってみたい⼈が より簡単に検証やテストができる環境として Dockerイメージを使ってみようかと思ってもらえました か︖ 21/22
  23. 23. Thank you!! 22/22

×