Atualização de domínios do Amazon OpenSearch Service - Amazon OpenSearch Service

Atualização de domínios do Amazon OpenSearch Service

nota

As atualizações de versão do OpenSearch e do Elasticsearch são diferentes das atualizações do software de serviço. Para obter informações sobre a atualização do software de serviço do seu domínio do OpenSearch Service, consulte Atualizações de software de serviço no Amazon OpenSearch Service.

O Amazon OpenSearch Service oferece atualizações do no local para domínios que executam o OpenSearch 1.0 ou posterior ou o Elasticsearch 5.1 ou posterior. Se você usa serviços como Amazon Kinesis Data Firehose ou Amazon CloudWatch Logs para transmitir dados para o OpenSearch Service, verifique se esses serviços são compatíveis com a versão mais recente do OpenSearch antes de realizar a migração.

Caminhos de atualização com suporte

No momento, o OpenSearch Service oferece suporte aos seguintes caminhos de atualização:

Da versão Para a versão
OpenSearch 1.x OpenSearch 1.x
Elasticsearch 7.x

Elasticsearch 7.x ou OpenSearch 1.x

Importante

O OpenSearch 1.x introduz mudanças radicais. Para obter mais detalhes, consulte Amazon OpenSearch Service: Resumo das alterações.

Elasticsearch 6.8

Elasticsearch 7.x ou OpenSearch 1.x

Importante

O Elasticsearch 7.0 e o OpenSearch 1.0 incluem várias alterações importantes. Antes de iniciar uma atualização no local, recomendamos obter um snapshot manual do domínio da versão 6.x, restaurá-lo em um domínio da versão 7.x de teste ou da versão 1.x do OpenSearch e usar esse domínio de teste para identificar possíveis problemas de atualização. Para ver as mudanças radicais no OpenSearch 1.0, consulte Amazon OpenSearch Service: Resumo das alterações.

Assim como o Elasticsearch 6.x, os índices só podem conter um tipo de mapeamento, mas esse tipo agora deve ser chamado de _doc. Como resultado, determinadas APIs não exigem mais um tipo de mapeamento no corpo da solicitação (como a API _bulk).

Para novos índices, o Elasticsearch 7.x e o OpenSearch 1.x auto-hospedados têm uma contagem de fragmentos padrão de um. Domínios do OpenSearch Service no Elasticsearch 7.x e posteriores retêm o padrão anterior de cinco.

Elasticsearch 6.x

Elasticsearch 6.x

Elasticsearch 5.6

Elasticsearch 6.x

Importante

Os índices criados na versão 6.x não são mais compatíveis com vários tipos de mapeamento. Índices criados na versão 5.x ainda são compatíveis com vários tipos de mapeamento quando restaurados em um cluster 6.x. Verifique se o seu código de cliente cria apenas um único tipo de mapeamento por índice.

Para minimizar o tempo de inatividade durante a atualização do Elasticsearch 5.6 para o 6.x, o OpenSearch Service reindexa o índice .kibana para .kibana-6, exclui o .kibana, cria um alias chamado .kibana e mapeia o novo índice para o novo alias.

Elasticsearch 5.x Elasticsearch 5.x

O processo de atualização consiste em três etapas:

  1. Pre-upgrade checks (Verificações pré-atualização): o OpenSearch Service verifica se há problemas que possam bloquear uma atualização e não prosseguirá para a próxima etapa, a menos que essas verificações sejam bem-sucedidas.

  2. Snapshot: o OpenSearch Service faz uma cópia de snapshot do cluster do OpenSearch ou Elasticsearch e não prosseguirá para a próxima etapa a menos que o snapshot seja bem-sucedido. Se a atualização falhar, o OpenSearch Service usará esse snapshot para restaurar o cluster ao seu estado original. Para obter mais informações, consulte Não é possível reverter para a versão anterior após a atualização..

  3. Upgrade (Atualizar): o OpenSearch Service inicia a atualização, que pode levar de 15 minutos a várias horas para ser concluída. O OpenSearch Dashboards pode se tornar indisponível durante algumas ou todas as atualizações.

Iniciar uma atualização (console)

O processo de atualização é irreversível e não pode ser pausado nem cancelado. Durante uma atualização, não é possível fazer alterações de configuração no domínio. Antes de iniciar uma atualização, verifique novamente se deseja prosseguir. Você pode usar essas mesmas etapas para executar a verificação de pré-atualização sem realmente iniciar uma atualização.

Se o cluster tiver nós principais dedicados, as atualizações do OpenSearch serão concluídas sem tempo de inatividade. Caso contrário, o cluster poderá não responder durante vários segundos após a atualização enquanto elege um nó principal.

Para atualizar um domínio para uma versão posterior do OpenSearch ou Elasticsearch

  1. Crie um snapshot manual do seu domínio. Esse snapshot serve como um backup que você poderá restaurar em um novo domínio se desejar usar a versão anterior do OpenSearch novamente.

  2. Acesse http://aws.amazon.com e escolha Sign-in to console (Fazer login no console).

  3. Em Analytics (Análise), escolha Amazon OpenSearch Service.

  4. No painel de navegação, em Domains (Domínios), escolha o domínio que deseja atualizar.

  5. Escolha Actions (Ações) e Upgrade (Atualizar).

  6. Selecione a versão para a qual deseja atualizar. Se você estiver atualizando de uma versão do OpenSearch, a opção Enable compatibility mode (Habilitar modo de compatibilidade) será exibida. Se você habilitar essa configuração, o OpenSearch relatará sua versão como 7.10 para permitir que os clientes e plugins do Elasticsearch OSS, como Logstash, continuem funcionando com o Amazon OpenSearch Service. Você poderá desabilitar essa configuração posteriormente.

  7. Escolha Atualizar.

  8. Marque Status no painel do domínio para monitorar o status da atualização.

Iniciar uma atualização (CLI)

Você pode usar as seguintes operações para identificar a versão correta do OpenSearch ou Elasticsearch para seu domínio, iniciar uma atualização no local, executar a verificação de pré-atualização e visualizar o progresso:

  • get-compatible-versions (GetCompatibleVersions)

  • upgrade-domain (UpgradeDomain)

  • get-upgrade-status (GetUpgradeStatus)

  • get-upgrade-history (GetUpgradeHistory)

Para obter mais informações, consulte AWS CLI command reference (Referência de comandos da AWS CLI) e Amazon OpenSearch Service API Reference (Referência da API do Amazon OpenSearch Service).

Iniciar uma atualização (SDK)

Este exemplo usa o cliente Python de baixo nível OpenSearchService do AWS SDK for Python (Boto) para verificar se um domínio está qualificado para atualização para uma versão específica, atualizá-lo e verificar continuamente o status da atualização.

import boto3 from botocore.config import Config import time # Build the client using the default credential configuration. # You can use the CLI and run 'aws configure' to set access key, secret # key, and default Region. DOMAIN_NAME = '' # The name of the domain to upgrade TARGET_VERSION = '' # The version you want to upgrade the domain to. For example, OpenSearch_1.1 my_config = Config( # Optionally lets you specify a Region other than your default. region_name='us-east-1' ) client = boto3.client('opensearch', config=my_config) def check_versions(): """Determine whether domain is eligible for upgrade""" response = client.get_compatible_versions( DomainName=DOMAIN_NAME ) compatible_versions = response['CompatibleVersions'] for i in range(len(compatible_versions)): if TARGET_VERSION in compatible_versions[i]["TargetVersions"]: print('Domain is eligible for upgrade to ' + TARGET_VERSION) upgrade_domain() print(response) else: print('Domain not eligible for upgrade to ' + TARGET_VERSION) def upgrade_domain(): """Upgrades the domain""" response = client.upgrade_domain( DomainName=DOMAIN_NAME, TargetVersion=TARGET_VERSION ) print('Upgrading domain to ' + TARGET_VERSION + '...' + response) time.sleep(5) wait_for_upgrade() def wait_for_upgrade(): """Get the status of the upgrade""" response = client.get_upgrade_status( DomainName=DOMAIN_NAME ) if (response['UpgradeStep']) == 'UPGRADE' and (response['StepStatus']) == 'SUCCEEDED': print('Domain successfully upgraded to ' + TARGET_VERSION) elif (response['StepStatus']) == 'FAILED': print('Upgrade failed. Please try again.') elif (response['StepStatus']) == 'SUCCEEDED_WITH_ISSUES': print('Upgrade succeeded with issues') elif (response['StepStatus']) == 'IN_PROGRESS': time.sleep(30) wait_for_upgrade() def main(): check_versions() if __name__ == "__main__": main()

Solução de problemas de falha de validação

Quando você inicia uma atualização da versão do OpenSearch ou do Elasticsearch, o OpenSearch Service primeiro executa uma série de verificações de validação para garantir que o domínio se qualifique para uma atualização. Se alguma dessas verificações falhar, você receberá uma notificação no console contendo os problemas específicos que deverão ser corrigidos antes da atualização do domínio. Para obter uma lista de possíveis problemas e as etapas para resolvê-los, consulte Solução de problemas de erros de validação.

Solução de problemas em uma atualização

As atualizações do no local exigem domínios íntegros. Seu domínio pode não estar qualificado para uma atualização ou não ser atualizado por vários motivos. A tabela a seguir mostra os problemas mais comuns.

Problema Descrição
Muitos fragmentos por nó O OpenSearch e as versões 7.x do Elasticsearch têm uma configuração padrão de até 1.000 fragmentos por nó. Se um nó no cluster atual exceder essa configuração, o OpenSearch Service não permitirá que você atualize. Consulte Limite máximo de fragmentos excedido para obter opções de solução de problemas.
Domínio no processamento O domínio está no meio de uma mudança de configuração. Verifique a qualificação da atualização após a conclusão da operação.
Status de cluster vermelho Um ou mais índices no cluster estão vermelhos. Para obter etapas sobre a solução de problemas, consulte Status de cluster vermelho.
Alta taxa de erros O cluster está retornando um grande número de erros 5xx ao tentar processar solicitações. Geralmente, esse problema é resultado de muitas solicitações de leitura ou gravação simultâneas. Considere reduzir o tráfego para o cluster ou dimensionar seu domínio.
Cérebro dividido Cérebro dividido significa que o cluster tem mais de um nó principal e foi dividido em dois clusters que nunca se juntarão por conta própria. Você pode evitar dividir o cérebro usando o número recomendado de nós principais dedicados. Para ajudar na recuperação do cérebro dividido, entre em contato com AWS Support.
Nó principal não encontrado O OpenSearch Service não consegue encontrar o nó principal do cluster. Se o domínio usa multi-AZ, uma falha da zona de disponibilidade pode ter causado a perda de quorum do cluster e a incapacidade de escolher um novo nó principal. Se o problema não se resolver, entre em contato com AWS Support.
Muitas tarefas pendentes O nó principal está sob carga pesada e tem muitas tarefas pendentes. Considere reduzir o tráfego para o cluster ou dimensionar seu domínio.
Volume de armazenamento prejudicado O volume de disco de um ou mais nós não está funcionando corretamente. Esse problema geralmente ocorre junto com outros problemas, como uma alta taxa de erros ou muitas tarefas pendentes. Se o problema ocorrer isoladamente e não se resolver, entre em contato com AWS Support.
Problema de chave do KMS A chave do KMS usada para criptografar o domínio está inacessível ou ausente. Para mais informações, consulte Monitoramento de domínios que criptografam dados em repouso.
Snapshot em andamento O domínio está tirando um snapshot no momento. Verifique a qualificação da atualização após a conclusão do snapshot. Além disso, verifique se é possível listar repositórios de snapshots manuais, listar snapshots nesses repositórios e obter snapshots manuais. Se o OpenSearch Service não conseguir verificar se um snapshot está em andamento, as atualizações poderão falhar.
Tempo limite ou falha de snapshot O snapshot de pré-atualização demorou muito para ser concluído ou falhou. Verifique o status do cluster e tente novamente. Se o problema continuar, entre em contato com o AWS Support.
Índices incompatíveis Um ou mais índices são incompatíveis com a versão de destino. Esse problema poderá ocorrer se você tiver migrado os índices de uma versão mais antiga do OpenSearch ou do Elasticsearch. Reindexe os índices e tente novamente.
Uso elevado do disco O uso de disco para o cluster está acima de 90%. Exclua os dados ou dimensione o domínio e tente novamente.
Uso elevado do JVM A pressão de memória JVM está acima de 75%. Reduza o tráfego para o cluster ou dimensione o domínio e tente novamente.
Problema de alias do OpenSearch Dashboards O .kibana já está configurado como um alias e mapeia em um índice incompatível, provavelmente de uma versão anterior do OpenSearch Dashboards. Reindexe e tente novamente.
Status de painéis vermelhos O status do OpenSearch Dashboards é vermelho. Tente usar o Dashboards quando a atualização for concluída. Se o status vermelho persistir, resolva-o manualmente e tente novamente.
Compatibilidade entre clusters

Você só pode atualizar se a compatibilidade entre clusters for mantida entre os domínios de origem e de destino após a atualização. Durante o processo de atualização, todas as conexões incompatíveis são identificadas. Para prosseguir, atualize o domínio remoto ou excluir as conexões incompatíveis. Observe que, se a replicação estiver ativa no domínio, você não poderá retomá-la depois de excluir a conexão.

Outro problema de serviço do OpenSearch Service Problemas com o OpenSearch Service em si podem fazer com que seu domínio seja exibido como não qualificado para uma atualização. Se nenhuma das condições anteriores se aplicar ao seu domínio e o problema persistir por mais de um dia, entre em contato com AWS Support.

Como usar um snapshot para migrar dados

As atualizações no local são a maneira mais fácil, rápida e confiável de atualizar um domínio para uma versão posterior do OpenSearch ou Elasticsearch. Os snapshots são uma boa opção se você precisa migrar de uma versão anterior a 5.1 do Elasticsearch ou deseja migrar para um cluster totalmente novo.

A tabela a seguir mostra como usar snapshots para migrar dados para um domínio que usa uma versão diferente do OpenSearch ou Elasticsearch. Para obter mais informações sobre a criação e a restauração de snapshots, consulte Criação de snapshots de índices no Amazon OpenSearch Service.

Da versão Para a versão Processo de migração
Elasticsearch 6.x ou 7.x OpenSearch 1.x
  1. Revise as alterações que podem causar falhas no OpenSearch 1.0 para verificar se é necessário ajustar os índices ou as aplicações. Para obter outras considerações, veja a tabela em Atualização de domínios do Amazon OpenSearch Service.

  2. Crie um snapshot manual do domínio do Elasticsearch 7.x ou 6.x.

  3. Criar um domínio do OpenSearch 1.x.

  4. Restaure o snapshot do domínio Elasticsearch para o domínio do OpenSearch. Durante a operação, talvez seja necessário restaurar o índice do .kibana com um novo nome:

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".kibana", "rename_replacement": ".backup-kibana" }

    Em seguida, você pode reindexar o .backup-kibana no novo domínio e definir .kibana como seu alias.

  5. Se você não precisar mais do domínio original, exclua-o. Do contrário, você continuará a ser cobrado pelo domínio.

Elasticsearch 6.x Elasticsearch 7.x
  1. Revise as alterações que podem causar falhas na versão 7.0 para verificar se é necessário ajustar os índices ou as aplicações. Para obter outras considerações, veja a tabela em Atualização de domínios do Amazon OpenSearch Service.

  2. Crie um snapshot manual do domínio 6.x.

  3. Crie um domínio 7.x.

  4. Restaure o snapshot do domínio original para o domínio 7.x. Durante a operação, você provavelmente precisará restaurar o índice do .kibana com um novo nome:

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".kibana", "rename_replacement": ".backup-kibana" }

    Em seguida, você pode reindexar o .backup-kibana no novo domínio e definir .kibana como seu alias.

  5. Se você não precisar mais do domínio original, exclua-o. Do contrário, você continuará a ser cobrado pelo domínio.

Elasticsearch 6.x Elasticsearch 6.8
  1. Crie um snapshot manual do domínio 6.x.

  2. Crie um domínio 6.8.

  3. Restaure o snapshot do domínio original para o domínio 6.8.

  4. Se você não precisar mais do domínio original, exclua-o. Do contrário, você continuará a ser cobrado pelo domínio.

Elasticsearch 5.x Elasticsearch 6.x
  1. Revise as alterações que podem causar interrupções na versão 6.0 para verificar se você precisa fazer ajustes em seus índices ou aplicações. Para obter outras considerações, veja a tabela em Atualização de domínios do Amazon OpenSearch Service.

  2. Crie um snapshot manual do domínio 5.x.

  3. Crie um domínio 6.x.

  4. Restaure o snapshot do domínio original para o domínio 6.x.

  5. Se você não precisar mais do domínio 5.x, exclua-o. Do contrário, você continuará a ser cobrado pelo domínio.

Elasticsearch 5.x Elasticsearch 5.6
  1. Crie um snapshot manual do domínio 5.x.

  2. Crie um domínio 5.6.

  3. Restaure o snapshot do domínio original para o domínio 5.6.

  4. Se você não precisar mais do domínio original, exclua-o. Do contrário, você continuará a ser cobrado pelo domínio.

Elasticsearch 2.3 Elasticsearch 6.x

Os snapshots do Elasticsearch 2.3 não são compatíveis com o 6.x. Para migrar os dados diretamente da versão 2.3 para a 6.x, você terá que recriar manualmente os índices no novo domínio.

Como alternativa, você pode executar as etapas da atualização da versão 2.3 para a 5.x nesta tabela, executar operações de _reindex no novo domínio da 5.x para converter os índices da 2.3 em índices da 5.x e, por fim, seguir as etapas da atualização da versão 5.x para a 6.x.

Elasticsearch 2.3 Elasticsearch 5.x
  1. Revise as alterações que podem causar falhas na versão 5.0 para verificar se é necessário ajustar os índices ou as aplicações.

  2. Crie um snapshot manual do domínio 2.3.

  3. Crie um domínio 5.x.

  4. Restaure o snapshot do domínio 2.3 para o 5.x.

  5. Se você não precisar mais do domínio 2.3, exclua-o. Do contrário, você continuará a ser cobrado pelo domínio.

Elasticsearch 1.5 Elasticsearch 5.x

Os snapshots do Elasticsearch 1.5 não são compatíveis com o 5.x. Para migrar os dados da versão 1.5 para a 5.x, você terá que recriar manualmente os índices no novo domínio.

Importante

Os snapshots do 1.5 são compatíveis com os do 2.3, mas os domínios do OpenSearch Service 2.3 não oferecem suporte à operação _reindex. Como você não pode reindexá-los, os índices originados em um domínio da versão 1.5 ainda não podem ser restaurados de snapshots da 2.3 para domínios da 5.x.

Elasticsearch 1.5 Elasticsearch 2.3
  1. Use o plug-in de migração para descobrir se é possível atualizar diretamente para a versão 2.3. Talvez você precise alterar seus dados antes de migrar.

    1. Em um navegador da web, abra http://domain-endpoint/_plugin/migration/.

    2. Escolha Run checks now.

    3. Analise os resultados e, se necessário, siga as instruções para fazer alterações em seus dados.

  2. Crie um snapshot manual do domínio 1.5.

  3. Crie um domínio 2.3.

  4. Restaure o snapshot do domínio 1.5 para o 2.3.

  5. Se você não precisar mais do domínio 1.5, exclua-o. Do contrário, você continuará a ser cobrado pelo domínio.