Comment puis-je effectuer une mise à niveau sur place ou une mise à niveau de remplacement pour ma ressource AWS::Elasticsearch::Domain dans CloudFormation ?

Date de la dernière mise à jour : 23/07/2021

Je souhaite effectuer une mise à niveau sur place de ma ressource AWS::Elasticsearch::Domain dans AWS CloudFormation.

Brève description

Pour activer une mise à niveau sur place de votre ressource AWS::Elasticsearch::Domain, vous devez utiliser un attribut UpdatePolicy appelé EnableVersionUpgrade dans votre modèle CloudFormation. Vous pouvez utiliser la politique EnableVersionUpgrade pour activer ou désactiver les mises à niveau sur place d'un domaine Amazon OpenSearch Service.

Avant d'effectuer une mise à niveau sur place ou une mise à niveau de remplacement, tenez compte des éléments suivants :

  • Amazon OpenSearch Service prend en charge les mises à niveau sur place OpenSearch Service pour les versions 5.1 ou ultérieures.
  • Si vous modifiez la valeur de la propriété EngineVersion lors d'une mise à jour de pile, CloudFormation effectue une mise à jour de remplacement pour un domaine OpenSearch Service. CloudFormation crée ensuite un nouveau domaine.
  • Avec une mise à niveau sur place, vous pouvez suivre l'historique de mise à niveau de votre domaine et conserver la même URL de point de terminaison de domaine. Vous n'avez pas besoin de modifier la configuration des services qui interagissent avec votre domaine. Ces services auront accès à la nouvelle version de votre domaine.
  • Une mise à niveau de remplacement ne vous permet pas de suivre votre historique de mise à niveau. L'ancien domaine est remplacé par un nouveau domaine et une nouvelle URL de point de terminaison pour le domaine. Pour autoriser les services qui interagissent avec votre domaine à accéder au nouveau domaine, vous devez modifier la configuration de vos services. Pour plus d'informations, veuillez consulter la rubrique Création et gestion de domaines Amazon OpenSearch Service.

Résolution

1.    Dans votre modèle de pile CloudFormation, ajoutez la politique de mise à jour EnableVersionUpgrade.

2.    Pour permettre à CloudFormation d'effectuer une mise à niveau sur place, affectez à EnableVersionUpgrade la valeur true et à ElasticsearchVersion la valeur de votre version.

-ou-

Pour remplacer la ressource AWS::Elasticsearch::Domain par une nouvelle ressource AWS::Elasticsearch::Domain, affectez à EnableVersionUpgrade la valeur false ou ne spécifiez aucune valeur.

Par exemple, l'attribut UpdatePolicy est défini pour une mise à niveau sur place dans le modèle suivant :

>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.    Pour terminer la mise à niveau sur place ou la mise à niveau de remplacement, mettez à jour votre pile à l'aide de la console CloudFormation ou d'AWS Command Line Interface (AWS CLI).

Amazon OpenSearch Service est le successeur d'Amazon Elasticsearch Service.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?