Amazon Elasticsearch Service
开发人员指南 (API 版本 2015-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

什么是 Amazon Elasticsearch Service?

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

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

要开始使用 Amazon ES,您需创建一个。An Amazon ES domain is synonymous with an Elasticsearch cluster. Domains are clusters with the settings, instance types, instance counts, and storage resources that you specify.

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

Amazon Elasticsearch Service 的功能

Amazon ES 包括下列功能:

Scale

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

  • 最多 3 PB 实例存储

  • Amazon EBS 存储卷

安全性

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

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

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

  • 用于 Kibana 的 Amazon Cognito 身份验证

稳定性

  • 资源具有多个地理位置,也称为区域可用区

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

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

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

与热门服务的集成

  • 使用 Kibana 实现数据可视化

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

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

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

支持的 Elasticsearch 版本

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

  • 6.5、6.4、6.3、6.2、6.0

  • 5.6、5.5、5.3、5.1

  • 2.3

  • 1.5

与早期版本的 Elasticsearch 相比, 6.x 版提供了强大的功能,让它们更快捷、更安全、更易用。下面是部分亮点:

  • 索引拆分 – 如果索引超出了分片的原始数量,_split API 可方便地在新索引中将每个主分片拆分为两个或更多分片。

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

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

  • 加权平均值 – 此聚合能让您为文档分配权重,并将这些权重计入给定值的平均值。

  • 复合聚合 – 这些聚合根据一个或多个字段构建复合存储桶,并根据“自然顺序”进行排序(按字母顺序排序术语、按数字或日期排序直方图)。

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

  • 更好的安全保障 – 6.x 版本的 Elasticsearch 提供了许多安全措施,旨在防止过于广泛或复杂的查询对集群的性能和稳定性产生不利影响。

  • Kibana 自动完成 – Kibana 6.3 及更高版本支持查询自动完成,这显著改进了日常用户体验。

有关 Elasticsearch 版本之间的差异以及 Amazon ES 支持的 API 的更多信息,请参阅支持的 Elasticsearch 操作

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

Amazon Elasticsearch Service 定价

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

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

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

Amazon Elasticsearch Service 入门

开始之前,如果您还没有 AWS 账户,请先注册一个。设置账户之后,请完成 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 调用和相关事件的历史记录。有关更多信息,请参阅使用 AWS CloudTrail 记录 Amazon Elasticsearch Service 配置 API 调用

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 访问控制

AWS Lambda

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

Amazon DynamoDB

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