我想在 AWS CloudFormation 中就地升级我的 AWS::Elasticsearch::Domain 资源。
简短描述
要为您的 AWS:: Elasticsearch:: Domain 资源启用就地升级功能,您必须在 CloudFormation 模板中使用一个名为 EnableVersionUpgrade 的 UpdatePolicy 属性。您可以使用 EnableVersionUpgrade 策略为 Amazon OpenSearch Service 域启用或禁用就地升级。
在执行就地升级或替换升级之前,请注意以下事项:
- Amazon OpenSearch Service 支持版本 5.1 或更高版本的就地 OpenSearch Service 升级。
- 如果您在堆栈更新期间更改了 EngineVersion 属性的值,则 CloudFormation 将对 OpenSearch Service 域执行替换升级。然后,CloudFormation 会创建一个新的域。
- 借助就地升级功能,您可以跟踪域的升级历史记录并保持相同的域终端节点 URL。您无需更改与您的域交互的服务的配置。这些服务将有权访问您的域的新版本。
- 如果使用替换升级,您将不能跟踪升级历史记录。旧域将被新域和该域的新终端节点 URL 替换。要允许与您的域交互的服务访问新域,则必须更改服务的配置。有关更多信息,请参阅创建和管理 OpenSearch Service 域。
解决方法
1. 在您的 CloudFormation 堆栈模板中,添加 EnableVersionUpgrade 更新策略。
2. 要允许 CloudFormation 执行就地升级,请将 EnableVersionUpgrade 设置为 true 并将 ElasticsearchVersion 设置为您的版本的值。
-或者-
要将 AWS::Elasticsearch::Domain 资源替换为新的 AWS::Elasticsearch::Domain 资源,请将 EnableVersionUpgrade 设置为 false 或不指定任何值。
例如在下面的模板中,UpdatePolicy 属性被配置为允许就地升级:
>AWSTemplateFormatVersion: 2010-09-09
Description: AWS CloudFormation sample template to launch an Amazon OpenSearch Service Domain. Performing an update using the same template and supplying a different ElasticsearchVersion will perform an in-place upgrade for an Elasticsearch Domain resource.
Parameters:
ElasticsearchVersion:
Type: String
AllowedValues: ['5.6', '5.5', '5.3', '5.1', '6.8', '6.7', '6.5', '6.4', '6.3', '6.2', '6.0', '7.4', '7.1']
Default: 5.3
Description: The version of Amazon OpenSearch Service to use.
InstanceTypeForDataNode:
Type: String
Default: m3.medium.elasticsearch
Description: The instance type for your data nodes.
NumberOfDataNodes:
Type: String
Default: 1
Description: The number of data nodes (instances) to use in the OpenSearch Service domain.
Resources:
ElasticSearchDomain:
Type: AWS::Elasticsearch::Domain
UpdatePolicy:
EnableVersionUpgrade: true ### In-place Upgrade
Properties:
ElasticsearchClusterConfig:
InstanceCount: !Ref NumberOfDataNodes
InstanceType: !Ref InstanceTypeForDataNode
ElasticsearchVersion: !Ref ElasticsearchVersion
3. 要完成就地升级或替换升级过程,请使用 CloudFormation 控制台或 AWS 命令行界面 (AWS CLI) 更新堆栈。
相关信息
升级 Amazon OpenSearch Service 域