Amazon Elasticsearch Service
开发人员指南 (API 版本 2015-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon Elasticsearch Service 的 PB 规模

Amazon Elasticsearch Service 提供了高达 3 PB 的域存储空间。您可以配置包含 200 个 i3.16xlarge.elasticsearch 实例类型的域,每个实例类型都有 15 TB 的存储空间。由于规模上的显著差异,针对此大小的域的建议不同于我们的一般建议。本节讨论创建域、成本、存储空间和分片大小的注意事项。

虽然本节中频繁引用多个 i3.16xlarge.elasticsearch 实例类型,您可以使用其他实例类型,以达到 1PB 的总域存储。

提示

AWS 数据库博客有一篇出色的文章探讨如何创建和操作 PB 级域。

创建域

此大小的域超出了每个域 20 个实例的默认限制。要请求将服务限制提升到每个域最多 200 个实例,请在 AWS 支持中心上打开一个案例。

定价

在创建此大小的域之前,请查看 Amazon Elasticsearch Service 服务定价页面以确保相关成本符合您的预期。

存储

i3 实例类型专门设计用于提供快速、本地的非易失性存储规范 (NVMe) 存储空间。由于此本地存储与 Amazon Elastic Block Store 相比往往具有巨大的性能优势,当您在 Amazon ES 中选择这些实例类型时,EBS 卷不是合适的选项。如果您更喜欢 EBS 存储,请使用其他实例类型,如 r5.12xlarge.elasticsearch

分片大小和计数

常用 Elasticsearch 准则是不超过每个分片 50 GB。考虑到容纳大型域和可用于 i3.16xlarge.elasticsearch 实例的资源所需的分片数量,建议使用 100 GB 的分片大小。

例如,如果您有 450 TB 的源数据并且需要一个副本,您的最低 存储要求更接近 450 TB * 2 * 1.1 / 0.95 = 1.04 PB。有关此计算的说明,请参阅计算存储要求。尽管 1.04 PB/15 TB = 70 个实例,但您可以选择 80 个或更多 i3.16xlarge.elasticsearch 实例来为自己提供存储安全网和账户,从而适应数据量随着时间的推移发生的变化。每个实例都会将存储需求下限增加 20GiB,但对于这个规模的磁盘而言,20GiB 几乎可以忽略不计。

控制分片数量很棘手。Elasticsearch 用户通常每天轮换索引,并保留一周或两周的数据。在这种情况下,您可能会发现,区分“活动”和“非活动”分片很有用。活动分片,就是经常发生读取或写入的分片。非活动分片可能为偶发读取请求提供服务,但基本上是闲置的。一般而言,您应该把活动分片的数量保持在数千以下。当活动分片的数量接近 10,000 时,会出现相当大的性能和稳定性风险。

要计算主分片的数量,请使用以下公式:450,000 GB * 1.1/每个分片 100 GB = 4,950 个分片。将这个数字翻倍以考虑副本是 9900 个分片,这在所有分片都处于活动状态时表示主要考虑因素。但是,如果您轮换索引,而且 1/7 或 1/14 的分片在给定日期处于活动状态(分别是 1414 或 707 个分片),则群集可能工作正常。与往常一样,对您的域进行大小调整和配置的最重要的步骤是使用真实的数据集执行有代表性的客户端测试。