はじめに
Elasticsearchはオープンソースですので、いつでもどこでも自由に機能を試すことができます。過去にもdocker composeで簡単に立ち上げる記事を記載してきました。
https://qiita.com/takeo-furukubo/items/c2f194679afadc06a4e9
これでも問題ないのですが、ElasticがGitHubにStart Localというリポジトリを作成しました。
https://github.com/elastic/start-local
これが非常に便利で、Elasticsearchクラスタをコマンド一発で立ち上げてくれます。
GitHubのREADMEを読めば何の問題もありませんが、ここでも解説をしておきます。
因みに似たようなものでelastic-packageというのもあります。これはIntegrationの開発などで使うことを想定していますが、中でやっていることはほぼ同じです。
ブログがありますのでこちらも参考にしてください。
https://qiita.com/daixque/items/819b03bfa19acd371af6
試した環境
Macbook Pro M3
Sonoma 14.7
docker composeを使いますので、インストールしておいてください。
勿論Linuxでも動きます。
WindowsだとWSLが必要です。
ライセンス
Trialライセンスです。30日間はすべての機能を使用できます。30日過ぎるとBasicになります。
手順
起動
本当にコマンド一つです。
curl -fsSL https://elastic.co/start-local | sh
shの中を見るとわかりますが、やっていることは以下のことです。
-
elastic-start-local
というフォルダ名作成 - 環境の確認
- docker-compose.ymlの作成
- start/stop/uninstall用のshファイル作成
- コンテナ起動
- API key/passwordを含めた
.env
ファイル作成
HTTPSは使用されていません。
問題なく実行されると以下のようにパスワードとAPI Keyが表示されます。
パスワードはランダム作成なので以下のものは使えません(当たり前ですが)
🌐 Open your browser at http://localhost:5601
Username: elastic
Password: Y4cmdo3Q
🔌 Elasticsearch API endpoint: http://localhost:9200
🔑 API key: OE50MW1KSUJhYk5CMFp0TFRVLW86bkR1S1Y4MEJTbENtbGh2UFBvaUF6QQ==
起動するとコンテナが2つ立ち上がります。elastic-start-local
フォルダに移ってdocker compose ps
を実行すると以下のようになります。
elastic-start-local % docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
es-local-dev docker.elastic.co/elasticsearch/elasticsearch:8.15.2 "/bin/tini -- /usr/l…" elasticsearch 7 minutes ago Up 7 minutes (healthy) 127.0.0.1:9200->9200/tcp, 9300/tcp
kibana-local-dev docker.elastic.co/kibana/kibana:8.15.2 "/bin/tini -- /usr/l…" kibana 7 minutes ago Up 7 minutes (healthy) 127.0.0.1:5601->5601/tcp
アクセス
http://localhost:5601
でアクセスできます。
インストール実行時に表示されたパスワードでKibanaにログインできます。
停止
./stop.sh
で停止します。Docker Volumesは消去しませんのでデータは残ります。
再起動
./start.sh
アンインストール
./uninstall.sh
Docker Volumesや.env
,docker-compose.yml
など全て消去します。
30日経ってライセンスがBasicになってしまった場合は、一度全て消してしまえば再度Trialライセンスですべての機能を使用できます。(データは消えますが)
設定
docker-compose.yml
に記載されているのでそれを変更します。
メモリ
メモリはあるだけ使うので以下の部分で必要に応じて制限します。
ulimits:
memlock:
soft: -1
hard: -1
機械学習用メモリ
機械学習で使用できるメモリ量は自動的に決まります
- xpack.ml.use_auto_machine_memory_percent=true
こちらに記載があります。
https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-settings.html
明示的にメモリ量の比率を決めたい場合はxpack.ml.max_model_memory_limit
を設定します。
まとめ
Elastic Cloudを使っていただくのが一番手っ取り早いのですが、手元で試してみたいという場合はstart-localが便利です。
是非お試しください。