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

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

创建和管理亚马逊 OpenSearch 服务域名

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

入门教程中的简短说明不同,本章描述了所有选项,并提供了相关的参考信息。您可以按照 OpenSearch 服务控制台、() 或 Amazon Command Line Interface (Amazon CLI) 的说明完成每个过程 Amazon SDKs。

创建 OpenSearch 服务域

本节介绍如何使用 OpenSearch 服务控制台或使用 Amazon CLI 带create-domain命令的 OpenSearch 服务域来创建服务域。

创建 OpenSearch 服务域(控制台)

使用以下过程通过控制台创建 OpenSearch 服务域。

创建 OpenSearch 服务域(控制台)
  1. 前往https://aws.amazon.com并选择 “登录到控制台”

  2. 在 “分析” 下,选择 “亚马逊 OpenSearch 服务”。

  3. 选择 Create domain(创建域)

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

    • 您的账户独一无二 Amazon Web Services 区域

    • 以小写字母开头

    • 包含 3 到 28 个字符

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

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

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

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

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

      重要

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

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

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

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

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

    注意

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

  10. 对于 Number of nodes (节点数),选择数据节点数。

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

    注意

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

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

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

    设置 描述
    EBS卷类型

    通用用途 (SSD)-gp3 和通用用途 (SSD)-gp2、或上一代 P rovisione d IOPS () 和 Magnetic(标准SSD)之间进行选择。

    EBS每个节点的存储大小

    输入要连接到每个数据节点的EBS卷的大小。

    EBS卷大小是按节点计算的。您可以通过将数据节点数乘以EBS卷大小来计算 OpenSearch 服务域的群集总大小。EBS卷的最小和最大大小取决于指定的EBS卷类型及其所连接的实例类型。要了解更多信息,请参阅EBS卷大小限制

    已配置 IOPS

    如果您选择了已配置IOPSSSD卷类型,请输入该卷可以支持的每秒 I/O 操作数 (IOPS)。

  13. (可选)如果您选择了gp3卷类型,请展开 “高级设置”,指定超出存储价格中包含的容量IOPS(每个数据节点每 3 TiB 卷大小最多配置 16,000 个)和吞吐量(每个数据节点每配置 3 TiB 卷大小最多可达 1,000 MiB/s),但需支付额外费用。有关更多信息,请参阅 Amazon OpenSearch 服务定价

  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访问公共访问。如果您选择 Public access (公有访问权限),请跳至下一步。如果您选择VPC访问权限,请确保满足先决条件,然后配置以下设置:

    设置 描述
    VPC

    选择要使用的虚拟私有云 (VPC) 的 ID。VPC和域必须相同 Amazon Web Services 区域,并且必须选择租期设置为 “默认” 的域。VPC OpenSearch 服务尚不支持使用专用租赁VPCs的服务。

    子网

    选择子网。如果您启用了多可用区,则必须选择两个或三个子网。 OpenSearch 服务将在子网中放置VPC端点和弹性网络接口

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

    安全组

    选择一个或多个VPC安全组,允许所需的应用程序通过该域公开的端口(80 或 443)和协议(HTTP或HTTPS)访问 OpenSearch 服务域。有关更多信息,请参阅 在 a 中启动您的亚马逊 OpenSearch 服务域名 VPC

    IAM角色

    保留默认角色。 OpenSearch 服务使用此预定义角色(也称为服务相关角色)来访问您的,VPC并在的子网中放置VPC终端节点和网络接口。VPC有关更多信息,请参阅用于VPC访问的服务关联角色。

    IP 地址类型

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

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

    • 如果要IAM用于用户管理,请选择 “设置IAMARN为主用户”,然后ARN为IAM角色指定。

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

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

    如果您禁用了精细访问控制,您仍然可以通过将域名置于域中VPC、应用限制性访问策略或两者兼而有之来控制对域的访问。您必须启用 node-to-node加密和静态加密才能使用精细的访问控制。

    注意

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

  21. (可选)如果要对 OpenSearch 仪表板使用SAML身份验证,请选择启用SAML身份验证并为该域配置SAML选项。有关说明,请参阅 SAML OpenSearch 仪表板的身份验证

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

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

    注意

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

  24. (可选)要要求发送到该域的所有请求都到达HTTPS,请HTTPS为该域的所有流量选择 “要求”。要启用 node-to-node加密,请选择 N ode-to-node 加密。有关更多信息,请参阅 Node-to-node Amazon OpenSearch 服务加密。要启用静态数据加密,请选中启用静态数据的加密复选框。如果选择带待机功能的多可用区部署选项,则预先选择这些选项。

  25. (可选)选择 “使用 Amazon 自有密钥”,让 S OpenSearch ervice 代表您创建 Amazon KMS 加密密钥(或使用已创建的密钥)。否则,请选择自己的KMS密钥。有关更多信息,请参阅 为 Amazon OpenSearch 服务加密静态数据

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

  27. 对于 Auto-Tune,请选择是否允许 S OpenSearch ervice 建议对您的域进行与内存相关的配置更改,以提高速度和稳定性。有关更多信息,请参阅 自动调整 Amazon OpenSearch Service

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

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

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

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

  31. 选择创建

创建 OpenSearch 服务域 (Amazon CLI)

您可以使用,而不是使用控制台创建 OpenSearch 服务域 Amazon CLI。有关语法,请参阅Amazon CLI命令参考 a 中的 Amazon OpenSearch 服务。

示例命令

第一个示例演示了以下 OpenSearch 服务域配置:

  • 使用 OpenSearch 版本 1.2 创建名为 mylogs 的 OpenSearch 服务域

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

  • 使用 100 GiB 的通用型 (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 服务域配置:

  • 使用 Elasticsearch 版本 7.10 创建名为 my logs 的 OpenSearch 服务域

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

  • 使用 100 GiB 的通用型 (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 服务域配置:

  • 使用 OpenSearch 版本 1.0 创建名为 mylogs 的 OpenSearch 服务域

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

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

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

  • 限制单个用户和单个子资源的访问权限,_searchAPI

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 服务域,但同名的域已存在,则CLI不会报告错误。相反,它会返回现有域的详细信息。

创建 OpenSearch 服务域 (Amazon SDKs)

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

创建 OpenSearch 服务域 (Amazon CloudFormation)

OpenSearch 服务与一项服务集成 Amazon CloudFormation,该服务可帮助您对 Amazon 资源进行建模和设置,从而减少创建和管理资源和基础架构所花费的时间。您可以创建一个描述您要创建的 OpenSearch 域的模板,并为您 CloudFormation 置备和配置该域。有关更多信息,包括 OpenSearch 域名的示例JSON和YAML模板,请参阅Amazon CloudFormation 用户指南中的 Amazon S OpenSearch ervice 资源类型参考

配置访问策略

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

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

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

  2. 在 “分析” 下,选择 “亚马逊 OpenSearch 服务”。

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

  4. 选择 Actions(操作)Edit security configuration(编辑安全配置)

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

  6. 选择 Save changes(保存更改)

高级集群设置

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

请求体中的索引

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

字段数据缓存分配

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

注意

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

最大子句数

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