~~NOCACHE~~
## 2.サイジング
ElasticSearchのサイジングについて記載します。
理解した・・・と思って書いてみた、あってる?
### ストレージサイズ
ストレージサイズは、ソースサイズから求められる。
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/sizing-domains.html#aes-bp-storage
最小ストレージ要件 = ソースデータ x (1 + レプリカの数) x (1 + インデックス作成オーバーヘッド) ÷ (1 - Linux 予約スペース) ÷ (1 - Amazon ES のオーバーヘッド)
→ソースデータ x (1 + レプリカの数) x (1 + 0.1) ÷ (1 - 0.05) ÷ (1 - 0.2)
→ソースデータ x (1+ レプリカの数) x 1.45
{{:Aws:ElasticSearch:pasted:20210625-105217.png?direct 1000x0}}
### レプリカ数
可用性要件で、いくつに分散して保持したいかで決める。
・レプリカ数をAZ数の倍数とした場合、均等に各AZに分散される。
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-managedomains-multiaz.html
### ノード数
ノード数=インスタンス数
・ノード数はレプリカ数や総ストレージ容量によって変わる。
・インスタンス毎のストレージサイズは、インスタンスタイプ毎に異なるので、最低ノード数は以下の計算となる。
最低ノード数 = 総ストレージ容量 / インスタンス毎の最大ストレージサイズ
※インスタンスタイプは、ストレージ要件の容量 100 GiB ごとに vCPU x 2 コア、メモリ 8 GiB に近い構成になるようにします。
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/sizing-domains.html#aes-bp-instances
■インスタンスタイプのストレージ制限
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/aes-limits.html
■インスタンスタイプのvCPUとメモリ表
https://aws.amazon.com/jp/elasticsearch-service/pricing/
### シャード数
https://aws.amazon.com/jp/blogs/news/get-started-with-amazon-elasticsearch-service-how-many-shards-do-i-need/
シャード数 = インデックスのサイズ / 30GB
以下の理由から、1シャードは30GB程度にすると良いらしい。
・シャードが大きいと、Elasticsearch の障害復旧が困難になる可能性があります。
・各シャードはある程度の CPU とメモリを使用するため、小規模なシャードが多数ある場合には、パフォーマンスの問題やメモリ不足のエラーが発生する可能性があります。
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/sizing-domains.html#aes-bp-sharding
{{tag>AWS ElasticSearch}}