AWS 最佳实践编辑

本节包含一些关于在您自己的 AWS 基础设施上设计和管理 Elasticsearch 集群的其他信息。如果您希望避免这些操作细节,那么您可能会对 https://elastic.ac.cn/cloud 上提供的基于 AWS 基础设施的托管 Elasticsearch 安装感兴趣。

存储编辑

EC2 实例提供多种不同类型的存储。在为您的集群选择存储时,请注意以下事项

  • 建议 Elasticsearch 集群使用实例存储,因为它提供了出色的性能,并且比基于 EBS 的存储更便宜。Elasticsearch 旨在与这种类型的临时存储配合良好,因为它会在多个节点上复制每个分片。如果一个节点发生故障并且其实例存储丢失,Elasticsearch 将从其他副本重建任何丢失的分片。
  • 对于较小的集群(1-2 个节点),基于 EBS 的存储可能是可以接受的。请务必使用预配置 IOPS 以确保您的集群具有令人满意的性能。
  • 不建议或支持使用基于 EFS 的存储,因为它无法提供令人满意的性能。从历史上看,共享网络文件系统(如 EFS)并不总能提供 Elasticsearch 对其文件系统要求的精确行为,并且已知这会导致索引损坏。尽管 EFS 提供了持久性、共享存储以及动态增长和缩减文件系统的能力,但您可以使用 Elasticsearch 直接获得相同的好处。

AMI 的选择编辑

首选Amazon Linux 2 AMI,因为它们允许您受益于这些映像提供的轻量级特性、支持和 EC2 特定的性能增强。

网络编辑

  • 较小的实例类型在带宽和连接数方面网络性能有限。如果网络是瓶颈,请避免使用网络标记为中等实例类型
  • 将您的节点分布在多个可用区并使用分片分配感知以确保每个分片在多个可用区中都有副本是一个好主意。
  • 不要跨区域扩展集群。Elasticsearch 期望集群内的节点到节点连接相当可靠,并提供高带宽和低延迟,而这些属性不适用于区域之间的连接。尽管当节点到节点连接不可靠或缓慢时,Elasticsearch 集群的行为将是正确的,但它并未针对这种情况进行优化,并且其性能可能会受到影响。如果您希望在地理上分布您的数据,您应该配置多个集群并使用诸如跨集群搜索跨集群复制之类的功能。

其他建议编辑

  • 如果您已将节点拆分为角色,请考虑按角色标记 EC2 实例,以便更轻松地在 AWS 控制台中过滤和查看您的 EC2 实例。
  • 考虑为所有数据节点和符合主节点条件的节点启用终止保护。这将有助于防止意外终止这些节点,这可能会暂时降低集群的弹性,并可能导致潜在的破坏性分片重新分配。
  • 如果使用一个或多个自动扩展组运行您的集群,请考虑在缩减规模期间保护您的数据节点和符合主节点条件的节点免于终止。这将有助于防止自动终止这些节点,这可能会暂时降低集群的弹性,并可能导致潜在的破坏性分片重新分配。如果这些实例在缩减规模期间受到保护免于终止,那么您可以使用分片分配过滤在手动终止这些节点之前优雅地迁移掉这些节点上的任何数据。