如何使 Amazon Elasticsearch Service 域的容错能力更强?

上次更新日期:2021 年 1 月 5 日

我想保护 Amazon Elasticsearch Service (Amazon ES) 资源,防止意外删除、应用程序或硬件出现故障或中断。提高容错能力或还原快照的最佳实践是什么?

简短描述

为了提高 Amazon ES 域的容错能力,请考虑以下最佳实践:

  • 定期拍摄索引快照。
  • 使用 Amazon CloudWatch 指标以监控 Amazon ES 资源。
  • 了解 Amazon ES 服务限制
  • 使用专用主节点。
  • 至少使用三个节点。
  • 启用区域感知。
  • 请勿在生产环境做使用 T2 实例。

解决方法

拍摄常规索引快照

针对所有 Amazon ES 域拍摄自动快照。拍摄手动索引快照以创建 Amazon ES 域中数据的时间点备份。将快照保存到 Amazon Simple Storage Service (Amazon S3) 存储桶。您还可以使用手动索引快照在 Amazon ES 域之间迁移数据,并将数据恢复到其他 Amazon ES 域。

监控 Amazon CloudWatch 指标

使用专用主节点

专用主节点有助于防止因节点过载而导致的问题。在以下情况下使用专用主节点:

  • 您的域用于生产环境。
  • 您的域有五个或更多节点。
  • 您的索引映射非常复杂,跨类型和索引定义了许多字段。

至少使用三个节点

为避免意外分区网络(脑裂),请至少使用三个节点。为避免潜在的数据丢失,请确保每个索引至少有一个副本。(默认情况下,每个索引都有一个副本。)

启用区域感知

区域感知有助于防止停机和数据丢失。启用区域感知后,Amazon ES 会在同一区域两个或三个可用区中分配节点和副本索引分片。

注意:对于三个可用区的设置,请使用两个索引副本。如果出现单个区域故障,两个副本可确保 100% 的数据冗余。

请勿在生产环境做使用 T2 实例

对于生产环境,请使用 M 级或更大的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。如果您决定使用 T2 实例类型,请确保监视 CPU 积分、CPU 使用情况、内存使用情况,以及实例的稳定性。必要时可纵向扩展或横向扩展。

此外,请注意 T2 实例的以下限制:

  • T2 实例会被分配 CPU 积分。如果网络流量激增,Elasticsearch 集群可能会超过 T2 实例中可用的 CPU 积分。有关更多信息,请参阅突发型性能实例的 CPU 积分和基准利用率
  • T2 实例的 EBS 卷限制为 35 GB。
  • T2 实例的有效负载限制为 10 MB。确保您的请求有效负载不超过有效负载限制。有关 Amazon ES 服务限制的更多信息,请参阅网络限制
  • 仅当您的 Amazon ES 实例计数不超过十个时,才能使用 T2 实例类型。有关受支持的 Amazon ES 实例类型的更多信息,请参阅支持的实例类型
  • T2 实例类型不得用作数据节点或专用主节点。在持续的沉重负载下,T2 实例类型可能会变得不稳定。有关更多信息,请参阅 Amazon Elasticsearch Service 最佳实践