CloudFormation で AWS::Elasticsearch::Domain リソースのインプレースアップグレードまたは置換アップグレードを実行するにはどうすればよいですか?

最終更新日: 2021 年 7 月 23 日

AWS CloudFormation で AWS::Elasticsearch::Domain リソースのインプレースアップグレードを実行したいと考えています。

簡単な説明

AWS::Elasticsearch::Domain リソースのインプレースアップグレードを有効にするには、CloudFormation テンプレートで UpdatePolicy 属性 (EnableVersionUpgrade と呼ばれる) を使用する必要があります。EnableVersionUpgrade ポリシーを使用して、Amazon OpenSearch Service ドメインのインプレースアップグレードを有効または無効にできます。

インプレースアップグレードまたは置換アップグレードを実行する前に、以下の点を考慮してください。

  • Amazon OpenSearch Service は、バージョン 5.1 以降の OpenSearch Service のインプレースアップグレードをサポートしています。
  • スタックの更新中に EngineVersion プロパティの値を変更すると、CloudFormation は OpenSearch Service ドメインの置換での更新を実行します。その後、CloudFormation は新しいドメインを作成します。
  • インプレースアップグレードでは、ドメインの更新履歴を追跡したり、同じドメインエンドポイント URL を保持したりできます。ドメインとインターフェイスで接続するサービスの設定を変更する必要はありません。これらのサービスでは、ドメインの新しいバージョンにアクセスできます。
  • 置換での更新では、更新履歴を追跡することはできません。古いドメインは、新しいドメインとそのドメインの新しいエンドポイント URL に置き換えられます。ドメインとインターフェイスで接続するサービスが新しいドメインにアクセスできるようにするには、サービスの設定を変更する必要があります。詳細については、Amazon OpenSearch Service ドメインの作成と管理を参照してください。

解決方法

1.    CloudFormation スタックテンプレートに、EnableVersionUpgrade 更新ポリシーを追加します。

2.    CloudFormation でインプレースアップグレードが実行できるようにするには、EnableVersionUpgradetrue に、ElasticsearchVersion をバージョンの値に設定します。

- または -

AWS::Elasticsearch::Domain リソースを新しい AWS::Elasticsearch::Domain リソースに置き換えるには、EnableVersionUpgradefalse に設定するか、値は指定しないでおきます。

たとえば次のテンプレートでは、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 Command Line Interface (AWS CLI) のいずれかを使用してスタックを更新します。

Amazon OpenSearch Service は、Amazon Elasticsearch Service の後継サービスです。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?