Meilisearchは軽量で小規模〜中規模のデータならかなり高速なパフォーマンスを発揮する検索エンジン。
Dockerイメージが用意されていて、データの投入もREST APIで可能なので構築が非常に簡単。ローカルで立ち上げるだけなら5分もかからない。
今回はMeilisearchをデプロイする際に、プラットフォーム選択で結構苦戦したので記録として残す。
結論から言うと、GCE(Google Compute Engine)が良い。メモリが1GBないとクラッシュしてしまうことがわかった。
fly.io
初めはfly.ioにデプロイしてみた。fly.ioは無料でメモリ256MBのVMが3つ与えれ、デプロイもfly.yml
とDockerfileで管理できて構築しやすい。
ただ、Meilisearchをデプロイし、ブラウザでアクセスし画面は表示できるものの、インデックス登録するとメモリ不足でクラッシュしてしまった。
render.com
render.comもfly.ioと同じくPaasの1つで、無料で512MBのVMが1つ与えられる。render.comは直接Dockerイメージを指定することができるので、自分でDocker Hubなどにpushしたイメージを指定したり、Meilisearch公式が用意しているイメージを直接指定することで構築できる。
ただ、render.comでもメモリ不足でクラッシュしてしまった。
Ran out of memory (used over 512MB) while running your code.
GCE (Google Compute Engine)
GCEは無料でメモリ1GBのVMが与えられ、構築時にDockerイメージを指定できる。証明書の準備などいくつか自分でやらないといけないことはあるが、無料枠だとGCEが最もメモリが大きいVMだ。調べてないがAzureかAWSでも同様のサービスがあるはず。
で、GCEにデプロイしてみたら見事クラッシュせずにデータ投入できた!検索もできて期待通りのパフォーマンスを発揮してくれた。
VPCでポート7700を開放するのだけ忘れずに。
終わり
GCEだけじゃなくてPaasを色々試すことができて良い回り道だった。Meilisearchは趣味開発における検索エンジンの救世主。まじ最高。
完