什么是 Amazon Elasticsearch Service? - Amazon Elasticsearch Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是 Amazon Elasticsearch Service?

Amazon Elasticsearch Service (Amazon ES) 是一种托管服务,可以让您轻松在 AWS 云中部署、操作和扩展 Elasticsearch 集群。Elasticsearch 是一款流行的开源搜索和分析引擎,适用于日志分析、实时应用程序监控、点击流分析等使用案例。借助 Amazon ES,您可以直接访问 Elasticsearch APIs;现有代码和应用程序可与 服务无缝协作。

Amazon ES 为您的 Elasticsearch 集群预置所有资源并启动集群。它还自动检测和替换失败的 Elasticsearch 节点,减少与自管理基础设施相关的开销。您只需调用一次 API 或在控制台中单击几下就可扩展集群。

要开始使用 Amazon ES,您需创建一个。Amazon ES 域与 Elasticsearch 集群同义。域是具有您指定的设置、实例类型、实例计数和存储资源的集群。每个实例充当一个 Elasticsearch 节点。

您可以使用 Amazon ES 控制台在几分钟内设置和配置一个域。如果您更喜欢以编程方式访问,则可以使用 AWS CLIAWS SDKs

Amazon Elasticsearch Service 功能

Amazon ES 包括以下功能:

Scale

  • 大量 CPU、内存和存储容量配置,也称为实例类型

  • 高达 3 PB 的附加存储空间

  • 面向只读数据的经济高效的 UltraWarm 存储

安全性

  • AWS Identity and Access Management (IAM) 访问控制

  • 与 Amazon VPC 和 VPC 安全组轻松集成

  • 静态数据加密和节点到节点加密

  • Amazon Cognito 用于 Kibana 的 、HTTP 基本或 SAML 身份验证

  • 索引级、文档级和字段级安全性

  • 审核日志

  • Kibana 多租户

稳定性

  • 资源具有大量的地理位置,也称为区域可用区

  • 在同一 AWS 区域的两个或三个可用区之间的节点分配,也称为多 AZ

  • 利用专用主节点来卸载集群管理任务

  • 自动快照用于备份和还原 Amazon ES 域

弹性

  • SQL 支持与商业智能 (BI) 应用程序集成

  • 自定义程序包以改善搜索结果

与热门服务的集成

  • 使用 Kibana 实现数据可视化

  • 与 Amazon CloudWatch 的集成,用于监控 Amazon ES 域指标和设置警报

  • 与 AWS CloudTrail 的集成,用于审核对 Amazon ES 域的配置 API 调用

  • 与 Amazon S3、Amazon Kinesis 和 Amazon DynamoDB 的集成,用于将流数据加载到 Amazon ES

  • 数据超过特定阈值时从 Amazon SNS 发出的警报

支持的 Elasticsearch 版本

Amazon ES 目前支持以下 Elasticsearch 版本:

  • 7.8、7.7、7.4、7.1

  • 6.8、6.7、6.5、6.4、6.3、6.2、6.0

  • 5.6、5.5、5.3、5.1

  • 2.3

  • 1.5

与早期版本的 Elasticsearch 相比,7.x 和 6.x 版提供了强大的功能,让它们更快捷、更安全、更易用。此处给出了几个要点:

  • 更高的索引性能 – Elasticsearch 的较新版本提供了出色的索引功能,可显著提高数据更新的吞吐量。

  • 更好的安全保障 – 更高版本的 Elasticsearch 可帮助防止过于宽泛或复杂的查询对集群的性能和稳定性产生不利影响。

  • Vega 可视化 – Kibana 6.2 及更高版本支持 Vega 可视化语言,可让您进行上下文感知的 Elasticsearch 查询,将多个数据源组合成单个图表,为图表添加用户互动功能等等。

  • Java 高级别 REST 客户端 – 与低级别客户端相比,此客户端提供了简化的开发体验并支持大多数 Elasticsearch APIs。 有关代码示例,请参阅签署 HTTP 请求

有关更多信息,请参阅支持的 Elasticsearch 操作功能(按 Elasticsearch 版本)插件(按 Elasticsearch 版本)

如果您启动新的 Elasticsearch 项目,我们强烈建议您选择受支持的最新 Elasticsearch 版本。如果您的现有域使用的是较旧的 Elasticsearch 版本,您可以选择保留该域或迁移您的数据。有关更多信息,请参阅 升级 Elasticsearch

Amazon Elasticsearch Service定价

对于 Amazon ES,您需要按小时支付使用 EC2 实例和挂载到您的实例的任何 EBS 存储卷的累计大小的费用。标准 AWS 数据传输费同样适用。

但是,存在一些明显的数据传输异常。如果某个域使用多个可用区,则 Amazon ES 不会对可用区之间的流量进行计费。在分片分配和重新平衡期间,域中会发生大量数据传输。Amazon ES 既不会计量此流量,也不会收取此流量的费用。同样,Amazon ES 不对 UltraWarm 节点和 Amazon S3 之间的数据传输计费。

有关完整的定价详情,请参阅 Amazon Elasticsearch Service 定价。有关配置更改期间产生的费用的信息,请参阅 配置更改的费用

开始使用 Amazon Elasticsearch Service

开始之前,如果您还没有 AWS 账户,请先注册一个。设置账户之后,请完成 Amazon Elasticsearch Service 入门教程。如果您在了解该服务时需要更多信息,请参考以下介绍性主题:

有关从自行管理的 Elasticsearch 集群迁移到 Amazon ES 的信息,请参阅迁移到 Amazon Elasticsearch Service

Amazon ES 通常用于以下服务:

Amazon CloudWatch

Amazon ES 域自动将指标发送到 CloudWatch,以便您可以监控域运行状况和性能。有关更多信息,请参阅 使用 Amazon CloudWatch 监控集群指标

CloudWatch Logs 也可以反过来用。可以将 CloudWatch Logs 配置为将数据流式传输到 Amazon ES 以便分析。要了解更多信息,请参阅从 Amazon CloudWatch 将流数据加载到 Amazon ES

AWS CloudTrail

使用 AWS CloudTrail 获取您账户的 Amazon ES 配置 API 调用和相关事件的历史记录。有关更多信息,请参阅 在中配置API监控 Amazon Elasticsearch Service

Amazon Kinesis

Kinesis 是一种托管服务,能够实时进行大规模流数据处理。有关更多信息,请参阅 从 Amazon Kinesis Data Streams 将流数据加载到 Amazon ES从 Amazon Kinesis Data Firehose 将流数据加载到 Amazon ES

Amazon S3

Amazon Simple Storage Service (Amazon S3) 面向 Internet 提供存储。本指南提供了用于与 Amazon S3 集成的 Lambda 示例代码。有关更多信息,请参阅 从 Amazon S3 将流数据加载到 Amazon ES

AWS IAM

AWS Identity and Access Management (IAM) 是一项 Web 服务,可用于管理对您的 Amazon ES 域的访问。有关更多信息,请参阅 Amazon Elasticsearch Service 中的 Identity and Access Management

AWS Lambda

AWS Lambda 是一项计算服务,可使您无需预配置或管理服务器即可运行代码。本指南提供 Lambda 示例代码以通过 DynamoDB、Amazon S3 和 Kinesis 流式传输数据。有关更多信息,请参阅 将流数据到加载到 Amazon Elasticsearch Service

Amazon DynamoDB

Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,提供快速且可预测的性能,同时还能够实现无缝扩展。要了解有关将数据流式传输到 Amazon ES 的更多信息,请参阅从 Amazon DynamoDB 将流数据加载到 Amazon ES