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 Création et gestion des domaines Amazon OpenSearch Service.
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 de remplacement, mettez à jour votre pile à l'aide de la console CloudFormation ou de l'AWS Command Line Interface (AWS CLI).
Informations connexes
Mise à niveau des domaines Amazon OpenSearch Service