SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Dockerイメージで誰でも気軽に
Mroonga体験
2017/02/09
yoku0825
Groonga Meatup 2017
\こんばんは/
yoku0825@GMOメディア株式会社
オラクれない-
ポスグれない-
マイエスキューエる-
⽣息域
Twitter: @yoku0825-
Blog: ⽇々の覚書-
MyNA ML: ⽇本MySQLユーザ会-
MySQL Casualʼs Slack: MySQL Casual-
1/22
このトークのゴール
Mroongaを使っている/使ってみたい⼈に
より簡単に検証やテストができる環境として
Dockerイメージを使ってみようかなと思ってもらう
2/22
弊社はMroonga派です
全⽂検索、基本は検索も更新もMroonga
5年以上前(Mroonga 2.x)からのユーザーです-
最近、マスターはInnoDB/スレーブがMroongaの構成や-
検索がgroonga-httpdとの⼆⼑流もあります-
エム-ルンガと発⾳すると、アール-ルンガと区別しやすいで
す
が、別に社内にアール-ルンガ使ってないので迷うことはないです-
エヌ-ルンガ使ってる⼈いたらごめんなさい-
3/22
このトークの中での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 start
sudo docker pull groonga/mroonga
sudo docker run -d groonga/mroonga
mysql -h 172.17.0.2 -uroot
SHOW PLUGINS;
6/22
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, groonga-normalizer-mysql込みのオ
ールインワン
-
豊富なバージョンが揃っている
原則、mysql-community-mroongaの全バージョンをサポート-
-v オプションで既存の(ホスト側の)データディレクトリ
ーをマウント可能
データディレクトリーをあらかじめ複製やスナップショットしておけ
ば、何度でも同じデータでテストができる
-
10/22
MroongaのDockerイメージを使ってやらない⽅がいい
こと
本番での運⽤
それを考慮したつくりにはなっていません(セキュリティーとか)-
ガチなベンチマークテスト
Dockerコンテナーであることで何らかの制約を受けるかと思うので、
ゴリッと数字を出すベンチマークには不向きだと思う
-
11/22
ちょっと便利な使い⽅
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 /path/to/host/dir:/var/lib/mysql 
groonga/mroonga
15/22
ちょっと便利な使い⽅
datadirマウントの応⽤でMroongaイメージに⾃前のmy.cnf
を⾷わせる
sudo docker run -d 
-v /path/to/my/cnf:/etc/my.cnf 
groonga/mroonga
16/22
ちょっと便利な使い⽅
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
ワンランク上の使い⽅
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
オススメの使い⽅
ちょっとしたテスト環境に
ウインドーズ派なので、VirtualBoxの中にCentOS 7.2のVMを飼って
その中でdockerしていますがその程度の⽤途なら問題なく
-
個⼈的にユニットテストととても相性が良い-
他のメンバーとテスト環境を共有できる
物理的な意味での共有ではなく、全員が(簡単な)同じ⽅法で同じコ
ンテナーを起動できる
-
Dockerを使うとっかかりに
いきなり新しい技術だと思うとコスト⾼く感じるけれど、⾒知ったソ
フトウェアの⼊ったコンテナーからなら気軽にいじれる
-
OSSに貢献する
新しいバージョンをサポートするDockerfileを書いてPull-Reqするだ
けであなたもOSSのコントリビューターに︕
-
19/22
Examples of Suggestions and Contributions
レプリケーション構成を試したいから、binlogとserver̲id
を振ったmy.cnfにするとか
groonga-httpdとの⼆⼑流を試したいからgroonga-httpdも
⼀緒に⼊れるとか
今のところDDLしかテストしてないけどDMLもテストする
とか
おや、そういえば今⽇は⾁の⽇で、Mroongaのバージョン
アップがあったんじゃなかったっけ…︖
20/22
このトークのゴール
Mroongaを使っている/使ってみたい⼈が
より簡単に検証やテストができる環境として
Dockerイメージを使ってみようかと思ってもらえました
か︖
21/22
Thank
you!!
22/22

Más contenido relacionado

La actualidad más candente

Scalaのコンパイルを3倍速くした話
Scalaのコンパイルを3倍速くした話Scalaのコンパイルを3倍速くした話
Scalaのコンパイルを3倍速くした話
tod esking
 
○○大学の本当にあった怖い話
○○大学の本当にあった怖い話○○大学の本当にあった怖い話
○○大学の本当にあった怖い話
idkqh7 Nishino
 

La actualidad más candente (20)

あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
MroongaとPGroonga
MroongaとPGroongaMroongaとPGroonga
MroongaとPGroonga
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Postgresql 12 streaming replication hol
Postgresql 12 streaming replication holPostgresql 12 streaming replication hol
Postgresql 12 streaming replication hol
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
 
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
 
MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
Scalaのコンパイルを3倍速くした話
Scalaのコンパイルを3倍速くした話Scalaのコンパイルを3倍速くした話
Scalaのコンパイルを3倍速くした話
 
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りRubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入り
 
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
 
○○大学の本当にあった怖い話
○○大学の本当にあった怖い話○○大学の本当にあった怖い話
○○大学の本当にあった怖い話
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
 

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

Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
yamanekko
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2
Yasukazu Kawasaki
 
エンプラはつらいよ~クラウド提案時に気を付けるポイント~
エンプラはつらいよ~クラウド提案時に気を付けるポイント~エンプラはつらいよ~クラウド提案時に気を付けるポイント~
エンプラはつらいよ~クラウド提案時に気を付けるポイント~
normalian
 

Similar a Dockerイメージで誰でも気軽にMroonga体験 (20)

Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Black jumbodogをcoreclrで動かしてみた
Black jumbodogをcoreclrで動かしてみたBlack jumbodogをcoreclrで動かしてみた
Black jumbodogをcoreclrで動かしてみた
 
Mroonga 20131129
Mroonga 20131129Mroonga 20131129
Mroonga 20131129
 
Mroonga de fts
Mroonga de ftsMroonga de fts
Mroonga de fts
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
 
Groonga Meetup 2014/04/29
Groonga Meetup 2014/04/29Groonga Meetup 2014/04/29
Groonga Meetup 2014/04/29
 
mikasafabric for MySQL
mikasafabric for MySQLmikasafabric for MySQL
mikasafabric for MySQL
 
Mroonga Meetup 2014/06/29
Mroonga Meetup 2014/06/29Mroonga Meetup 2014/06/29
Mroonga Meetup 2014/06/29
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
 
mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2
 
エンプラはつらいよ~クラウド提案時に気を付けるポイント~
エンプラはつらいよ~クラウド提案時に気を付けるポイント~エンプラはつらいよ~クラウド提案時に気を付けるポイント~
エンプラはつらいよ~クラウド提案時に気を付けるポイント~
 
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷java
 
Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告
 
COD2013「ネットワーク パケット解析・基本の基本」
COD2013「ネットワーク パケット解析・基本の基本」COD2013「ネットワーク パケット解析・基本の基本」
COD2013「ネットワーク パケット解析・基本の基本」
 
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script exampleIntroduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
 
magmaのトレーニングコースを受講してみた
magmaのトレーニングコースを受講してみたmagmaのトレーニングコースを受講してみた
magmaのトレーニングコースを受講してみた
 

Más de yoku0825

MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
yoku0825
 

Más de yoku0825 (20)

逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
 
わかった気になるMySQL
わかった気になるMySQLわかった気になるMySQL
わかった気になるMySQL
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターン
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plus
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLは
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具
 
MHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQLMHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQL
 
5.7の次のMySQL
5.7の次のMySQL5.7の次のMySQL
5.7の次のMySQL
 
とあるイルカの近況報告
とあるイルカの近況報告とあるイルカの近況報告
とあるイルカの近況報告
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
 
MySQLと正規形のはなし
MySQLと正規形のはなしMySQLと正規形のはなし
MySQLと正規形のはなし
 
MySQLおじさんの逆襲
MySQLおじさんの逆襲MySQLおじさんの逆襲
MySQLおじさんの逆襲
 
地雷職人の朝は早い
地雷職人の朝は早い地雷職人の朝は早い
地雷職人の朝は早い
 

Último

Último (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

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