Quero fazer um upgrade no local para meu recurso AWS::Elasticsearch::Domain no AWS CloudFormation.
Breve descrição
Para habilitar uma atualização no local para seu recurso AWS::Elasticsearch::Domain, você deve usar um atributo UpdatePolicy chamado EnableVersionUpgrade no modelo do CloudFormation. Você pode usar a política EnableVersionUpgrade para habilitar ou desabilitar atualizações no local para um domínio do Amazon OpenSearch Service.
Antes de realizar um upgrade no local ou de substituição, considere o seguinte:
- O Amazon OpenSearch Service oferece suporte a upgrades locais do OpenSearch Service para as versões 5.1 ou posteriores.
- Se você alterar o valor da propriedade EngineVersion durante uma atualização de pilha, o CloudFormation executará uma atualização de substituição para um domínio do OpenSearch Service. Em seguida, o CloudFormation criará um novo domínio.
- Com um upgrade no local, você pode rastrear o histórico de atualizações do seu domínio e manter o mesmo URL do endpoint de domínio. Você não precisa fazer alterações de configuração nos serviços que fazem interface com seu domínio. Esses serviços terão acesso à nova versão do seu domínio.
- Um upgrade de substituição não permite que você monitore seu histórico de atualizações. O domínio antigo é substituído por novos domínio e novo URL de endpoint. Para permitir que os serviços que interagem com seu domínio atual acessem o novo, você deve fazer alterações de configuração em seus serviços. Para obter mais informações, consulte Criação e gerenciamento de domínios do Amazon OpenSearch Service.
Resolução
1. No templete de pilha do CloudFormation, adicione a política de atualização EnableVersionUpgrade.
2. Para permitir que o CloudFormation execute um upgrade no local, defina EnableVersionUpgrade como true e defina ElasticsearchVersion como o valor da sua versão.
-ou-
Para substituir o recurso AWS::Elasticsearch::Domain por um novo recurso AWS::Elasticsearch::Domain, defina EnableVersionUpgrade como false ou não especifique nenhum valor.
Por exemplo, o atributo updatePolicy está configurado para um upgrade no local no seguinte modelo:
>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. Para concluir o processo de upgrade no local ou de substituição, atualize sua pilha usando o console do CloudFormation ou a AWS Command Line Interface (AWS CLI).
Informações relacionadas
Upgrade de domínios do Amazon OpenSearch Service