在 Amazon Elasticsearch Service 中配置多可用区域 - Amazon Elasticsearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon Elasticsearch Service 中配置多可用区域

为了防止数据丢失并在服务中断时最大限度地减少 Amazon Elasticsearch Services (Amazon ES) 集群停机时间,您可以在两个或三个Availability Zones (可用区),这是一种称为多可用区的配置。可用区是每个Amazon区域。

对于运行生产工作负载的域,我们建议以下配置:

  • 选择通过 Amazon ES 支持三个可用区的区域。

  • 跨三个区域部署域。

  • 为专用主节点和数据节点选择最新一代实例类型。

  • 使用三个专用主节点和至少三个数据节点。

  • 为集群中的每个索引创建至少一个副本。

本节的其余部分提供了有关这些建议的解释和背景。

分片分配

如果您启用多 AZ,则应该为集群中的每个索引创建至少一个副本。没有副本,Amazon ES 无法将您的数据副本分发到其他可用区,这在很大程度上违背了多 AZ 的目的。幸运的是,所有索引的默认配置均为副本数量等于 1。如下图所示,Amazon ES 尽最大努力将主分片及其对应的副本分片分配到不同的区域。

除了按可用区分配分片外,Amazon ES 还按节点分配分片。但是,某些域配置可能会导致分片计数不平衡。考虑以下域:

  • 5 个数据节点

  • 5 个主分片

  • 2 个副本

  • 3 个可用区

在这种情况下,Amazon ES 必须使一个节点过载,以便跨区域分配主分片和副本分片,如下图所示。

为避免这些可能导致单个节点紧张并损害性能的情况,如果您计划每个索引有两个或更多副本,我们建议您选择一个为三的倍数的实例计数。

专用主节点分配

即使您在配置域时选择了两个可用区,Amazon ES 会自动分配域专用主节点跨三个可用区分配。此分发有助于在区域遇到服务中断时防止集群停机。如果您使用推荐的三个专用主节点并且一个可用区域关闭,则您的集群仍具有配额数量 (2) 的专用主节点,并且可以选择新的主节点。下图演示了此配置。

这种自动分配有一些值得注意的例外情况:

  • 如果您选择三个可用区中不可用的较旧一代实例类型,则以下方案适用:

    • 如果您为域选择了三个可用区,则 Amazon ES 会引发错误。请选择其他实例类型,然后重试。

    • 如果您为域选择了两个可用区,则 Amazon ES 会在两个区域中分配专用主节点。

  • 并非所有 Amazon 区域都有三个可用区。在这些区域中,您只能将域配置为使用两个区域(Amazon ES 只能在两个区域中分配专用主节点)。

可用区中断

可用区中断很少见,但仍会出现。下表列出了中断期间的不同多 AZ 配置和行为。

一个区域中的可用区数量 您选择的可用区数量 专用主节点的数量 当一个可用区域遇到中断时的行为
2 或更多 2 0

停机时间。您的集群丢失了一半的数据节点,并且必须替换剩余可用区中的至少一个,然后才能选择主节点。

2 2 3

50/50 的停机几率。Amazon ES 将两个专用主节点分配到一个可用区中,将一个分配到另一个可用区中:

  • 如果具有一个专用主节点的可用区遇到中断,则剩余可用区中的两个专用主节点可以选择主节点。

  • 如果具有两个专用主节点的可用区遇到中断,则在剩余可用区恢复之前,集群不可用。

3 或更多 2 3

无停机时间。Amazon ES 会自动在三个可用区中分配专用主节点,因此剩余的两个专用主节点可以选择主节点。

3 或更多 3 0

无停机时间。大约三分之二的数据节点仍可用于选择主节点。

3 或更多 3 3

无停机时间。其余两个专用主节点可以选择主节点。

In全部配置,无论原因如何,节点故障都可能导致集群的剩余数据节点经历一段时间的负载增加,而 Amazon ES 会自动配置新节点以替换现在缺失的节点。

例如,如果三区域配置中发生可用区中断,则三分之二的数据节点必须处理所有集群请求。当它们处理这些请求时,其余节点也会在新节点上线时将分片复制到新节点上,这可能会进一步影响性能。如果可用性对您的工作负载至关重要,请考虑向集群中添加资源以缓解此问题。

注意

Amazon ES 透明地管理多可用区域,因此,您无法手动模拟可用区中断。