Mastodon(Docker環境)でElasticsearchを有効にした時のメモ
この記事は、2018/11/5 00:51にQrunchにて公開したエントリの 再公開版 となります。 内容は当時のままですので、古くなっているはずです。予めご了承ください。 基本的には以下の記事を参考にして作業した。 https://blog.theboss.tech/2018/04/01/elasticsearch-on-mastodon-docker/ 作業環境はこんな感じ。 EC2 t3.small Amazon Linux 2 Elasticsearchの有効化 docker-compose.yml のesサービスのコメントを解除する。 t3.smallくらいだとメモリが足りないので、ES_JAVA_OPTS は -Xms256M -Xmx256M くらいに落としたほうが安全かもしれない。 webサービス側に書かれている depends_on も忘れずに。 ボリュームマウントするディレクトリを作成。デフォルトで ./elasticsearch に作成されるが、所有者を 1000:1000 にしておく。 これでいけるわけがなく、一部は上記記事のトラブルシューティングと重なるのだが、がっつりハマってしまった。 vm.max_map_countの変更 このまま docker-compose up -d してもエラーが発生し、コンテナが正常に起動してくれなかった。 エラーログを残し忘れたが、vm.max_map_count の変更によって解決。 # 現在値を確認 $ sysctl -a | grep vm.max_map_count # ... 略 ... vm.max_map_count = 65530 # ... 略 ... # 十分な値を設定 $ sudo sysctl -w vm.max_map_count=262144 $ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf ファイルディスクリプタ上限の変更 これでいけると思っていたが、まだエラーが発生していた。ファイルディスクリプタの上限が低いとな……? es_1