Dez etapas para automatizar a migração da carga de trabalho do Elastic local para o Elastic na AWS

blog-thumb-cloud-aws.png

Você está pronto(a) para migrar suas cargas de trabalho do Elastic autogerenciadas para o Elastic na Amazon Web Services (AWS) e aproveitar as eficiências de custo, tempo e escala? Aproveite as práticas recomendadas e ferramentas que desenvolvemos com a AWS para garantir uma transição rápida e tranquila. Vamos ver as opções que você tem para o caminho de migração de autoatendimento e, em seguida, seguir as etapas simples das instruções para automatizar sua migração.

Escolha seu caminho

As três principais opções para adicionar seus conjuntos de dados locais ao Elastic no seu ambiente da AWS são a reingestão de dados, o snapshot e a restauração, e a reindexação de um cluster.

1. Se sua fonte de dados (aplicações, bancos de dados e infraestrutura) também for migrada para a AWS, os dados poderão ser reingeridos da sua fonte no Elastic. A Elastic fornece integrações com serviços populares da AWS para ajudar a simplificar a ingestão de dados — tudo o que você precisa fazer é clicar para capturar, armazenar e buscar dados.

2. A opção de snapshot e restauração é ideal quando os dados nos clusters existentes precisam ser movidos para o Elastic Cloud, e o cluster existente está executando uma versão do Elasticsearch anterior ao Elastic Cloud.

3. A outra opção é reindexar de um cluster. Ela é mais apropriada quando os volumes de dados são baixos e/ou há restrições ao uso de snapshot e restauração, e o cluster existente está executando uma versão do Elasticsearch anterior ao Elastic Cloud. Encontre mais detalhes sobre como usar a API de reindexação no guia de migração.

Neste post do blog, forneceremos etapas simples para automatizar seu caminho de migração com snapshot e restauração.

Automatize sua migração com snapshot e restauração

Vamos ver como é fácil migrar seus dados usando snapshot e restauração com o Terraform (software open source de infraestrutura como código). Primeiro, vamos começar com os pré-requisitos e, em seguida, abordaremos as etapas com as instruções.

Pré-requisitos

  1. Verifique se o Elastic Cloud de destino está executando uma versão igual ou superior aos clusters do Elasticsearch atuais. Há uma tabela mais detalhada de compatibilidade de versão no guia de snapshot e restauração da Elastic.
  2. Verifique se a capacidade da infraestrutura do cluster do Elastic Cloud é suficiente para acomodar o volume de dados e os requisitos de computação do caso de uso.
  3. Verifique as limitações listadas no guia de snapshot e restauração da Elastic e as alterações importantes específicas de cada versão no guia de atualização da Elastic para confirmar que não há restrições que afetem a migração da implantação para o Elastic Cloud.
  4. Verifique se a versão correta do software Terraform está instalada e também se o recurso de vault (cofre) do Terraform está habilitado.
  5. Reúna as informações necessárias, como a chave da API do Elasticsearch (var.apikey) e a chave de acesso da AWS (var.s3_client_access_key, var.s3_client_secret_key).
  6. Verifique a conectividade de rede (conexão direta) entre o local e o Elastic na AWS VPC e outras permissões de recursos da AWS.
  7. Se você ainda não tiver o plugin do Amazon Simple Storage Service (Amazon S3) e da AWS CLI para Elasticsearch em seu cluster do Elasticsearch existente, precisará instalá-lo pelo diretório inicial do Elasticsearch com o seguinte comando:
> sudo bin/elasticsearch-plugin install repository-s3
  1. Adicione as chaves de acesso do Amazon S3 ao keystore do Elasticsearch com os comandos a seguir no diretório raiz do cluster do Elasticsearch existente (insira as chaves apropriadas do processo de criação de bucket do Amazon S3 anterior, quando solicitado).
> bin/elasticsearch-keystore add s3.client.default.access_key
> bin/elasticsearch-keystore add s3.client.default.secret_key
Arquitetura de migração do Elastic Cloud

Etapas de migração

  1. Crie e registre um repositório de snapshots do Elastic Cloud usando o serviço Amazon S3.
  2. Crie e configure um repositório de snapshots local e aponte para o bucket do Amazon S3.
  3. Crie um novo snapshot do cluster local e armazene-o no bucket do Amazon S3.
  4. Provisione o cluster do Elastic Cloud.
  5. Provisione os recursos da AWS necessários para o Elastic Agent.
  6. Provisione o Elastic Serverless Forwarder necessário para ingestão de log sem atrito.
  7. Crie várias funções de instância do AWS Identity and Access Management (IAM) com permissões refinadas para acesso aos serviços da AWS necessários para o processo de implantação.
  8. Feche todos os índices no Elastic Cloud.
  9. Restaure os dados do cluster local do snapshot no Elastic Cloud.
  10. Por fim, abra todos os índices no Elastic Cloud.

Etapas de implantação

Abaixo estão as etapas detalhadas que foram mencionadas brevemente na seção de pré-requisitos, como reunir as chaves de acesso secretas necessárias. Se você já tem suas chaves, pode pular para a etapa 3.

  1. Gere uma chave de API do Elasticsearch Service (ESS):
    1. Abra o navegador e navegue até https://cloud.elastic.co/login.
    2. Faça login com seu e-mail e senha.
    3. Clique em Elasticsearch Service.
    4. Navegue até Features > API Keys (Recursos > Chaves de API) e clique em Generate API Key (Gerar chave de API).
    5. Escolha um nome para sua chave de API.
    6. Salve a chave de API em um lugar seguro.
  2. Crie uma chave de acesso da AWS:
    1. Crie uma política de bucket do S3 que conceda permissões de lista, leitura e gravação.
    2. Crie um usuário do IAM e anexe a política criada acima.
    3. Marque a opção de acesso Programmatic (Programático) para o usuário do IAM.
    4. Salve a chave de acesso da AWS em um lugar seguro.
  3. Clone seu repositório de migração para o Elastic Cloud do Terraform usando os seguintes comandos:
    1. git clone https://github.com/aws-ia/terraform-elastic-cloud
    2. cd terraform-elastic-cloud
  4. Se você estiver usando o HashiCorp Vault, poderá definir as variáveis de ambiente do Vault da seguinte forma:
    1. export VAULT_ADDR= "Sua URL do Vault"
    2. export VAULT_TOKEN= "Seu token do Vault".                                                                                  Adicione sua chave de API do Elasticsearch (usamos “ess” para o caminho como exemplo):
vault kv put secret/ess apikey="Your Elastic API Key"

Adicione sua chave de API da AWS (usamos “aws” para o caminho como exemplo):

vault kv put secret/aws s3_client_access_key="Your AWS Access Key"     
s3_client_secret_key="Your AWS Secret Key"
  1. Você precisa fornecer as chaves, o que pode ser feito de várias maneiras no Terraform. Usaremos definições de variáveis (.tfvars). Esse recurso recém-adicionado automatiza a migração do cluster do Elasticsearch para o Elastic Cloud. Os arquivos são mostrados abaixo (se você está usando o HashiCorp Vault).

Tudo o que você precisa fazer é atribuir a URL do Elasticsearch autogerenciado como no exemplo abaixo.

    var.local_elasticsearch_url (e.g., http://127.0.0.1:9200).

    Por exemplo, podemos adicionar var.local_elasticsearch_url no mesmo testing.tfvars mostrado abaixo (se você está usando o HashiCorp Vault):

    name = "Elasticsearch Cluster"
    local_elasticsearch_url = ""
    vault_address = "Your Local Elastic Cluster URL"
    vault_ess_path = "secret/ess"
    vault_aws_path = "secret/aws"
    apikey = "hashicorp/vault"
    s3_client_access_key = "hashicorp/vault"
    s3_client_secret_key  = "hashicorp/vault"

    Como alternativa, você pode fornecer as chaves diretamente da seguinte forma:

    name = "Elasticsearch Cluster"
    local_elasticsearch_url = ""
    apikey = "Your Elastic API Key"
    s3_client_access_key = "Your AWS Access Key"
    s3_client_secret_key  = "Your AWS Secret Key"
    1. Quando essas variáveis forem especificadas no arquivo .tfvars (no exemplo abaixo, estamos usando um arquivo chamado testing.tfvars), você poderá executar o módulo do Terraform da seguinte forma:
          terraform init
          terraform validate
          terraform apply -var-file="testing.tfvars"

          Eliminar a implantação

          Se você não precisar mais da infraestrutura provisionada pelo módulo do Terraform, poderá encerrar facilmente todos os recursos com o seguinte comando:
          terraform destroy -var-file="testing.tfvars"

          Aproveite mais recursos de migração com a Elastic e a AWS

          A Elastic foi certificada como parceira do AWS ISV Workload Migration Program (WMP) para dar suporte à migração de cargas de trabalho locais e autogerenciadas do Elasticsearch ou ELK para o Elastic Cloud na AWS. A metodologia da Elastic oferece aos clientes uma abordagem prescritiva e reproduzível para acelerar a adoção da migração que se alinha diretamente com as práticas recomendadas e orientações publicadas pela AWS, incluindo o AWS Well-Architected Framework e o AWS Migration Acceleration Program. Por meio do AWS WMP, os clientes da Elastic conseguem aproveitar ainda mais as orientações de integração, os recursos de migração e a assistência de financiamento e crédito da infraestrutura da AWS para alcançar suas metas de negócios e acelerar a jornada para a nuvem.

          Comece hoje mesmo a migração para o Elastic na AWS

          Migre para aproveitar todos os recursos da nuvem, usando as soluções da Elastic que sua equipe já conhece. Acesse o guia de migração, o guia de início rápido, o website e a documentação ou entre em contato conosco diretamente para saber mais sobre como a Elastic pode ajudar na sua migração, incluindo avaliação, planejamento e assistência financeira. Você também pode entrar em contato com nossa equipe de Consultoria da Elastic, que pode ajudar na migração de cargas de trabalho complexas e de larga escala. Aproveite uma avaliação gratuita de 7 dias diretamente do AWS Marketplace e implante o Elastic em questão de minutos.

          O lançamento e o tempo de amadurecimento de todos os recursos ou funcionalidades descritos neste post permanecem a exclusivo critério da Elastic. Os recursos ou funcionalidades não disponíveis atualmente poderão não ser entregues dentro do prazo previsto ou nem chegar a ser entregues.