在 Amazon OpenSearch Service 中进行配置更改 - Amazon Opensearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

在 Amazon OpenSearch Service 中进行配置更改

Amazon OpenSearch Service 在更新域时使用蓝/绿部署过程。蓝/绿通常是指运行两个生产环境 (一个活动环境和一个空闲环境) 并在您进行软件更改时切换这两个环境的做法。对于 OpenSearch Service,它是指创建用于域更新的新环境并在这些更新完成后将用户路由至新环境的实践。此实践可在部署到新环境未成功的情况下最大程度地减少停机时间并维护原始环境。

通常会导发蓝/绿部署的更改

以下操作会引发蓝/绿部署:

  • 更改实例类型

  • 启用精细访问控制

  • 执行服务软件更新

  • 如果您的域没有 专用主节点,则更改数据实例计数

  • 启用或禁用专用主节点

  • 更改专用主节点计数或实例类型

  • 启用或禁用多 AZ

  • 更改存储类型、卷类型或卷大小

  • 选择不同的 VPC 子网

  • 添加或删除 VPC 安全组

  • 启用或禁用 OpenSearch 控制面板的 Amazon Cognito 身份认证

  • 选择不同的 Amazon Cognito 用户池或身份池

  • 修改高级设置

  • 允许或禁止将错误日志、审核日志或慢速日志发布到 CloudWatch

  • 升级到新的 OpenSearch 版本

  • 启用或禁用 Require HTTPS (要求 HTTPS)

  • 已启用静态数据加密或节点到节点加密

  • 启用或禁用 UltraWarm 存储或冷存储

  • 禁用自动调整和回滚其更改

  • 修改自定义端点

通常不会导发蓝/绿部署的更改

大多情况下,以下操作不会引发蓝/绿部署:

  • 更改访问策略

  • 更改自动快照时间

  • 在不回滚其更改的情况下启用自动调整或禁用它

  • 如果您的域具有专用主节点,则更改数据节点或 UltraWarm 节点计数

存在一些异常情况,具体取决于您的服务软件版本。如果您想确保更改绝对不会导发蓝/绿部署,请先执行试运行,然后再更新域。

确定更改是否会导发蓝/绿部署

您可以对计划的配置更改执行试运行,以确定它是否会导发蓝/绿部署。在控制台中进行更改时,系统会提示您选择 Run analysis(运行分析),OpenSearch Service 将会计算更改将会导发的部署类型。

此外,您还可以通过配置 API 执行试运行分析。例如,这个 UpdateDomainConfig 请求将会测试启用 UltraWarm 导发的部署类型:

POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/my-domain/config { "ClusterConfig": { "WarmCount": 3, "WarmEnabled": true, "WarmType": "ultrawarm1.large.search" }, "DryRun": true }

该请求将会返回更改将会导发的部署类型,但实际上不会执行更新:

{ "ClusterConfig": { ... }, "DryRunResults": { "DeploymentType": "Blue/Green", "Message": "This change will require a blue/green deployment." } }

可能的部署类型如下:

  • Blue/Green - 此更改将会导发蓝/绿部署。

  • DynamicUpdate - 此更改不会导发蓝/绿部署。

  • Undetermined - 域仍处于正在处理状态,因此无法确定部署类型。

  • None - 未发生配置更改。

启动配置更改

当您启动配置更改时,域状态将更改为处理直到 OpenSearch 服务创建了一个具有最新服务软件,此时它会更改回处于活动状态。在特定服务软件更新期间,整个时间状态将保持为 Active (活动)。在这两种情况下,您可以查看群集运行状况和 Amazon CloudWatch 指标,并会在进行域更新时发现群集中的节点数暂时增加(通常加倍)。在下图中,您可以看到配置更改期间的节点从 11 个翻倍至 22 个,然后在更新完成后返回至 11 个。


      节点数在域配置更改期间从 11 翻倍至 22。

这种临时的增加可能会对集群的专用主节点造成压力,其要管理的节点数可能突然增加。它还可以增加搜索和索引延迟,因为 OpenSearch Service 将数据从旧集群复制到新集群。在集群上保持充足的容量很重要,这有助于处理与这些蓝/绿部署相关的开销。

重要

在配置更改和服务维护期间,您不会 产生任何额外费用。您只需要为您的集群请求的节点数量付费。有关具体信息,请参阅配置更改的费用

为防止专用主节点过载,您可以使用 Amazon CloudWatch 指标监控使用情况。有关推荐的最大值,请参阅为 Amazon OpenSearch Service 推荐的 CloudWatch 警报

配置更改的阶段

启动配置更改后,OpenSearch Service 将通过一系列步骤来更新您的域。您可以在控制台中的 Domain status(域状态)下查看配置更改的进度。更新经过的确切步骤取决于您正在进行的更改的类型。此外,您还可以使用 DescribeDomainChangeProgress API 操作监控配置更改。

在某些情况下,例如在服务软件更新期间,在蓝/绿部署实际开始之前,您不会看到进度信息。在此期间,域状态为 Pending Updates

以下是在配置更改期间更新可能经历的阶段:

阶段名称 描述

Creating a new environment

完成必要的先决条件并创建所需的资源以启动蓝/绿部署。

Provisioning new nodes

在新环境中创建新的实例组。

Traffic routing on new nodes

将流量重定向到新创建的数据节点。

Traffic routing on old nodes

禁用旧数据节点上的流量。

Preparing nodes for removal

准备移除节点。此步骤仅在您将域缩小(例如,从 8 个节点缩小到 6 个节点)时才会发生。

Copying shards to new nodes

将分片从旧节点移动到新节点。

Terminating nodes

删除分片后,终止并删除旧节点。

Deleting older resources

删除与旧环境关联的资源(例如负载均衡器)。

Dynamic update

当更新不需要蓝/绿部署且可以动态应用时显示。

配置更改的费用

如果您更改了某个域的配置,OpenSearch Service 将创建一个新集群,如 在 Amazon OpenSearch Service 中进行配置更改 中所述。在从旧群集迁移到新群集时,会产生以下费用:

  • 如果您更改实例类型,第一个小时两个集群都会收费。第一个小时后,您只需为新群集付费。EBS 卷不会收取两次费用,因为它们是您的集群的一部分,因此它们的计费遵循实例计费。

    示例:您将配置从三个 m3.xlarge 实例更改为四个 m4.large 实例。在第一个小时中,两个集群都需要收费 (3 个 m3.xlarge + 4 个 m4.large)。第一个小时后,您只需为新集群付费 (4 个 m4.large)。

  • 如果您未更改实例类型,第一个小时您只需要为最大的集群付费。第一个小时后,您只需为新集群付费。

    示例: 您将配置从六个 m3.xlarge 实例更改为三个 m3.xlarge 实例。在第一个小时,您只需要为最大的集群付费 (6 个 m3.xlarge)。第一个小时后,您只需为新集群付费 (3 个 m3.xlarge)。