创建和管理 Amazon OpenSearch Service 服务域 - Amazon OpenSearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建和管理 Amazon OpenSearch Service 服务域

本章介绍如何创建和管理 Amazon OpenSearch Service 域。域相当于 Amazon 预置的开源 OpenSearch 集群。在创建域时,您需要指定其设置、实例类型、实例数量以及存储分配。有关开源集群的更多信息,请参阅 OpenSearch 文档中的 Creating a cluster

入门教程中的简短说明不同,本章描述了所有选项,并提供了相关的参考信息。您可以使用对 OpenSearch Service 控制台、 Amazon Command Line Interface (Amazon CLI) 或 Amazon 软件开发工具包的说明完成每个步骤。

创建 OpenSearch Service 域

本部分介绍如何使用 OpenSearch Service 控制台或使用 create-domain 命令的 Amazon CLI 创建 OpenSearch Service 域。

创建 OpenSearch Service 域(控制台)

使用以下步骤使用控制台创建一个 OpenSearch Service 域。

要创建 OpenSearch Service 域(控制台)
  1. 转至 http://aws.amazon.com,然后选择 Sign In to the Console

  2. 分析下,选择 Amazon OpenSearch Service

  3. 选择 Create domain(创建域)

  4. 对于域名,输入一个域名。名称必须符合以下标准:

    • 对于您的账户和 Amazon Web Services 区域 而言是唯一的

    • 以小写字母开头

    • 包含 3 到 28 个字符

    • 只包含小写字母 a-z、数字 0-9 和连字符 (-)

  5. 对于域创建方法,选择标准创建

  6. 对于模板,选择与您的域的目的最匹配的选项:

    • 用于需要高可用性和高性能的工作负载的生产域。这些域使用多可用区(带或不带待机功能)和专用主节点提高可用性。

    • 用于开发或测试的开发/测试域。开发/测试域可以使用多可用区(带或不带待机功能)或单个可用区。

      重要

      不同部署类型在后续页面上显示不同的选项。这些步骤包括所有选项。

  7. 对于部署选项,选择带备用域的域配置三可用区域,其中一个可用区中的节点作为备用域。此选项强制执行大量最佳实践,例如指定数据节点计数、主节点计数、实例类型、副本计数和软件更新设置。

  8. 适用于版本中,选择要使用的 OpenSearch 或旧版 Elasticsearch OSS 版本。建议您选择 OpenSearch 最新版本。有关更多信息,请参阅 支持的 Elasticsearch 和 OpenSearch 版本

    (可选)如果您为您的域选择了 OpenSearch 版本,请选择启用兼容模式使 OpenSearch 将其版本报告为 7.10,这允许某些 Elasticsearch OSS 客户端和插件在连接之前检查版本,以继续使用该服务。

  9. 对于实例类型,为数据节点选择实例类型。有关更多信息,请参阅 Amazon OpenSearch Service 中支持的实例类型

    注意

    并非所有可用区都支持所有实例类型。如果您选择带或不带待机功能的多可用区,我们建议您选择最新一代实例类型,如 R5 或 I3。

  10. 对于节点数,选择数据节点数。

    有关最大值,请参阅 OpenSearch Service 域和实例配额。单节点集群适合开发和测试,但不应用于生产工作负载。有关更多指导,请参阅调整 Amazon OpenSearch Service 域的大小在 Amazon OpenSearch Service 中配置多 AZ 域

    注意

    (可选)专用协调器节点支持所有 OpenSearch 版本和 ElasticSearch 版本 6.8 至 7.10。专用协调器节点可用于启用了专用集群管理器的域。要启用专用协调器节点,您需要选择实例类型和数量。根据最佳实践,专用协调器节点的实例系列应与数据节点相同(基于 Intel 处理器的实例或基于 Graviton 处理器的实例)。

  11. 对于存储类型,选择 Amazon EBS。列表中可用的卷类型取决于您选择的实例类型。有关创建超大型域的指南,请参阅 Amazon OpenSearch Service 中的 PB 级规模

  12. 对于 EBS 存储,配置以下附加设置。根据您选择的卷类型,某些设置可能不会显示。

    设置 描述
    EBS 卷类型

    通用型(SSD)– gp3通用型(SSD)– gp2 之间,或上一代预调配 IOPS(SSD)磁介质(标准)之间选择。

    每个节点的 EBS 存储大小

    输入要附加到每个数据节点的 EBS 卷。

    EBS volume size (EBS 卷大小) 是按节点计算的。您可以通过将数据节点数乘以 EBS 卷大小来计算 OpenSearch Service 域的总集群大小。EBS 卷最小容量和最大容量取决于指定的 EBS 卷类型及其挂载到的实例类型。要了解更多信息,请参阅 EBS 卷大小限制

    预调配 IOPS

    如果选择了某个预调配 IOPS SSD 卷类型,则可以输入该卷可支持的每秒 I/O 操作数(IOPS)。

  13. (可选)如果您选择了某个 gp3 卷类型,则展开高级设置并指定除在存储价格中已经包含的外,要为每个节点预置的额外 IOPS(每个数据节点每预置 3 TiB 卷大小最高 16,000)和吞吐量(每个数据节点每预置 3 TiB 卷大小最高 1,000 MiB/s),但需支付额外费用。有关更多信息,请参阅 Amazon OpenSearch Service 定价

  14. (可选)要启用 UltraWarm 存储,请选择启用 UltraWarm 数据节点。每种实例类型都有其可处理的最大存储量。将该数量乘以总可寻址温存储的温数据节点数。

  15. (可选)要启用冷存储,选择启用冷存储。您必须启用 UltraWarm 才能启用冷存储。

  16. 如果使用带待机功能的多可用区,则已启用三个专用主节点。选择所需的主节点类型。如果选择不带待机功能的多可用区的域,请选择启用专用主节点,然后选择所需的主节点类型和数量。专用主节点可增强集群稳定性,对于包含 10 个以上实例的域而言是必需的。对于生产域,我们建议使用 3 个专用主节点。

    注意

    对于专用主节点和数据节点,可以选择不同的实例类型。例如,您可以为数据节点选择通用或存储优化实例,但为专用主节点选择计算优化实例。

  17. (可选)对于运行 OpenSearch 或 Elasticsearch 5.3 及更高版本的域,快照配置快照是无关紧要的。有关自动制作快照的更多信息,请参阅在 Amazon OpenSearch Service 中创建索引快照

  18. 如果您想使用自定义端点,而不是标准的 https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com 之一,选择启用定制终端节点并提供名称和证书。有关更多信息,请参阅 为 Amazon OpenSearch Service 服务创建自定义端点

  19. 网络下,选择 VPC 访问权限公有访问权限。如果您选择公有访问权限,请跳至下一步。如果选择 VPC 访问权限,请确保您满足先决条件,然后配置以下设置:

    设置 描述
    VPC

    选择要使用的虚拟私有云(VPC)的 ID。VPC 和域必须位于同一 Amazon Web Services 区域 中,并且您必须选择具有设置为 Default 的租赁的 VPC。OpenSearch Service 尚不支持使用专用租赁的 VPC。

    子网:.

    选择子网。如果您启用多 AZ,您必须选择两个或三个子网。OpenSearch Service 会将 VPC 终端节点和弹性网络界面放入子网中。

    必须在子网中为网络接口预留足够的 IP 地址。有关更多信息,请参阅在 VPC 子网中预留 IP 地址

    安全组

    选择一个或多个 VPC 安全组,以允许您所需的应用程序在域公开的端口(80 或 443)和协议(HTTP 或 HTTPS)上访问 OpenSearch Service 域。有关更多信息,请参阅 在 VPC 中启动您的 Amazon OpenSearch Service 域

    IAM 角色

    保留默认角色。OpenSearch Service 使用该预定义角色(也称服务关联角色)访问您的 VPC 并将 VPC 端点和网络接口放入 VPC 的子网中。有关更多信息,请参阅用于 VPC 访问的服务关联角色

    IP 地址类型

    选择双堆栈或 IPv4 作为 IP 地址类型。双堆栈允许您跨 IPv4 和 IPv6 地址类型共享域资源,也是推荐选项。如果您将 IP 地址类型设置为双堆栈,则日后无法更改地址类型。

  20. 启用或禁用精细访问控制:

    • 如果要使用 IAM 进行用户管理,请选择将 IAM ARN 设置为主用户,然后为 IAM 角色指定 ARN。

    • 如果要使用内部用户数据库,请选择创建主用户,并指定用户名和密码。

    无论您选择哪个选项,主用户都可以访问集群中的所有索引和所有 OpenSearch API。有关选择哪个选项的指南,请参阅 重要概念

    如果您禁用精细访问控制,则仍可以通过将域放置在 VPC 中并/或应用限制性访问策略来控制对域的访问。您必须启用节点到节点加密和静态加密才能使用精细访问控制。

    注意

    我们强烈建议您启用精细访问控制以保护域中的数据。精细访问控制提供群集、索引、文档和字段级别的安全性。

  21. (可选)如果要对使用适用于 OpenSearch Dashboards 的 SAML 身份验证,请选择启用 SAML 身份验证并为域配置 SAML 选项。有关说明,请参阅 针对 OpenSearch 控制面板的 SAML 身份验证

  22. (可选)如果要对 OpenSearch 仪表板使用 Amazon Cognito 身份验证,请选择启用 Amazon Cognito 身份验证。然后选择您希望用于 OpenSearch 控制面板身份验证的 Amazon Cognito 用户群体 ID。有关创建这些资源的指南,请参阅为 OpenSearch 控制面板配置 Amazon Cognito 认证

  23. (可选)如果您想使用 IAM Identity Center(IDC)身份验证以连接现有身份源,并为 Amazon 应用程序提供用户的通用视图,请选择启用通过 IAM Identity Center 进行身份验证的 API 访问权限。有关更多信息,请参阅《IAM Identity Center 用户指南》中的可信身份传播概述

  24. (可选)如果您想使用这些功能,请在高级功能部分,选择启用自然语言查询生成 和 Amazon Q 开发者版功能

    选择启用 S3 Vectors 作为引擎选项,以获取增强的向量搜索选项。有关更多信息,请参阅 (预览)使用 Amazon S3 向量引擎实现高级搜索功能

  25. 对于访问策略,选择访问策略或配置您自己的访问策略。如果选择创建自定义策略,则可以自行配置或从另一个域导入策略。有关更多信息,请参阅 Amazon OpenSearch Service 中的 Identity and Access Management

    注意

    如果您启用了 VPC 访问,则无法使用基于 IP 的策略。但您可以使用安全组来控制哪些 IP 地址可以访问该域。有关更多信息,请参阅 关于 VPC 域的访问策略

  26. (可选)如果要求对域的所有请求都通过 HTTPS 到达,请选中 Require HTTPS for all traffic to the domain (要求到域的所有流量都使用 HTTPS)。要启用节点到节点加密,请选中节点到节点加密复选框。有关更多信息,请参阅 Amazon OpenSearch Service 的节点到节点加密。要启用静态数据加密,请选中启用静态数据的加密复选框。如果选择带待机功能的多可用区部署选项,则预先选择这些选项。

  27. (可选)选择使用 Amazon 拥有的密钥以让 OpenSearch Service 代表您创建 Amazon KMS 加密密钥(或使用它已创建的加密密钥)。否则,请选择您自己的 KMS 密钥。有关更多信息,请参阅 Amazon OpenSearch Service 中的静态数据加密

  28. 对于非高峰时段,选择开始时间以计划需要蓝绿部署的服务软件更新和自动调整优化。非高峰时段更新有助于最大限度地减少高流量时段对集群专用主节点造成的压力。

  29. 适用于自动调整中,选择是否允许 OpenSearch Service 对域建议与内存相关的配置更改,以提高速度和稳定性。有关更多信息,请参阅 自动调整 Amazon OpenSearch Service

    (可选)选择非高峰时段以安排一个循环时段,自动调整将在此时段内更新域。

  30. (可选)选择自动软件更新以启用自动软件更新。

  31. (可选)添加标签来描述您的域,以便您可以对该信息进行分类和筛选。有关更多信息,请参阅 标记 Amazon OpenSearch Service 域

  32. (可选)展开和配置 Advanced cluster settings(高级集群设置)。有关这些选项的摘要,请参阅高级集群设置

  33. 选择创建

创建 OpenSearch Service 域 (Amazon CLI)

除了使用控制台创建 OpenSearch Service 域之外,您还可以使用 Amazon CLI。有关语法,请参阅 Amazon CLI 命令参考中的 Amazon OpenSearch Service。

示例命令

这第一个示例演示了以下 OpenSearch Service 域配置:

  • 使用 OpenSearch 版本 1.2 创建一个名为 mylogs 的 OpenSearch Service 域

  • r6g.large.search 实例类型的两个实例填充该域

  • 使用 100GiB 通用型(SSD)gp3 EBS 卷作为每个数据节点的存储

  • 允许匿名访问,但只能从单个 IP 地址访问:192.0.2.0/32

aws opensearch create-domain \ --domain-name mylogs \ --engine-version OpenSearch_1.2 \ --cluster-config InstanceType=r6g.large.search,InstanceCount=2 \ --ebs-options EBSEnabled=true,VolumeType=gp3,VolumeSize=100,Iops=3500,Throughput=125 \ --access-policies '{"Version": "2012-10-17", "Statement": [{"Action": "es:*", "Principal":"*","Effect": "Allow", "Condition": {"IpAddress":{"aws:SourceIp":["192.0.2.0/32"]}}}]}'

下一个示例演示了以下 OpenSearch Service 域配置:

  • 使用 Elasticsearch 版本 7.10 创建名为 mylogs 的 OpenSearch Service

  • r6g.large.search 实例类型的六个实例填充该域

  • 使用 100GiB 通用型(SSD)gp2 EBS 卷作为每个数据节点的存储

  • 限制单个用户访问该服务,由用户的 Amazon Web Services 账户 ID 标识:555555555555

  • 跨三个可用区分配实例

aws opensearch create-domain \ --domain-name mylogs \ --engine-version Elasticsearch_7.10 \ --cluster-config InstanceType=r6g.large.search,InstanceCount=6,ZoneAwarenessEnabled=true,ZoneAwarenessConfig={AvailabilityZoneCount=3} \ --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 \ --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::555555555555:root" }, "Action":"es:*", "Resource": "arn:aws:es:us-east-1:555555555555:domain/mylogs/*" } ] }'

下一个示例演示了以下 OpenSearch Service 域配置:

  • 使用 OpenSearch 版本 1.0 创建名为 mylogs 的 OpenSearch Service

  • r6g.xlarge.search 实例类型的十个实例填充该域

  • r6g.large.search 实例类型的三个实例作为专用主节点填充该域

  • 使用 100GiB 预配置 IOPS EBS 卷作为存储,用每个数据节点 1000 IOPS 的基准性能进行配置

  • 限制对单个用户和单个子资源的访问,_search API

aws opensearch create-domain \ --domain-name mylogs \ --engine-version OpenSearch_1.0 \ --cluster-config InstanceType=r6g.xlarge.search,InstanceCount=10,DedicatedMasterEnabled=true,DedicatedMasterType=r6g.large.search,DedicatedMasterCount=3 \ --ebs-options EBSEnabled=true,VolumeType=io1,VolumeSize=100,Iops=1000 \ --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::555555555555:root" }, "Action": "es:*", "Resource": "arn:aws:es:us-east-1:555555555555:domain/mylogs/_search" } ] }'
注意

如果您尝试创建 OpenSearch Service 域,并且已存在具有相同名称的域,则 CLI 不会报告错误。相反,它会返回现有域的详细信息。

创建 OpenSearch Service 域 (Amazon SDK)

Amazon SDK(除 Android 和 iOS SDK 之外)支持在 Amazon OpenSearch Service API 参考中定义的所有操作,包括 CreateDomain。有关代码示例,请参阅 使用 Amazon SDK 与 Amazon OpenSearch Service 进行交互。有关安装和使用 Amazon SDK 的更多信息,请参阅 Amazon 软件开发工具包

创建 OpenSearch Service 域 (Amazon CloudFormation)

OpenSearch Service 与 Amazon CloudFormation 集成,后者是一项服务,可帮助您对 Amazon 资源进行建模和设置,这样您只需花较少的时间来创建和管理资源与基础设施。您可以创建一个模板以描述要创建的 OpenSearch 域,CloudFormation 将为您预置和配置该域。有关更多信息(包括 OpenSearch 阈的 JSON 和 YAML 模板示例),请参阅 Amazon CloudFormation 用户指南中的 Amazon OpenSearch Service 资源类型参考

配置访问策略

Amazon OpenSearch Service 提供了多种方式来配置 OpenSearch Service 域访问。有关更多信息,请参阅 Amazon OpenSearch Service 中的 Identity and Access Management在 Amazon OpenSearch Service 中进行精细访问控制

控制台提供了预配置的访问策略,您可以针对自己域的特定需求自定义这些策略。您也可以从其他 OpenSearch Service 域导入访问策略。有关这些访问策略如何与 VPC 访问交互的信息,请参阅关于 VPC 域的访问策略

配置访问策略(控制台)
  1. 转至 https://aws.amazon.com,然后选择登录控制台

  2. 分析下,选择 Amazon OpenSearch Service

  3. 在导航窗格中的下,选择要更新的域。

  4. 选择操作编辑安全配置

  5. 编辑访问策略 JSON,或导入预配置的选项。

  6. 选择保存更改

使用迁移助手迁移至 OpenSearch Service

Amazon OpenSearch Service 迁移助手是一款全面的解决方案,可简化从自行管理的 Elasticsearch 或 OpenSearch 集群迁移至 OpenSearch Service 的过程。本工具包旨在解决迁移过程中的操作复杂性,同时确保数据完整性,并在迁移后验证性能表现。

概览

无论您是在 Amazon 中设置概念验证、迁移生产工作负载,还是升级至最新 OpenSearch 版本,迁移助手都将提供分步指导、最佳实践和工具,助您充分释放 OpenSearch 迁移的全部潜力。

迁移助手提供以下主要优势:

  • 元数据迁移:迁移集群元数据,包括索引设置、类型映射、索引模板和别名

  • 数据迁移:将现有数据从旧版集群迁移到 OpenSearch Service 域

  • 实时流量处理:以极低的延迟拦截自行管理集群的实时流量,并将其重定向到 OpenSearch Service 域

  • 流量复制:在目标集群上复制生产流量,以验证准确性和性能

  • 性能测试:通过捕获和重播请求模式模拟真实世界流量,以微调系统性能

  • 全球可用性:部署在最常见的 Amazon 区域,实现全球覆盖和可扩展性

迁移助手支持从 Elasticsearch 版本 6.x 和 7.x 以及 OpenSearch 版本 1.x 和 2.x 进行迁移。有关更多信息,请参阅支持的迁移途径

注意

请注意以下关于迁移助手的其他信息。

  • 该工具支持多跳迁移(例如,一次跳转即可实现从 Elasticsearch 5.x 迁移至 OpenSearch Service 3.x)。

  • 您可以回滚迁移操作。

  • 对于某些使用案例,该工具几乎不需要或完全不需要停机时间。

  • 该工具提供高性能的回填功能,且不会影响源集群。

迁移场景

迁移助手旨在处理以下迁移场景:

元数据迁移

将源集群中的集群元数据(如索引设置、别名和模板)迁移至目标 OpenSearch Service 域。

回填迁移

将现有或历史数据从源集群迁移至目标 OpenSearch Service 域,确保所有重要数据在迁移过程中得到完整保留。

实时流量迁移

将源集群中的实时流量持续复制到目标 OpenSearch Service 域,确保迁移过程中服务可用性不受影响。

重要

迁移策略并非普遍适用。迁移助手基于工程最佳实践提供指导,但在迁移生产工作负载之前,您应评估自身具体需求并进行全面测试。

开始使用迁移助手

Amazon OpenSearch Service 迁移助手现已作为 Amazon 解决方案提供,包含全面的文档、部署模板和源代码。要开始使用迁移助手:

访问迁移助手资源
  1. 请参阅 Amazon OpenSearch Service 迁移助手解决方案概述中的完整解决方案文档。

  2. 阅读部署规划指南,了解相关成本和要求。

  3. 使用部署说明部署解决方案,并按照使用指南执行迁移。

对于开发人员和高级用户,可通过 OpenSearch 迁移 GitHub 存储库获取迁移助手的源代码和其他文档。

解决方案架构

部署到 Amazon 中后,迁移助手使用多种 Amazon 服务提供全面的迁移解决方案:

  • Amazon CloudFormation:提供基础设施即代码(IaC)模板以部署和配置迁移助手

  • OpenSearch Service:迁移后搜索和分析工作负载的目标服务

  • Amazon Managed Streaming for Apache Kafka:提供流处理功能,实现 HTTP 流量的持久性存储和重复使用

  • Amazon Elastic Container Service:在安全、可扩展的容器中运行迁移管理控制台和流量回放器

  • Amazon Elastic File System:为源集群和目标集群的请求与响应数据提供可扩展的持久性存储

  • Amazon Simple Storage Service:存储快照以用于历史回填任务和基础设施即代码内容

有关详细的架构信息,请参阅迁移助手架构详细信息

高级集群设置

使用高级选项来配置以下内容:

请求体中的索引

指定是否允许在 HTTP 请求正文中显式引用索引。将此属性设置为 false 可防止用户绕过子资源的访问控制。默认情况下,该值为 true。有关更多信息,请参阅 高级选项和 API 注意事项

字段数据缓存分配

指定分配到字段数据的 Java 堆空间的百分比。默认情况下,此设置为 JVM 堆的 20%。

注意

许多客户查询轮换每日索引。我们建议您在大多数用例中将 indices.fielddata.cache.size 配置为 JVM 堆的 40% 来开始基准测试。但是,如果您有非常大的索引,您可能需要大型字段数据缓存。

最大子句数

指定 Lucene 布尔查询中允许的子句的最大数量。默认值为 1024。如果查询具有的子句数超过了允许的子句数,则会导致 TooManyClauses 错误。有关更多信息,请参阅 Lucene 文档