如何在 CloudFormation 中为 AWS::Elasticsearch::Domain 资源执行就地升级或替换升级?

2 分钟阅读
0

我想在 AWS CloudFormation 中就地升级我的 AWS::Elasticsearch::Domain 资源。

简短描述

要为您的 AWS:: Elasticsearch:: Domain 资源启用就地升级功能,您必须在 CloudFormation 模板中使用一个名为 EnableVersionUpgradeUpdatePolicy 属性。您可以使用 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 域

AWS 官方
AWS 官方已更新 3 年前