创建和管理 Amazon OpenSearch Service 服务域
本章介绍如何创建和管理 Amazon OpenSearch Service 域。OpenSearch Service 域与 OpenSearch 集群是同义词。域是包含您指定的设置、实例类型、实例数和存储资源的群集。
与入门教程中的简短说明不同,本章描述了所有选项,并提供了相关的参考信息。您可以使用对 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 域(控制台)
-
转至 http://aws.amazon.com
,然后选择 Sign In to the Console。 -
在 Analytics 下,选择 Amazon OpenSearch Service。
-
选择 Create domain(创建域)。
-
对于 Domain name (域名),输入一个域名。名称必须符合以下标准:
-
对于您的账户和 Amazon Web Services 区域 而言是唯一的
-
以小写字母开头
-
包含 3 到 28 个字符
-
只包含小写字母 a-z、数字 0-9 和连字符 (-)
-
-
如果您想使用自定义端点,而不是标准的
https://search-
之一,选择启用定制终端节点并提供名称和证书。有关更多信息,请参阅为 Amazon OpenSearch Service 服务创建自定义终端节点。mydomain
-1a2a3a4a5a6a7a8a9a0a9a8a7a
.us-east-1
.es.amazonaws.com -
对于部署类型,选择与您的域的目的最匹配的选项:
-
Production (生产) 域使用多可用区和专用主节点来实现更高的可用性。
-
Development and testing (开发和测试) 域使用单个可用区。
-
Custom (自定义) 域能让您从所有配置选项中进行选择。
重要 不同部署类型在后续页面上显示不同的选项。这些步骤包括所有选项(Custom (自定义) 部署类型)。
-
-
适用于版本中,选择要使用的 OpenSearch 或旧版 Elasticsearch OSS 版本。建议您选择 OpenSearch 最新版本。有关更多信息,请参阅支持的 OpenSearch 和 Elasticsearch 版本。
(可选)如果您为您的域选择了 OpenSearch 版本,请选择启用兼容模式使 OpenSearch 将其版本报告为 7.10,这允许某些 Elasticsearch OSS 客户端和插件在连接之前检查版本,以继续使用该服务。
-
适用于自动调整中,选择是否允许 OpenSearch Service 对域建议与内存相关的配置更改,以提高速度和稳定性。有关更多信息,请参阅自动调整 Amazon OpenSearch Service。
(可选)选择添加维护时段以安排一个循环窗口,在此窗口期间自动调整更新域。
-
在数据节点下方,选择可用区的数量。有关更多信息,请参阅在 Amazon OpenSearch Service 中配置多 AZ 域。
注意 OpenSearch Service 控制台不支持在创建域后从多可用区配置迁移到单可用区配置。如果您选择了 2 个或 3 个可用区并且时候想改为单个可用区,则必须使用 Amazon CLI 或配置 API 禁用
ZoneAwarenessEnabled
参数。 -
对于 Instance type,为数据节点选择实例类型。有关更多信息,请参阅Amazon OpenSearch Service 中支持的实例类型。
注意 并非所有可用区都支持所有实例类型。如果您选择 3-AZ,我们建议您选择最新一代实例类型,如 R5 或 I3。
-
对于 Number of nodes (节点数),选择数据节点数。
有关最大值,请参阅集群和实例限制。单节点集群适合开发和测试,但不应用于生产工作负载。有关更多指导,请参阅调整 Amazon OpenSearch Service 域的大小和在 Amazon OpenSearch Service 中配置多 AZ 域。
-
对于 Storage type(存储类型),选择 EBS(默认)或 Instance(实例)。有关创建超大型域的指南,请参阅 Amazon OpenSearch Service 的 PB 规模。如果您选择 EBS,下列选项将会出现:
-
对于 EBS 卷类型,选择卷类型。
如果您选择 Provisioned IOPS (SSD) (预配置 IOPS (SSD)),则在 Provisioned IOPS (预配置 IOPS)下方,请输入所需的基准 IOPS 性能。有关更多信息,请参阅 Amazon EC2 文档中的 Amazon EBS 卷。
-
对于 EBS storage size per node (每个节点的 EBS 卷大小),请输入要附加到每个数据节点的 EBS 卷的大小。
EBS volume size (EBS 卷大小) 是按节点计算的。您可以通过将数据节点数乘以 EBS 卷大小来计算 OpenSearch Service 域的总集群大小。EBS 卷最小容量和最大容量取决于指定的 EBS 卷类型及其挂载到的实例类型。要了解更多信息,请参阅 EBS 卷大小限制。
-
-
选择专用主节点的类型和数量。专用主节点可增强集群稳定性,对于包含 10 个以上实例的域而言是必需的。对于生产域,我们建议使用 3 个专用主节点。
注意 对于专用主节点和数据节点,可以选择不同的实例类型。例如,您可以为数据节点选择通用或存储优化实例,但为专用主节点选择计算优化实例。
-
(可选)要启用 UltraWarm 存储,请选择 Enable UltraWarm data nodes (启用 UltraWarm 数据节点)。每种实例类型都有其可处理的最大存储量。将该数量乘以总可寻址温存储的温数据节点数。
-
(可选)要启用冷存储,选择启用冷存储。您必须启用 UltraWarm 才能启用冷存储。
-
(可选)对于运行 OpenSearch 或 Elasticsearch 5.3 及更高版本的域,快照配置快照是无关紧要的。有关自动制作快照的更多信息,请参阅在 Amazon OpenSearch Service 中创建索引快照。
-
在 Network(网络)下,选择 VPC access(VPC 访问权限)或 Public access(公有访问权限)。如果您选择 Public access (公有访问权限),请跳至下一步。如果选择 VPC access (VPC 访问权限),则确保您满足先决条件,然后执行下列操作:
-
对于 VPC,选择要使用的 VPC 的 ID。
注意 VPC 和域必须位于同一 Amazon Web Services 区域 中,并且您必须选择具有设置为 Default 的租赁的 VPC。OpenSearch Service 尚不支持使用专用租赁的 VPC。
-
对于 Subnet (子网),选择一个子网。如果您启用多 AZ,您必须选择两个或三个子网。OpenSearch Service 会将 VPC 终端节点和弹性网络界面放入子网中。
注意 必须在子网中为网络接口预留足够的 IP 地址。有关更多信息,请参阅在 VPC 子网中预留 IP 地址。
-
对于 Security groups(安全组),选择一个或多个 VPC 安全组,以允许您所需的应用程序在域公开的端口(80 或 443)和协议(HTTP 或 HTTPs)上访问 OpenSearch Service 域。有关更多信息,请参阅在 VPC 中启动您的 Amazon OpenSearch Service 域。
-
对于 IAM role,保留默认角色。OpenSearch Service 使用该预定义角色(也称服务相关角色)访问您的 VPC 并将 VPC 终端节点和网络接口放入 VPC 的子网中。有关更多信息,请参阅用于 VPC 访问的服务相关角色。
-
-
启用或禁用精细访问控制:
-
如果要使用 IAM 进行用户管理,请选择 Set IAM ARN as master user (将 IAM ARN 设置为主用户),然后为 IAM 角色指定 ARN。
-
如果要使用内部用户数据库,请选择 Create master user(创建主用户),并指定用户名和密码。
无论您选择哪个选项,主用户都可以访问集群中的所有索引和所有 OpenSearch API。有关选择哪个选项的指南,请参阅重要概念。
如果您禁用精细访问控制,则仍可以通过将域放置在 VPC 中并/或应用限制性访问策略来控制对域的访问。您必须启用节点到节点加密和静态加密才能使用精细访问控制。
注意 我们强烈建议您启用精细访问控制以保护域中的数据。精细访问控制提供群集、索引、文档和字段级别的安全性。
-
-
(可选)如果要对 OpenSearch 仪表板使用 SAML 身份验证,请选择准备 SAML 身份验证。域可用后,请参阅 针对 OpenSearch 控制面板的 SAML 身份验证 了解其他步骤。
-
(可选)如果要对 OpenSearch 仪表板使用 Amazon Cognito 身份验证,请选择启用 Amazon Cognito 身份验证。
-
选择您希望用于 OpenSearch 控制面板身份验证的 Amazon Cognito 身份池 ID。有关创建这些资源的指南,请参阅为 OpenSearch 控制面板配置 Amazon Cognito 认证。
-
-
对于域访问策略,选择访问策略或配置您自己的访问策略。如果选择创建自定义策略,则可以自行配置或从另一个域导入策略。有关更多信息,请参阅Amazon OpenSearch Service 中的 Identity and Access Management。
注意 如果您启用了 VPC 访问,则无法使用基于 IP 的策略。但您可以使用安全组来控制哪些 IP 地址可以访问该域。有关更多信息,请参阅关于 VPC 域的访问策略。
-
(可选)如果要求对域的所有请求都通过 HTTPS 到达,请选中 Require HTTPS for all traffic to the domain (要求到域的所有流量都使用 HTTPS)。
-
(可选)要启用节点到节点加密,请选中 Node-to-node encryption (节点到节点加密) 复选框。有关更多信息,请参阅Amazon OpenSearch Service 的节点到节点加密。
-
(可选)要启用静态数据加密,请选中 Enable encryption at rest(启用静态数据的加密)复选框。
选择 Use Amazon owned key(使用亚马逊云科技拥有的密钥)以让 OpenSearch Service 代表您创建 Amazon KMS 加密密钥(或使用它已创建的加密密钥)。否则,请选择您自己的 KMS 密钥。有关更多信息,请参阅Amazon OpenSearch Service 中的静态数据加密。
-
(可选)添加标签来描述您的域,以便您可以对该信息进行分类和筛选。有关更多信息,请参阅标记 Amazon OpenSearch Service 域。
-
(可选)展开 Advanced cluster settings(高级集群设置)。有关这些选项的摘要,请参阅高级集群设置。
-
选择 Create (创建) 。
创建 OpenSearch Service 域 (Amazon CLI)
除了使用控制台创建 OpenSearch Service 域之外,您还可以使用 Amazon CLI。有关语法,请参阅 Amazon CLI 命令参考
示例命令
这第一个示例演示了以下 OpenSearch Service 域配置:
-
使用 OpenSearch 版本 1.0 创建名为 mylogs 的 OpenSearch Service
-
用
r6g.large.search
实例类型的两个实例填充该域 -
使用 100GiB 通用型 (SSD) EBS 卷作为每个数据节点的存储
-
允许匿名访问,但只能从单个 IP 地址访问:192.0.2.0/32
aws opensearch create-domain --domain-name mylogs --engine-version OpenSearch_1.0 --cluster-config InstanceType=r6g.large.search,InstanceCount=2 --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 --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) 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 开发工具包(除 Android 和 iOS 开发工具包之外)支持 OpenSearch Service 配置 API 参考中定义的所有操作,包括 CreateDomain
。有关示例代码,请参阅 使用 Amazon SDK 与 Amazon OpenSearch Service 进行交互。有关安装和使用 Amazon 开发工具包的更多信息,请参阅 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 域的访问策略。
配置访问策略 (控制台)
-
转至 https://aws.amazon.com
,然后选择 Sign In to the Console (登录控制台)。 -
在 Analytics 下,选择 Amazon OpenSearch Service。
-
在导航窗格中的 Domains(域)下,选择要更新的域。
-
选择 Actions(操作)和 Edit security configuration(编辑安全配置)。
-
编辑访问策略 JSON,或导入预配置的选项。
-
选择保存更改。
高级集群设置
使用高级选项来配置以下内容:
- 请求体中的索引
-
指定是否允许在 HTTP 请求正文中显式引用索引。将此属性设置为
false
可防止用户绕过子资源的访问控制。默认情况下,该值为true
。有关更多信息,请参阅高级选项和 API 注意事项。 - 字段数据缓存分配
-
指定分配到字段数据的 Java 堆空间的百分比。默认情况下,此设置为 JVM 堆的 20%。
注意 许多客户查询轮换每日索引。我们建议您在大多数用例中将
indices.fielddata.cache.size
配置为 JVM 堆的 40% 来开始基准测试。但是,如果您有非常大的索引,您可能需要大型字段数据缓存。 - 最大子句数
-
指定 Lucene 布尔查询中允许的子句的最大数量。默认值为 1024。如果查询具有的子句数超过了允许的子句数,则会导致
TooManyClauses
错误。有关更多信息,请参阅 Lucene 文档。