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 实例。
  • 考虑为所有数据节点和有资格成为主节点的节点 启用终止保护。 这将有助于防止意外终止这些节点,这可能会暂时降低集群的弹性,并可能导致潜在的破坏性分片重新分配。
  • 如果使用一个或多个 自动扩展组运行集群,请考虑保护您的数据节点和有资格成为主节点的节点在缩减期间免于终止。 这将有助于防止自动终止这些节点,这可能会暂时降低集群的弹性,并可能导致潜在的破坏性分片重新分配。 如果这些实例在缩减期间受到保护,则可以使用 分片分配筛选 在手动终止这些节点之前,将任何数据从这些节点优雅地迁移走。