AWS 最佳实践

编辑

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

存储

编辑

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

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

AMI 选择

编辑

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

网络

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

其他建议

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