Closed5
Multitenancy with ElasticSearch
ElasticSearchでMultitenancyを実現する方法が何種類かあるので纏めていく
テナント毎にクラスタを構築するパターン
テナント毎にクラスタを完全に分離しちゃえば良いじゃんっていう考え
クラスタの管理が大変な事になりそう
費用面もヤバい事になりそう
テナント毎にインデックスを別にするパターン
インデックスの数が大変なことになりそう
インデックスを再設計するときに大変な事になりそう
後々パフォーマンス問題が浮上してきそう
テナント毎にエイリアスを作成するパターン
インデックスを全テナントで共有にして、テナント毎にエイリアスを貼る
エイリアスを使用するので、インデックスを再設計するときに楽そう
数千程度のエイリアスなら問題ないらしいが、数十万にもなってくるとパフォーマンスがやばいっぽい
インデックスもシャードも全テナントで共有するので、テナント数が増えてくるとやばい
テナント毎にシャードを分割するパターン
routing機能を使ってテナント毎にシャードを分割してしまう
巨大なテナントが出来てしまうと、HotShardsが出来てしまい負荷が高くなってしまう
巨大なテナントは更にインデックスを分けてシャードを分割する必要がある
このスクラップは2021/09/24にクローズされました