

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

# 在 Amazon OpenSearch 服务中进行配置更改
<a name="managedomains-configuration-changes"></a>

更新域名时，Amazon S OpenSearch ervice 使用*蓝/绿*部署流程。 blue/green 部署为域更新创建了一个空闲环境，该环境会复制生产环境，并在更新完成后将用户路由到新环境。在 blue/green 部署中，蓝色环境是当前的生产环境。绿色环境是闲置环境。

将数据从蓝色环境迁移至绿色环境。新环境准备就绪后，S OpenSearch ervice 会切换环境，将绿色环境提升为新的生产环境。切换时不会丢失数据。此实践可在部署到新环境未成功的情况下最大程度地减少停机时间并维护原始环境。

**Topics**
+ [通常会导致 blue/green 部署的更改](#bg)
+ [通常不会导致 blue/green 部署的更改](#nobg)
+ [蓝/绿部署选项](#bg-deployment-options)
+ [确定更改是否会导致部 blue/green 署](#dryrun)
+ [跟踪配置更改](#initiating-tracking-configuration-changes)
+ [配置更改的阶段](#managedomains-config-stages)
+ [blue/green 部署对性能的影响](#performance-impact-bluegreen)
+ [配置更改的费用](#managedomains-config-charges)
+ [对验证错误进行故障排除](#validation)

## 通常会导致 blue/green 部署的更改
<a name="bg"></a>

以下操作会导致 blue/green 部署：
+ 更改实例类型
+ 启用精细访问控制
+ 执行服务软件更新
+ 启用或禁用专用主节点
+ 启用或禁用不带待机功能的多可用区
+ 更改存储类型、卷类型或卷大小
+ 选择不同的 VPC 子网
+ 添加或删除 VPC 安全组
+ 添加或删除专用协调器节点
+ 为控制面板启用或禁用 Amazon Cognito 身份验证 OpenSearch 
+ 选择不同的 Amazon Cognito 用户池或身份池
+ 修改高级设置
+ 升级到新 OpenSearch 版本（在部分或全部升级过程中，OpenSearch 仪表板可能不可用）
+ 启用静态数据加密或 node-to-node加密
+ 启用或禁用 UltraWarm 或冷存储
+ 禁用自动调整和回滚其更改
+ 关联和取消关联可选插件与域
+ 增加具有两个专用主节点的多可用区域的专用主节点数量
+ 减少 EBS 卷大小
+ 更改 EBS 卷大小、IOPS 或吞吐量（前提是您上次进行的更改正在执行或距离上次更改的时间不到 6 小时）
+ 允许向发布审核日志 CloudWatch。

对于带待机功能的多可用区的域，一次只能提出一个更改请求。如果已有更改正在执行，则会拒绝新请求。您可以使用 `DescribeDomainChangeProgress` API 查看当前更改状态。

## 通常不会导致 blue/green 部署的更改
<a name="nobg"></a>

在*大多数*情况下，以下操作不会导致 blue/green 部署：
+ 修改访问策略
+ 修改自定义端点
+ 更改传输层安全性协议 (TLS) 策略
+ 更改自动快照时间
+ 启用或禁用 **Require HTTPS (要求 HTTPS)**
+ 在不回滚其更改的情况下启用自动调整或禁用它
+ 如果您的域有专用的主节点，请更改数据节点或 UltraWarm 节点数量 
+ 如果域具有专用主节点，则更改专用主实例类型或节点数量（具有两个专用主节点的多可用区域除外）
+ 启用或禁用向发布错误日志或慢速日志 CloudWatch
+ 禁止向发布审核日志 CloudWatch
+ 增加 gp3 EBS 类型的卷大小、IOPS 或吞吐量。
**注意**  
在 2026 年 3 月 10 日之前，仅对 gp3 不超过 3 TiB 的卷支持就地增加音量。2026 年 3 月 10 日，该限制被取消，允许就地音量增加到 3 TiB 以上。但是，如果在取消此限制之前，您的集群的卷大小超过 3 TiB，则首次增加容量需要进行部署。blue/green deployment. All subsequent volume increases for that cluster will be performed as in-place updates and will not require a blue/green
+ 添加或删除标签

**注意**  
存在一些异常情况，具体取决于您的服务软件版本。如果您想确保更改不会导致 blue/green 部署，[请在更新域名之前进行试运行](#dryrun)（如果此选项可用）。某些更改不提供试运行选项。一般而言，我们建议您在流量高峰时段之外对集群进行更改。

## 蓝/绿部署选项
<a name="bg-deployment-options"></a>

选择部署策略以控制在更新时没有足够容量可用时群集如何处理部署。

1. **Full Swap 蓝/绿**-默认部署行为。需要预先提供全部实例容量，从而确保在有容量可用时以最快的速度进行部署。如果无法分配足够的容量，则部署将无法进行。

1. **容量优化**-建议用于拥有 30 个以上数据节点的集群。先尝试完全 blue/green 交换，如果容量不足，则继续分批部署。确保即使容量有限也能完成部署。由于部署将分批完成，因此完成时间可能会增加。

------
#### [ Console ]

**对于编辑域流程：**

1. 打开亚马逊 OpenSearch 服务控制台，网址为[https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home)。

1. 在导航窗格的 “**域**” 下，选择要打开集群配置的域名。

1. 单击 “**集群配置**” 选项卡右侧的 “**编辑**” 按钮。

1. 从**部署策略**选项中选择域更新所需的配置：

   1. **Full Swap 蓝/绿**-默认部署行为。需要预先提供全部实例容量，从而确保在有容量可用时以最快的速度进行部署。如果无法分配足够的容量，则部署将无法进行。

   1. **容量优化**-建议用于拥有 30 个以上数据节点的集群。先尝试完全 blue/green 交换，如果容量不足，则继续分批部署。确保即使容量有限也能完成部署。由于部署将分批完成，因此完成时间可能会增加。

1. 选择**保存更改**。

**对于创建域流程：**

1. 打开亚马逊 OpenSearch 服务控制台，网址为[https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home)。

1. 在左侧导航窗格中，选择 **域**。

1. 点击**创建域名**按钮。

1. 为域选择所有必需的配置。

1. 从**部署策略**选项中选择域更新所需的配置：

   1. **Full Swap 蓝/绿**-默认部署行为。需要预先提供全部实例容量，从而确保在有容量可用时以最快的速度进行部署。如果无法分配足够的容量，则部署将无法进行。

   1. **容量优化**-建议用于拥有 30 个以上数据节点的集群。先尝试完全 blue/green 交换，如果容量不足，则继续分批部署。确保即使容量有限也能完成部署。由于部署将分批完成，因此完成时间可能会增加。

1. 点击右侧**域摘要**面板上的 “**创建**” 按钮。

------
#### [ API ]

您可以使用 [UpdateDomainConfig](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_UpdateDomainConfig.html)API 配置部署策略。

**容量优化选项**

```
POST https://es.{{us-east-1}}.amazonaws.com/2021-01-01/opensearch/domain/{{my-domain}}/config
{
   "DeploymentStrategyOptions": {
    "DeploymentStrategy": "CapacityOptimized"
   }
}
```

**默认选项**

```
POST https://es.{{us-east-1}}.amazonaws.com/2021-01-01/opensearch/domain/{{my-domain}}/config
{
   "DeploymentStrategyOptions": {
    "DeploymentStrategy": "Default"
   }
}
```

------

## 确定更改是否会导致部 blue/green 署
<a name="dryrun"></a>

您可以测试某些类型的计划配置更改，以确定它们是否会导致 blue/green 部署，而不必承诺这些更改。发起配置更改之前，请使用控制台或 API 运行验证检查，以确保域符合更新条件。

------
#### [ Console ]

**验证配置更改**

1. 导航到亚马逊 OpenSearch 服务控制台，网址为[https://console.aws.amazon.com/aos/](https://console.aws.amazon.com/aos/)。

1. 在左侧导航窗格中，选择 **Domains**（域）。

1. 选择要进行配置更改的域。随即打开域详细信息页面。选择 **Actions**（操作）下拉菜单，然后选择 **Edit cluster configuration**（编辑集群配置）。

1. 对域进行更改，例如更改实例类型或节点数量。

1. 在**试运行分析**下，选择**运行**。试运行会验证您的配置更改是否存在错误，并确定是否需要 blue/green 部署。

1. 试运行完成后，结果将显示在页面底部，同时显示试运行 ID。分析表明配置更改是否需要 blue/green 部署。

   每次试运行都会覆盖之前的运行结果。要保留每次运行的详细信息，请保存其试运行 ID。试运行的有效期为 90 天，或者直到您进行配置更新。

1. 要继续更新配置，请选择**保存更改**。否则，选择**取消**。任一选项都会带您返回到**集群配置**选项卡。在此选项卡上，您可以选择**试运行详细信息**以查看最新试运行的详细信息。本页还包括试运行前的配置和试运行配置之间的 side-by-side比较。

------
#### [ API ]

您可以通过配置 API 来执行试运行验证。要使用 API 测试更改，请将 `DryRun` 设置为 `true`，将 `DryRunMode` 设置为 `Verbose`。除了确定更改是否会启动蓝绿部署外，Verbose 模式还会运行验证检查。例如，此[UpdateDomainConfig](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_UpdateDomainConfig.html)请求测试启用后生成的部署类型 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,
   "DryRunMode": "Verbose"
}
```

该请求将运行验证检查并返回更改将会导发的部署类型，但实际上不会执行更新：

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

可能的部署类型如下：
+ `Blue/Green`：此更改将会导致蓝绿部署。
+ `DynamicUpdate`：此更改不会导致蓝绿部署。
+ `Undetermined`：域仍处于正在处理状态，因此无法确定部署类型。
+ `None`：未发生配置更改。

如果验证失败，将返回[验证失败](#validation)列表。

```
{
   "ClusterConfig":{
      "..."
   },
   "DryRunProgressStatus":{
      "CreationDate":"2023-01-12T01:14:33.847Z",
      "DryRunId":"db00ca39-48b2-4774-bbd3-252cf094d205",
      "DryRunStatus":"failed",
      "UpdateDate":"2023-01-12T01:14:33.847Z",
      "ValidationFailures":[
         {
            "Code":"Cluster.Index.WriteBlock",
            "Message":"Cluster has index write blocks."
         }
      ]
   }
}
```

如果状态仍为`pending`，则可以在后续[DescribeDryRunProgress](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_DescribeDryRunProgress.html)调用的 UpdateDomainConfig 响应中使用试运行 ID 来检查验证状态。

```
GET https://es.{{us-east-1}}.amazonaws.com/2021-01-01/opensearch/domain/{{my-domain}}/dryRun?dryRunId={{my-dry-run-id}}
{
    "DryRunConfig": null,
    "DryRunProgressStatus": {
        "CreationDate": "2023-01-12T01:14:42.998Z",
        "DryRunId": "db00ca39-48b2-4774-bbd3-252cf094d205",
        "DryRunStatus": "succeeded",
        "UpdateDate": "2023-01-12T01:14:49.334Z",
        "ValidationFailures": null
    },
    "DryRunResults": {
        "DeploymentType": "Blue/Green",
        "Message": "This change will require a blue/green deployment."
    }
}
```

要在不进行验证检查的情况下运行试运行分析，请在使用配置 API 时将 `DryRunMode` 设置为 `Basic`。

------
#### [ Python ]

以下 Python 代码使用 [UpdateDomainConfig](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_UpdateDomainConfig.html)API 执行试运行验证检查，如果检查成功，则在不进行试运行的情况下调用相同的 API 来开始更新。如果检查失败，脚本将输出错误并停止。

```
import time
import boto3

client = boto3.client('opensearch')

response = client.UpdateDomainConfig(
    ClusterConfig={
        'WarmCount': 3,
        'WarmEnabled': True,
        'WarmCount': 123,
    },
    DomainName='test-domain',
    DryRun=True,
    DryRunMode='Verbose'
)

dry_run_id = response.DryRunProgressStatus.DryRunId

retry_count = 0

while True:

    if retry_count == 5:
        print('An error occured')
        break

    dry_run_progress_response = client.DescribeDryRunProgress('test-domain', dry_run_id)
    dry_run_status = dry_run_progress_response.DryRunProgressStatus.DryRunStatus

    if dry_run_status == 'succeeded':
        client.UpdateDomainConfig(
            ClusterConfig={
            'WarmCount': 3,
            'WarmEnabled': True,
            'WarmCount': 123,
        })
        break

    elif dry_run_status == 'failed':
        validation_failures_list = dry_run_progress_response.DryRunProgressStatus.ValidationFailures
        for item in validation_failures_list:
            print(f"Code: {item['Code']}, Message: {item['Message']}")
        break

    retry_count += 1
    time.sleep(30)
```

------

## 跟踪配置更改
<a name="initiating-tracking-configuration-changes"></a>

您可以每次请求一项配置更改，或将多个更改分入单个请求中。使用控制台中的**域处理状态**和**配置更改状态**字段，以跟踪配置更改。等待域状态变为 `Active` 后再请求其他更改。

域可能处于以下**处理状态**：
+ `Active`：未执行任何配置更改。您可以提交新的配置更改请求。
+ `Creating`：正在创建域。
+ `Modifying`：正在执行配置更改，例如添加新的数据节点、EBS、gp3、IOPS 预置或设置 KMS 密钥等。
+ `Upgrading engine version`：正在执行引擎版本升级。
+ `Updating service software`：正在执行软件更新。
+ `Deleting`：正在删除域。
+ `Isolated`：域已暂停。

域可能处于以下**配置更改状态**：
+ `Pending`：配置更改请求已提交。
+ `Initializing`：服务正在启动配置更改。
+ `Validating`：服务正在验证请求的更改和所需资源。
+ `Awaiting user inputs`：服务预期配置更改继续进行，例如实例类型更改。您可以编辑配置更改。
+ `Applying changes`：服务正在应用请求的配置更改。
+ `Cancelled`：配置更改已取消。选择**取消**以回滚所有更改。
+ `Completed`：请求的配置更改已成功完成。
+ `Validation failed`：请求的配置更改未能完成。未应用任何配置更改。
**注意**  
验证失败可能是因域中存在红色索引、所选实例类型不可用或磁盘空间不足所导致。有关验证错误的列表，请参阅[对验证错误进行故障排除](#validation)。出现验证失败事件时，您可以取消、重试或编辑配置更改。

配置更改完成后，域状态将变回 `Active`。

您可以查看集群运行状况和 Amazon CloudWatch 指标，发现域更新发生时，集群中的节点数量会暂时增加（通常是翻一番）。在下图中，您可以看到配置更改期间的节点从 11 个翻倍至 22 个，然后在更新完成后返回至 11 个。

![节点数在域配置更改期间从 11 翻倍至 22。](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/NodesDoubled.png)


这种临时的增加可能会对集群的[专用主节点](managedomains-dedicatedmasternodes.md)造成压力，其要管理的节点数可能突然增加。当 S OpenSearch ervice 将数据从旧集群复制到新集群时，它还可以增加搜索和索引延迟。在集群上保持足够的容量以处理与这些 blue/green 部署相关的开销非常重要。

**重要**  
在配置更改和服务维护期间，您*不会* 产生任何额外费用。您只需要为您的集群请求的节点数量付费。有关具体信息，请参阅[配置更改的费用](#managedomains-config-charges)。

为防止专用主节点过载，您可以使用 [Amazon CloudWatch 指标监控使用情况](managedomains-cloudwatchmetrics.md)。有关推荐的最大值，请参阅[Amazon OpenSearch 服务的推荐 CloudWatch 警报](cloudwatch-alarms.md)。

## 配置更改的阶段
<a name="managedomains-config-stages"></a>

在您启动配置更改后，S OpenSearch ervice 会通过一系列步骤来更新您的域名。您可以在控制台中的**配置更改状态**下查看配置更改的进度。更新经过的确切步骤取决于您正在进行的更改的类型。此外，您还可以使用 [DescribeDomainChangeProgress](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_DescribeDomainChangeProgress.html) API 操作监控配置更改。

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


| 阶段名称 | 说明 | 
| --- | --- | 
| 验证 | 验证域是否符合更新条件，如有必要，显示[验证问题](#validation)。 | 
| 创建新环境 | 完成必要的先决条件并创建开始 blue/green 部署所需的资源。 | 
| 预置新节点 | 在新环境中创建新的实例组。 | 
| 新节点上的流量路由 | 将流量重定向到新创建的数据节点。 | 
| 旧节点上的流量路由 | 禁用旧数据节点上的流量。 | 
| 准备要删除的节点 | 准备移除节点。此步骤仅在您将域缩小（例如，从 8 个节点缩小到 6 个节点）时才会发生。 | 
| 将分片复制到新节点 | 将分片从旧节点移动到新节点。 | 
| 终止节点 | 删除分片后，终止并删除旧节点。 | 
| 删除较旧资源 | 删除与旧环境关联的资源（例如负载均衡器）。 | 
| 动态更新 | 当更新不需要 blue/green 部署并且可以动态应用时显示。 | 
| 应用与专用主节点相关的更改 | 当专用主实例类型或计数更改时显示。 | 
| 应用与卷相关的更改 | 卷大小、类型、IOPS 和吞吐量发生变化时显示。 | 

## blue/green 部署对性能的影响
<a name="performance-impact-bluegreen"></a>

在 blue/green 部署期间，您的 Amazon S OpenSearch ervice 集群可用于传入的搜索和索引请求。但是，您可能会遇到以下性能问题：
+ 由于集群需要管理更多的节点，领导节点的使用量暂时增加。
+ 由于 OpenSearch 服务将数据从旧节点复制到新节点，因此增加了搜索和索引延迟。
+ 随着 blue/green 部署期间集群负载的增加，对传入请求的拒绝率增加。
+ 为避免延迟问题和请求被拒绝，您应该在集群运行良好且网络流量较低时运行 blue/green 部署。

## 配置更改的费用
<a name="managedomains-config-charges"></a>

如果您更改域的配置，S OpenSearch ervice 会按中所述创建一个新集群[在 Amazon OpenSearch 服务中进行配置更改](#managedomains-configuration-changes)。在从旧群集迁移到新群集时，会产生以下费用：
+ 如果您更改实例类型，第一个小时两个集群都会收费。第一个小时后，您只需为新群集付费。EBS 卷不会收取两次费用，因为它们是您的集群的一部分，因此它们的计费遵循实例计费。

  **示例：**您将配置从三个 `m3.xlarge` 实例更改为四个 `m4.large` 实例。在第一个小时中，两个集群都需要收费 (3 个 `m3.xlarge` \+ 4 个 `m4.large`)。第一个小时后，您只需为新集群付费 (4 个 `m4.large`)。
+ 如果您未更改实例类型，第一个小时您只需要为最大的集群付费。第一个小时后，您只需为新集群付费。

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

## 对验证错误进行故障排除
<a name="validation"></a>

当您启动配置更改或执行 OpenSearch 或 Elasticsearch 版本升级时， OpenSearch 服务会首先执行一系列验证检查，以确保您的域符合更新条件。如果其中任何一项检查失败，您将在控制台中收到通知，其中包含在更新域之前必须修复的特定问题。

OpenSearch 如果您的域名处于不可用状态超过 60 天，服务会将其隔离。我们会向您发送通知提醒以解决这些问题。如果您未在这段时间内解决问题，S OpenSearch ervice 会删除您的域名及其数据。

下表列出了 OpenSearch 服务可能出现的域名问题以及解决这些问题的步骤。


| 问题 | 错误代码 | 故障排除步骤 | 
| --- | --- | --- | 
| 未找到安全组 | SecurityGroupNotFound | 与您的 OpenSearch 服务域关联的安全组不存在。要解决此问题，请使用指定的名称[创建安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#creating-security-groups)。 | 
| 未找到子网 | SubnetNotFound | 与您的 OpenSearch 服务域关联的子网不存在。要解决此问题，请在您的 VPC 中[创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-subnets.html#create-subnets)。 | 
| 未配置服务相关角色 | SLRNotConfigured | 未配置[服务的 OpenSearch 服务相关角色](slr.md)。服务相关角色由 S OpenSearch ervice 预定义，包括服务代表您调用其他 AWS 服务所需的所有权限。如果该角色不存在，您可能需要[手动创建角色](slr-aos.md#create-slr)。 | 
| 没有足够的 IP 地址 | InsufficientFreeIPsForSubnets | 您的一个或多个 VPC 子网没有足够的 IP 地址，因此无法更新您的域。要计算您需要的 IP 地址数量，请参阅[在 VPC 子网中预留 IP 地址](vpc.md#reserving-ip-vpc-endpoints)。 | 
| Cognito 用户群体不存在 | CognitoUserPoolNotFound | OpenSearch 服务找不到 Amazon Cognito 用户池。确认您已创建一个用户池并具有正确的 ID。要查找该 ID，您可以使用 Amazon Cognito 控制台或以下 AWS CLI 命令：<pre>aws cognito-idp list-user-pools --max-results 60 --region {{us-east-1}}</pre> | 
| Cognito 身份群体不存在 | CognitoIdentityPoolNotFound | OpenSearch 服务找不到 Cognito 身份池。确认您已创建一个用户池并具有正确的 ID。要查找该 ID，您可以使用 Amazon Cognito 控制台或以下 AWS CLI 命令：<pre>aws cognito-identity list-identity-pools --max-results 60 --region {{us-east-1}}</pre> | 
| 找不到用户群体的 Cognito 域 | CognitoDomainNotFound | 用户池没有域名。您可以使用 Amazon Cognito 控制台或以下 AWS CLI 命令进行配置：<pre>aws cognito-idp create-user-pool-domain --domain {{my-domain}} --user-pool-id {{id}}</pre> | 
| 未配置 Cognito 角色 | CognitoRoleNotConfigured | 未配置向 OpenSearch 服务授予配置 Amazon Cognito 用户和身份池以及使用它们进行身份验证的权限的 IAM 角色。使用适当的权限集和信任关系配置角色。您可以使用控制台为您创建默认[CognitoAccessForAmazonOpenSearch](cognito-auth.md#cognito-auth-role)角色，也可以使用或 AWS SDK 手动配置角色。 AWS CLI  | 
| 无法描述用户群体 | UserPoolNotDescribable | 指定的 Amazon Cognito 角色无权描述与您的域关联的用户群体。确保角色权限策略允许 cognito-identity:DescribeUserPool 操作。请参阅 [关于这个 CognitoAccessForAmazonOpenSearch 角色](cognito-auth.md#cognito-auth-role)获取完全权限策略。 | 
| 无法描述身份群体 | IdentityPoolNotDescribable | 指定的 Amazon Cognito 角色无权描述与您的域关联的身份群体。确保角色权限策略允许 cognito-identity:DescribeIdentityPool 操作。请参阅 [关于这个 CognitoAccessForAmazonOpenSearch 角色](cognito-auth.md#cognito-auth-role)获取完全权限策略。 | 
| 无法描述用户群体和身份群体 | CognitoPoolsNotDescribable | 指定的 Amazon Cognito 角色无权描述与您的域关联的用户群体和身份群体。确保角色权限策略允许 cognito-identity:DescribeIdentityPool 和 cognito-identity:DescribeUserPool 操作。请参阅 [关于这个 CognitoAccessForAmazonOpenSearch 角色](cognito-auth.md#cognito-auth-role)获取完全权限策略。 | 
| KMS 密钥未启用。 | KMSKeyNotEnabled | 用于加密您的域名的 AWS Key Management Service (AWS KMS) 密钥已禁用。立即[重新启用密钥](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys)。 | 
| 自定义证书未处于 ISSUED（已签发）状态 | InvalidCertificate | 如果您的域使用自定义终端节点，则可以通过在 AWS Certificate Manager (ACM) 中生成 SSL 证书或导入自己的证书来保护该终端节点。证书状态必须为 **Issued**（已签发）。如果您收到此错误，请在 ACM 控制台中[检查证书状态](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-describe.html)。如果状态为“Expired（已过期）”、“Failed（失败）”、“Inactive（非活动）”或“Pending validation（待验证）”，请参阅 ACM [故障排除文档](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting.html)解决问题。 | 
| 容量不足，无法启动所选实例类型 | InsufficientInstanceCapacity | 请求的实例类型容量不可用。例如，您可能请求了五个`i3.16xlarge.search`节点，但是 S OpenSearch ervice 没有足够`i3.16xlarge.search`的主机可用，因此无法完成请求。在 S OpenSearch ervice 中查看[支持的实例类型](supported-instance-types.md)，然后选择其他实例类型。 | 
| 集群中的红色索引 | RedCluster | 集群中一个或多个索引的状态为红色，导致集群的整体状态为红色。要对此问题进行故障排除和修复，请参阅[红色集群状态](handling-errors.md#handling-errors-red-cluster-status)。 | 
| 内存断路器，请求过多 | TooManyRequests | 您的域名有太多的搜索和写入请求，因此 S OpenSearch ervice 无法更新其配置。您可以减少请求数量，将实例的 RAM 纵向扩展至高达 64 GiB，或者通过添加实例横向扩展。 | 
| 新配置无法保存数据（磁盘空间不足） | InsufficientStorageCapacity | 配置的存储大小无法保存域中的所有数据。要解决此问题，请[选择更大的卷](limits.md#ebsresource)，[删除未使用的索引](https://opensearch.org/docs/latest/opensearch/rest-api/index-apis/delete-index/)，或者增加集群中的节点数量以立即释放磁盘空间。 | 
| 固定到特定节点的分片 | ShardMovementBlocked | 您的域中的一个或多个索引已附加到特定节点，并且无法重新分配。发生这种情况的最可能原因是您配置了分片分配筛选，其使您能够指定允许哪些节点托管特定索引的分片。<br />要解决此问题，请从所有受影响的索引中删除分片分配筛选条件：<pre>PUT my-index/_settings<br />{  <br />  "settings": {    <br />    "index.routing.allocation.require._name": null  <br />  }<br />}</pre> | 
| 新配置无法保存所有分片（分片数） | TooManyShards | 您的域上的分片数过高，这会阻止 S OpenSearch ervice 将其移至新配置。要解决此问题，请通过添加与当前集群节点具有相同配置类型的节点来横向扩展域。请注意，[最大 EBS 卷大小](limits.md#ebsresource)取决于节点的实例类型。要防止将来出现此问题，请参阅 [选择分片数量](bp-sharding.md)并定义适合您的使用案例的分片策略。 | 
| 与您的域关联的子网不支持 IPv4 地址 | `ResultCodeIPv4BlockNotExists` | 要解决此问题，请根据配置的域 IP 地址类型在 VPC 中[创建子网或更新现有子网](https://docs.aws.amazon.com//vpc/latest/userguide/configure-subnets.html#subnet-IP-address-range)。如果您的域**IPv4仅**使用地址类型，请使用 IPv4仅限子网。如果您的域使用**双堆栈模式**，请使用双堆栈子网。 | 
| 与您的域关联的子网不支持 IPv6 地址 | `ResultCodeIPv6BlockNotExists` | 要解决此问题，请根据配置的域 IP 地址类型在 VPC 中[创建子网或更新现有子网](https://docs.aws.amazon.com//vpc/latest/userguide/configure-subnets.html#subnet-IP-address-range)。如果您的域**IPv4仅**使用地址类型，请使用 IPv4仅限子网。如果您的域使用**双堆栈模式**，请使用双堆栈子网。 | 