如何使 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 控制台中的 Cluster health(集群运行状况)和 Instance health(实例运行状况)选项卡监控有关 Elasticsearch 集群的 Amazon CloudWatch 指标。
- 根据重要 Amazon ES 指标创建 Amazon CloudWatch 警报。例如,监控 AutomatedSnapshotFailure 指标以确认定期拍摄自动快照。有关教程,请参阅开始使用 Amazon Elasticsearch Service:针对关键指标设置 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 最佳实践。