Criar e gerenciar domínios do Amazon Elasticsearch Service - Amazon Elasticsearch Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criar e gerenciar domínios do Amazon Elasticsearch Service

Este capítulo descreve como criar e gerenciar domínios do Amazon Elasticsearch Service (Amazon ES). Um domínio do Amazon ES é sinônimo de um cluster do Elasticsearch. Domínios são clusters com as configurações, os tipos de instância, as contagens de instância e os recursos de armazenamento especificados por você.

Diferentemente das breves instruções presentes no tutorial Conceitos básicos, este capítulo descreve todas as opções e fornece informações de referência relevantes. Você pode concluir cada procedimento usando instruções para o console do Amazon ES, a AWS Command Line Interface (AWS CLI) ou o SDKs da AWS.

Criação de domínios do Amazon ES

Esta seção descreve como se criam domínios do Amazon ES usando o console do Amazon ES ou usando a AWS CLI com o comando create-elasticsearch-domain.

Criação de domínios do Amazon ES (console)

Use o procedimento a seguir para criar um domínio do Amazon ES usando o console.

Para criar um domínio do Amazon ES (console)

  1. Acesse https://aws.amazon.com e escolha Sign In to the Console (Faça login no console).

  2. Em Analytics, escolha Elasticsearch Service.

  3. Escolha Create a new domain.

  4. Em Choose deployment type (Escolher tipo de implantação), escolha a opção que melhor corresponda à finalidade do seu domínio:

    • Os domínios de Production (Produção) usam Multi-AZ e nós principais dedicados para uma maior disponibilidade.

    • Os domínios de Development and testing (Desenvolvimento e teste) usam uma única zona de disponibilidade.

    • Os domínios Custom (Personalizados) permitem que você escolha entre todas as opções de configuração.

    Importante

    Diferentes tipos de implantação apresentam diferentes opções em páginas subsequentes. Essas etapas incluem todas as opções (o tipo de implantação Custom (Personalizada)).

  5. Em Elasticsearch version (Versão do Elasticsearch)é recomendável escolher a versão mais recente. Para obter mais informações, consulte Versões Elasticsearch compatíveis.

  6. Selecione Next (Próximo).

  7. Em Elasticsearch domain name (Nome do domínio do Elasticsearch), insira um nome de domínio. O nome deve atender aos seguintes critérios:

    • Ser exclusivo para sua conta e região

    • Iniciar com letra minúscula.

    • Conter de 3 a 28 caracteres.

    • Conter apenas letras minúsculas a-z, números de 0-9 e hífen (-).

  8. Se quiser usar um endpoint personalizado em vez do endpoint padrão do https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com, escolha Enable custom endpoint (Habilitar endpoint personalizado do ). Em seguida, forneça um nome e um certificado. Para obter mais informações, consulte Criar um endpoint personalizado.

  9. Em Availability Zones (Zonas de disponibilidade), selecione 1-AZ, 2-AZ ou 3-AZ. Para obter mais informações, consulte Configuração de um domínio Multi-AZ.

  10. Em Instance type (Tipo de instância), selecione um tipo de instância para os nós de dados. Para obter mais informações, consulte Tipos de instância com suporte.

    nota

    Nem todas as zonas de disponibilidade são compatíveis com todos os tipos de instância. Se você selecionar 3-AZ, é recomendável selecionar tipos de instância da geração atual, como R5 ou I3.

  11. Em Number of nodes (Número de nós), selecione o número de nós de dados.

    Para valores máximos, consulte Limites de cluster e instância. Os clusters de nó único são excelentes para desenvolvimento e testes, mas não devem ser usados para cargas de trabalho de produção. Para obter mais orientações, consulte Dimensionamento de domínios do Amazon ES e Configuração de um domínio Multi-AZ.

  12. Em Data nodes storage type (Tipo de armazenamento de nós de dados), escolha Instance (Instância) (padrão) ou EBS.

    Para obter orientações sobre a criação de domínios especialmente grandes, consulte Escala de petabytes. Se você selecionar EBS, as seguintes opções serão exibidas:

    1. Em EBS volume type, escolha um tipo de volume de EBS.

      Se escolher Provisioned IOPS (SSD) (IOPS provisionadas [SSD]) como tipo de volume de EBS, em Provisioned IOPS (IOPS provisionadas), digite o desempenho de IOPS de referência que você deseja. Para obter mais informações, consulte a Amazon EBS Volumes na documentação do Amazon EC2.

    2. Em EBS storage size per node (Tamanho de armazenamento do EBS por nó), insira o tamanho do volume do EBS que você deseja anexar a cada nó de dados.

      EBS volume size é por nó. Você pode calcular o tamanho total do cluster para o domínio do Amazon ES multiplicando o número de nós de dados pelo tamanho do volume do EBS. O tamanho mínimo e máximo de um volume do EBS depende tanto do tipo de volume do EBS especificado quanto do tipo da instância à qual ele está anexado. Para saber mais, consulte Limites de tamanhos de volume do EBS.

  13. (Opcional) Habilite ou desabilite os nós principais dedicados. Os nós principais dedicados aumentam a estabilidade do cluster e são necessários para domínios com contagem de instâncias superior a 10. Recomendamos três nós principais dedicados para domínios de produção.

    nota

    Você pode escolher diferentes tipos de instâncias para seus nós principais dedicados e nós de dados. Por exemplo, você pode selecionar instâncias de uso geral ou de armazenamento otimizado para os nós de dados e instâncias otimizadas para computação para os nós principais dedicados.

  14. (Opcional) Para habilitar o armazenamento do UltraWarm, escolha Enable data nodes (Habilitar nós de dados do EC2)UltraWarm. Cada tipo de instância tem uma quantidade máxima de armazenamento que ele pode processar. Multiplique essa quantidade pelo número de nós de dados de alta atividade pelo total de armazenamento de alta atividade endereçável.

  15. (Opcional) Em domínios executando o Elasticsearch 5.3 e posterior, Automated snapshot start hour (Horário de início do snapshot automatizado) não terá efeito. Para obter mais informações sobre snapshots automatizados, consulte Trabalhar com snapshots de índice do Amazon Elasticsearch Service.

  16. (Opcional) Selecione Optional Elasticsearch cluster settings (Configurações opcionais de cluster do Elasticsearch). Para obter um resumo dessas opções, consulte Opções avançadas.

  17. Selecione Next (Próximo).

  18. Na seção Network configuration (Configuração de rede), selecione VPC access (Acesso à VPC) ou Public access (Acesso público). Se você selecionar Public access (Acesso público), vá para a próxima etapa. Se você escolher VPC access, assegure-se de que você atende aos pré-requisitos e faça o seguinte:

    1. Para VPC, escolha o ID da VPC que você deseja usar.

      nota

      A VPC e o domínio devem estar na mesma região da AWS, e você deve selecionar uma VPC com a locação definida como Default (Padrão). O Amazon ES ainda não oferece suporte ao VPCs que usa locação dedicada.

    2. Para Subnet, escolha uma sub-rede. Se você ativou o recurso Multi-AZ, será necessário escolher duas ou três sub-redes. O Amazon ES colocará um VPC endpoint e interfaces de rede elástica nas sub-redes.

      nota

      Você deve reservar endereços IP suficientes para as interfaces de rede na sub-rede (ou sub-redes). Para obter mais informações, consulte Reservar endereços IP em uma sub-rede da VPC.

    3. Em Security groups (Grupos de segurança), escolha os grupos de segurança da VPC que precisam acessar o domínio do Amazon ES. Para obter mais informações, consulte Suporte a VPC para domínios do Amazon Elasticsearch Service.

    4. Para IAM role, mantenha a função padrão. O Amazon ES usa essa função predefinida (também conhecida como função vinculada ao serviço) para acessar sua VPC e colocar um VPC endpoint e interfaces de rede na sub-rede da VPC. Para obter mais informações, consulte Função vinculada ao serviço para acesso à VPC.

  19. Na seção Fine-grained access control (Controle de acesso minucioso), habilite ou desabilite o controle de acesso minucioso:

    • Se você quiser usar o IAM para o gerenciamento de usuários, escolha Set IAM role as master user (Definir função do IAM como usuário mestre) e especifique o ARN para uma função do IAM.

    • Se você quiser usar o banco de dados interno de usuários, escolha Create a master user (Criar um usuário mestre) e especifique um nome de usuário e uma senha.

    Seja qual for a opção escolhida, o usuário mestre poderá acessar todos os índices no cluster e todos os Elasticsearch APIs. Para obter orientação sobre qual opção escolher, consulte Principais conceitos.

    Se você desabilitar o controle de acesso minucioso, ainda assim poderá controlar o acesso ao seu domínio, colocando-o em uma VPC, aplicando uma política de acesso restritiva ou ambos. É necessário habilitar a criptografia de nó a nó e a criptografia em repouso para usar o controle de acesso minucioso.

  20. (Opcional) Se quiser usar a autenticação SAML para o Kibana, escolha Prepare SAML authentication (Preparar autenticação SAML). Depois que o domínio estiver disponível, consulte Autenticação SAML para o Kibana para obter etapas adicionais.

  21. (Opcional) Se você quiser usar a autenticação do Amazon Cognito para o Kibana, escolha Enable Amazon Cognito authentication (Habilitar autenticação do Amazon Cognito).

    1. Escolha o grupo de usuários do Amazon Cognito e o grupo de identidades que você deseja usar para a autenticação do Kibana. Para obter orientações sobre a criação desses recursos, consulte Autenticação do Amazon Cognito para o Kibana.

  22. Em Domain access policy (Política de acesso ao domínio), adicione o ARNs ou os endereços IP que você deseja ou escolha uma política pré-configurada na lista suspensa. Para obter mais informações, consulte Gerenciamento de identidades e acesso no Amazon Elasticsearch Service e Sobre políticas de acesso em domínios da VPC.

    nota

    Se você escolheu VPC access (Acesso à VPC) na etapa 18, as políticas baseadas em IP serão proibidas. Em vez disso, você poderá usar grupos de segurança para controlar quais endereços IP poderão acessar o domínio. Para obter mais informações, consulte Sobre políticas de acesso em domínios da VPC.

  23. (Opcional) Para exigir que todas as solicitações ao domínio sejam recebidas por HTTPS, marque a caixa de seleção Require HTTPS for all traffic to the domain (Exigir HTTPS para todo o tráfego do domínio) .

  24. (Opcional) Para ativar a criptografia de nó a nó, marque a caixa de seleção Node-to-node encryption (Criptografia de nó a nó). Para obter mais informações, consulte Criptografia de nó a nó para o Amazon Elasticsearch Service.

  25. (Opcional) Para ativar a criptografia de dados em repouso, marque a caixa de seleção Enable encryption of data at rest (Ativar criptografia em repouso).

    Selecione (Default) aws/es ((Padrão) aws/es) para que o Amazon ES crie uma chave de criptografia do KMS em seu nome (ou use uma que já foi criada). Caso contrário, selecione sua própria chave de criptografia do KMS no menu Chave mestra do KMS. Para obter mais informações, consulte Criptografia de dados em repouso do Amazon Elasticsearch Service.

  26. Selecione Next (Próximo).

  27. Na página Review, revise sua configuração de domínio e escolha Confirm.

Criação de domínios do Amazon ES (AWS CLI)

Em vez de criar um domínio do Amazon ES usando o console, você pode usar a AWS CLI. Para ver a sintaxe, consulte Amazon Elasticsearch Service na Referência de comando da CLI da AWS.

Comandos de exemplo

Este primeiro exemplo demonstra a seguinte configuração de domínio do Amazon ES:

  • Cria um domínio do Amazon ES chamado mylogs com o Elasticsearch versão 5.5.

  • Preenche o domínio com duas instâncias do tipo m4.large.elasticsearch

  • Usa um volume de EBS de disco magnético de 100 GiB como armazenamento para cada nó de dados.

  • Permite acesso anônimo, mas apenas de um único endereço IP: 192.0.2.0/32

aws es create-elasticsearch-domain --domain-name mylogs --elasticsearch-version 5.5 --elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=2 --ebs-options EBSEnabled=true,VolumeType=standard,VolumeSize=100 --access-policies '{"Version": "2012-10-17", "Statement": [{"Action": "es:*", "Principal":"*","Effect": "Allow", "Condition": {"IpAddress":{"aws:SourceIp":["192.0.2.0/32"]}}}]}'

O próximo exemplo demonstra a configuração de domínio do Amazon ES a seguir:

  • Cria um domínio do Amazon ES chamado mylogs com o Elasticsearch versão 5.5.

  • Preenche o domínio com seis instâncias do tipo m4.large.elasticsearch

  • Usa um volume de EBS de finalidade geral (SSD) do GiB 100 como armazenamento para cada nó de dados.

  • Restringe o acesso ao serviço a um único usuário, identificado pelo ID da conta da AWS do usuário: p555555555555

  • Distribui as instâncias em três zonas de disponibilidade

aws es create-elasticsearch-domain --domain-name mylogs --elasticsearch-version 5.5 --elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=6,ZoneAwarenessEnabled=true,ZoneAwarenessConfig={AvailabilityZoneCount=3} --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::555555555555:root" }, "Action":"es:*", "Resource": "arn:aws:es:us-east-1:555555555555:domain/mylogs/*" } ] }'

O próximo exemplo demonstra a configuração de domínio do Amazon ES a seguir:

  • Cria um domínio do Amazon ES chamado mylogs com o Elasticsearch versão 5.5.

  • Preenche o domínio com 10 instâncias do tipo m4.xlarge.elasticsearch

  • Preenche o domínio com três instâncias do tipo m4.large.elasticsearch para funcionar como nós principais dedicados

  • Usa um volume de EBS de 100 IOPS provisionadas pelo GiB como armazenamento, configurado com desempenho basal de 1.000 IOPS para cada nó de dados.

  • Restringe o acesso a um único usuário e a um único sub-recurso, a API _search

aws es create-elasticsearch-domain --domain-name mylogs --elasticsearch-version 5.5 --elasticsearch-cluster-config InstanceType=m4.xlarge.elasticsearch,InstanceCount=10,DedicatedMasterEnabled=true,DedicatedMasterType=m4.large.elasticsearch,DedicatedMasterCount=3 --ebs-options EBSEnabled=true,VolumeType=io1,VolumeSize=100,Iops=1000 --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::555555555555:root" }, "Action": "es:*", "Resource": "arn:aws:es:us-east-1:555555555555:domain/mylogs/_search" } ] }'
nota

Se você tentar criar um domínio do Amazon ES e um domínio com o mesmo nome que já existir, a CLI não relatará um erro. Em vez disso, ela retornará detalhes do domínio existente.

Criação de domínios do Amazon ES (AWS SDKs)

O AWS SDKs (exceto as SDKs para Android e iOS) é compatível com todas as ações definidas em Referência sobre a API de configuração do Amazon ES, incluindo .CreateElasticsearchDomain Para obter o código de exemplo, consulte Usar os SDKs da AWS com o Amazon Elasticsearch Service. Para obter mais informações sobre como instalar e usar o AWS SDKs, consulte Kits de desenvolvimento de software da AWS.

Configuração de políticas de acesso

O Amazon Elasticsearch Service oferece várias opções para configurar o acesso a domínios do Amazon ES. Para obter mais informações, consulte Gerenciamento de identidades e acesso no Amazon Elasticsearch Service e Controle de acesso minucioso no Amazon Elasticsearch Service.

O console fornece políticas de acesso pré-configuradas que você pode personalizar de acordo com as necessidades específicas de seu domínio. Você também pode importar as políticas de acesso de outros domínios do Amazon ES. Para obter informações sobre como essas políticas de acesso interagem com o acesso à VPC, consulte Sobre políticas de acesso em domínios da VPC.

Para configurar políticas de acesso (console)

  1. Acesse https://aws.amazon.com e escolha Sign In to the Console (Faça login no console).

  2. Em Analytics, escolha Elasticsearch Service.

  3. No painel de navegação, em My domains, escolha o domínio que você deseja atualizar.

  4. Escolha Ações e Modificar política de acesso.

  5. Edite a política de acesso JSON ou use a lista suspensa para escolher uma opção pré-configurada.

  6. Selecione Submit (Enviar).

Opções avançadas

Use as opções avançadas para configurar o seguinte:

rest.action.multi.allow_explicit_index

Especifica se são permitidas referências explícitas aos índices dentro do corpo das solicitações HTTP. A definição dessa propriedade como false impede que os usuários ignorem o controle de acesso para sub-recursos. Por padrão, o valor é true. Para obter mais informações, consulte Opções avançadas e considerações sobre a API.

indices.fielddata.cache.size

Especifica a porcentagem de espaço do heap do Java alocada a dados de campo. Por padrão, essa configuração é ilimitada.

nota

Muitos clientes consultam índices alternados diariamente. É recomendável começar a realizar um teste de comparação com indices.fielddata.cache.size, configurado como 40% do heap de JVM para a maioria desses casos de uso. No entanto, se você tiver índices muito grandes, talvez precise de um cache grande de dados de campo.

indices.query.bool.max_clause_count

Especifica o número máximo de cláusulas permitidas em uma consulta booliana no Lucene. O padrão é 1.024. Consultas que ultrapassam o número permitido de cláusulas geram o erro TooManyClauses. Para obter mais informações, consulte a documentação do Lucene.