Closed5

Multitenancy with ElasticSearch

KaribashKaribash

ElasticSearchでMultitenancyを実現する方法が何種類かあるので纏めていく

KaribashKaribash

テナント毎にクラスタを構築するパターン

テナント毎にクラスタを完全に分離しちゃえば良いじゃんっていう考え
クラスタの管理が大変な事になりそう
費用面もヤバい事になりそう

KaribashKaribash

テナント毎にインデックスを別にするパターン

インデックスの数が大変なことになりそう
インデックスを再設計するときに大変な事になりそう
後々パフォーマンス問題が浮上してきそう

KaribashKaribash

テナント毎にエイリアスを作成するパターン

インデックスを全テナントで共有にして、テナント毎にエイリアスを貼る
エイリアスを使用するので、インデックスを再設計するときに楽そう
数千程度のエイリアスなら問題ないらしいが、数十万にもなってくるとパフォーマンスがやばいっぽい
インデックスもシャードも全テナントで共有するので、テナント数が増えてくるとやばい

KaribashKaribash

テナント毎にシャードを分割するパターン

routing機能を使ってテナント毎にシャードを分割してしまう
巨大なテナントが出来てしまうと、HotShardsが出来てしまい負荷が高くなってしまう
巨大なテナントは更にインデックスを分けてシャードを分割する必要がある

このスクラップは2021/09/24にクローズされました