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

Date de la dernière mise à jour : 23/04/2020

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

Brève description

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

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

  • Amazon Elasticsearch Service (Amazon ES) prend en charge les mises à niveau Elasticsearch sur place pour les domaines exécutant la version 5.1 ou une version ultérieure.
  • Si vous modifiez la valeur de la propriété EngineVersion lors d'une mise à jour de la pile, AWS CloudFormation effectue une mise à jour de remplacement pour un domaine Elasticsearch et crée un 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, consultez Gestion des domaines Amazon Elasticsearch Service.

Solution

1.    Dans votre modèle de pile AWS CloudFormation, ajoutez l’attribut UpdatePolicy, EnableVersionUpgrade.

2.    Pour permettre à AWS 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 Elasticsearch 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 Elasticsearch 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 Amazon ES 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 AWS CloudFormation ou de l'interface de ligne de commande AWS (AWS CLI).


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

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?