guia do desenvolvedor versão da api 2015-01-01 · tipos de políticas ... carregamento de dados em...

271
Amazon Elasticsearch Service Guia do desenvolvedor Versão da API 2015-01-01

Upload: trinhdung

Post on 31-Dec-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch ServiceGuia do desenvolvedor

Versão da API 2015-01-01

Page 2: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Amazon Elasticsearch Service: Guia do desenvolvedorCopyright © 2019 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Table of ContentsEm que consiste o Amazon Elasticsearch Service? ................................................................................. 1

Recursos do Amazon Elasticsearch Service ................................................................................... 1Versões Elasticsearch compatíveis ................................................................................................ 2Definição de preço para Amazon ES ............................................................................................. 3Conceitos básicos do Amazon Elasticsearch Service ....................................................................... 3Serviços relacionados ................................................................................................................. 3

Conceitos básicos sobre domínios do Amazon ES .................................................................................. 5Etapa 1: criação de um domínio do Amazon ES ............................................................................. 5Etapa 2: upload de dados para indexação ..................................................................................... 7Etapa 3: pesquisar documentos em um domínio do Amazon ES ........................................................ 8Etapa 4: Excluir um domínio do Amazon ES .................................................................................. 9

Criação e configuração de domínios do Amazon ES .............................................................................. 10Criação de domínios do Amazon ES .......................................................................................... 10

Criação de domínios do Amazon ES (console) ...................................................................... 10Criação de domínios do Amazon ES (AWS CLI) .................................................................... 13Criação de domínios do Amazon ES (SDKs da AWS) ............................................................ 16

Configuração de domínios do Amazon ES .................................................................................... 16Configuração de domínios do Amazon ES (console) .............................................................. 16Configuração de domínios do Amazon ES (AWS CLI) ............................................................ 18Configuração de domínios do Amazon ES (SDKs da AWS) ..................................................... 19

Configuração de armazenamento EBS ......................................................................................... 19Configuração de armazenamento EBS (console) ................................................................... 19Configuração de armazenamento EBS (AWS CLI) ................................................................. 20Configuração de armazenamento EBS (SDKs da AWS) .......................................................... 21

Modificar a configuração de acesso à VPC ................................................................................... 21Configuração de acesso à VPC (console) ............................................................................. 21

Configurar a autenticação do Amazon Cognito para o Kibana .......................................................... 22Configuração de políticas de acesso ............................................................................................ 22

Configuração de políticas de acesso (console) ...................................................................... 22Configuração de políticas de acesso (AWS CLI) .................................................................... 23Configuração de políticas de acesso (SDKs da AWS) ............................................................. 24

Configuração de snapshots automáticos ....................................................................................... 24Configuração de snapshots (console) ................................................................................... 24Configuração de snapshots (AWS CLI) ................................................................................ 24Configuração de snapshots (SDKs da AWS) ......................................................................... 25

Configuração de opções avançadas ............................................................................................ 25Configuração de opções avançadas (console) ....................................................................... 26Configuração de opções avançadas (AWS CLI) ..................................................................... 26Configuração de opções avançadas (SDKs da AWS) ............................................................. 26

Configuração de logs ................................................................................................................ 26Habilitação da publicação de logs (console) .......................................................................... 27Habilitação da publicação de logs (AWS CLI) ........................................................................ 28Habilitação da publicação de logs (AWS SDKs) ..................................................................... 29Configuração dos limites de logs do Elasticsearch para logs lentos ........................................... 29Visualizar logs .................................................................................................................. 30

Controle de acesso ........................................................................................................................... 31Tipos de políticas ...................................................................................................................... 31

Políticas baseadas em recursos .......................................................................................... 31Políticas baseadas em identidade ....................................................................................... 33Políticas baseadas em IP ................................................................................................... 34

Criar e assinar as solicitações Amazon ES ................................................................................... 35Quando há colisão de políticas ................................................................................................... 36Referência de elementos de política ............................................................................................ 36Opções avançadas e considerações sobre a API .......................................................................... 42

Versão da API 2015-01-01iii

Page 4: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Configuração de políticas de acesso ............................................................................................ 44Exemplos adicionais de políticas ................................................................................................. 44

Gerenciamento de domínios do Amazon ES ......................................................................................... 45Sobre alterações de configuração ............................................................................................... 45Cobranças para alterações de configuração .................................................................................. 46Atualizações de software de serviço ............................................................................................ 47Habilitação de reconhecimento de zona ....................................................................................... 48Monitoramento de métricas e estatísticas de cluster com o Amazon CloudWatch (console) ................... 50

Métricas de cluster ............................................................................................................ 50Métricas de nó principal dedicado ....................................................................................... 50Métricas de volume do EBS ............................................................................................... 50Métricas de instância ......................................................................................................... 50

Registro de chamadas de API de configuração com o CloudTrail ..................................................... 50Informações sobre o Amazon Elasticsearch Service no CloudTrail ............................................ 51Noções básicas das entradas dos arquivos de log do Amazon Elasticsearch Service ................... 51

Atribuição de tag a domínios do Amazon Elasticsearch Service ....................................................... 53Uso de tags (console) ....................................................................................................... 54Uso de tags (AWS CLI) ..................................................................................................... 55Uso de tags (SDKs da AWS) ............................................................................................. 56

Indexação de dados .......................................................................................................................... 57Noções básicas sobre indexação ................................................................................................ 57Nomeação de restrições para índices .......................................................................................... 59Redução do tamanho de resposta ............................................................................................... 59

Solicitações de assinatura da HTTP .................................................................................................... 61Java ........................................................................................................................................ 61Python ..................................................................................................................................... 63Ruby ....................................................................................................................................... 65Nó .......................................................................................................................................... 67

Carregamento de dados de streaming no Amazon ES ............................................................................ 69Carregamento de dados em streaming no Amazon ES por meio do Amazon S3 ................................. 69

Pré-requisitos ................................................................................................................... 69Criar o pacote de implantação do Lambda ............................................................................ 70Criar a função Lambda ...................................................................................................... 71Testar a função do Lambda ............................................................................................... 73

Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data Streams ......... 74Pré-requisitos ................................................................................................................... 74Criar a função Lambda ...................................................................................................... 75Testar a função do Lambda ............................................................................................... 76

Carregamento de dados em streaming no Amazon ES por meio do Amazon DynamoDB ...................... 76Pré-requisitos ................................................................................................................... 76Criar a função Lambda ...................................................................................................... 78Testar a função do Lambda ............................................................................................... 79

Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data Firehose ........ 79Carregamento de dados em streaming no Amazon ES por meio do Amazon CloudWatch ..................... 79Carregamento de dados no Amazon ES do AWS IoT ..................................................................... 80

Pesquisa de dados ........................................................................................................................... 81Pesquisas do URI ..................................................................................................................... 81Pesquisas de corpo da solicitação ............................................................................................... 82

Aumentar campos ............................................................................................................. 83Paginação de resultados de pesquisa .................................................................................. 83Destaques do resultado de pesquisa ................................................................................... 83API de contagem .............................................................................................................. 85

Como trabalhar com snapshots de índice ............................................................................................. 86Pré-requisitos do snapshots manuais ........................................................................................... 87Registro de um repositório de snapshots manuais ......................................................................... 88

Cliente de exemplo Python ................................................................................................. 89Manual deObtenção de snapshots manuais .................................................................................. 90

Versão da API 2015-01-01iv

Page 5: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Restauração de snapshots ......................................................................................................... 91Como atualizar o Elasticsearch ........................................................................................................... 93

Solução de problemas em uma atualização .................................................................................. 94Iniciar uma atualização .............................................................................................................. 95Como usar um snapshot para migrar dados ................................................................................. 96

Kibana e Logstash ............................................................................................................................ 98Kibana ..................................................................................................................................... 98

Controlar acesso ao Kibana ............................................................................................... 98Configurar o Kibana para usar um servidor de mapas WMS .................................................. 100Conexão de um servidor Kibana local com o Amazon ES ...................................................... 101

Carregamento de grandes volumes de dados com plug-in do Logstash ........................................... 101Autenticação para o Kibana .............................................................................................................. 103

Pré-requisitos ......................................................................................................................... 103Sobre o grupo de usuários ............................................................................................... 104Sobre o grupo de identidades ........................................................................................... 104Sobre a função do IAM .................................................................................................... 105

Configuração de um domínio do Amazon ES .............................................................................. 105Como configurar a autenticação do Amazon Cognito (console) ............................................... 105Como configurar a autenticação do Amazon Cognito (AWS CLI) ............................................. 107Como configurar a autenticação Amazon Cognito (SDKs da AWS) .......................................... 107

Permitir a função autenticada .................................................................................................... 107Configurar provedores de identidade .......................................................................................... 108(Opcional) Configuração de acesso granular ............................................................................... 109

Grupos de usuários e tokens ............................................................................................ 110Regras ........................................................................................................................... 111

(Opcional) Como personalizar a página de login .......................................................................... 111(Opcional) Configurar recursos de segurança avançada ................................................................ 111no dispositivo ......................................................................................................................... 111Limites ................................................................................................................................... 112Problemas de configuração comuns ........................................................................................... 112Desabilitar a autenticação do Amazon Cognito para o Kibana ........................................................ 114Excluir domínios que usam a autenticação do Amazon Cognito para o Kibana .................................. 115

Suporte à VPC ............................................................................................................................... 116Limitações .............................................................................................................................. 118Sobre políticas de acesso em domínios da VPC .......................................................................... 118Teste dos domínios da VPC ..................................................................................................... 119Pré-requisitos ......................................................................................................................... 120Como criar uma VPC .............................................................................................................. 121Reserva de endereços IP em uma sub-rede da VPC .................................................................... 122Função vinculada ao serviço para acesso à VPC ......................................................................... 123Migração do acesso público ao acesso via VPC .......................................................................... 123Documentação do Amazon VPC ............................................................................................... 123

Melhores práticas ............................................................................................................................ 125Dimensionamento de domínios do Amazon ES ............................................................................ 125

Cálculo de requisitos de armazenamento ............................................................................ 125Como escolher o número de estilhaços .............................................................................. 126Escolha dos tipos de instância e testes .............................................................................. 127

Nós principais dedicados .......................................................................................................... 128Alarmes do CloudWatch recomendados ..................................................................................... 131

Escala de petabytes ........................................................................................................................ 133Criptografia ..................................................................................................................................... 135

Criptografia em repouso ........................................................................................................... 135Ativação da criptografia de dados em repouso ..................................................................... 135Desativação da criptografia de dados em repouso ................................................................ 136Monitoramento de domínios que criptografam dados em repouso ........................................... 136Outras considerações ...................................................................................................... 137

Criptografia de nó a nó ............................................................................................................ 137

Versão da API 2015-01-01v

Page 6: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Como habilitar a criptografia de nó a nó ............................................................................. 137Como desabilitar a criptografia de nó a nó .......................................................................... 138Outras considerações ...................................................................................................... 138

Uso do Curator para girar dados ....................................................................................................... 139Código de exemplo ................................................................................................................. 139Configurações básicas ............................................................................................................. 142Triggers ................................................................................................................................. 142Permissões ............................................................................................................................ 142

Solução de problemas ..................................................................................................................... 144Não é possível acessar o Kibana .............................................................................................. 144Não é possível acessar o domínio VPC ..................................................................................... 144Status de cluster vermelho ....................................................................................................... 144

Recuperação de uma carga contínua de processamento pesado ............................................ 145Status de cluster amarelo ......................................................................................................... 146ClusterBlockException .............................................................................................................. 147

Falta de espaço de armazenamento disponível .................................................................... 147Bloqueio de discos em virtude de pouca memória ................................................................ 147

OutOfMemoryError em JVM ...................................................................................................... 147Falha em nós de cluster .......................................................................................................... 148Não é possível fechar o índice .................................................................................................. 148Não é possível executar o SSH no nó ....................................................................................... 149Erro de snapshot "Inválido para a classe de armazenamento do objeto" .......................................... 149Cabeçalho de host inválido ....................................................................................................... 149Erro de navegador ao usar o Kibana ......................................................................................... 149Operação não autorizada após escolher o acesso da VPC ............................................................ 150Carregamento travado após criar o domínio VPC ......................................................................... 150Erro de certificado ao usar o SDK ............................................................................................. 150

Referência geral .............................................................................................................................. 152Tipos de instâncias compatíveis ................................................................................................ 152Operações compatíveis do Elasticsearch .................................................................................... 153

Diferenças notáveis de API .............................................................................................. 153Versão 6.3 ..................................................................................................................... 154Versão 6.2 ..................................................................................................................... 155Versão 6.0 ..................................................................................................................... 156Versão 5.6 ..................................................................................................................... 157Versão 5.5 ..................................................................................................................... 158Versão 5.3 ..................................................................................................................... 158Versão 5.1 ..................................................................................................................... 159Versão 2.3 ..................................................................................................................... 160Versão 1.5 ..................................................................................................................... 160

Plug-ins compatíveis ................................................................................................................ 161Plug-ins de saída ............................................................................................................ 163

Outros recursos compatíveis ..................................................................................................... 164Uso dos AWS SDKs ........................................................................................................................ 165

Java ...................................................................................................................................... 165Referência sobre a API de configuração do Amazon ES ....................................................................... 169

Ações .................................................................................................................................... 169AddTags ........................................................................................................................ 170CreateElasticsearchDomain .............................................................................................. 171DeleteElasticsearchDomain ............................................................................................... 176DeleteElasticsearchServiceRole ......................................................................................... 178DescribeElasticsearchDomain ........................................................................................... 179DescribeElasticsearchDomainConfig ................................................................................... 181DescribeElasticsearchDomains .......................................................................................... 184DescribeElasticsearchInstanceTypeLimits ............................................................................ 187DescribeReservedElasticsearchInstanceOfferings ................................................................. 190DescribeReservedElasticsearchInstances ............................................................................ 191

Versão da API 2015-01-01vi

Page 7: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

GetCompatibleElasticsearchVersions .................................................................................. 193GetUpgradeHistory .......................................................................................................... 195GetUpgradeStatus ........................................................................................................... 197ListDomainNames ........................................................................................................... 198ListElasticsearchInstanceTypeDetails .................................................................................. 199ListElasticsearchInstanceTypes (Preterido) .......................................................................... 201ListElasticsearchVersions ................................................................................................. 203ListTags ......................................................................................................................... 204PurchaseReservedElasticsearchInstance ............................................................................. 205RemoveTags .................................................................................................................. 206StartElasticsearchServiceSoftwareUpdate ........................................................................... 208StopElasticsearchServiceSoftwareUpdate ............................................................................ 209UpdateElasticsearchDomainConfig ..................................................................................... 210UpgradeElasticsearchDomain ............................................................................................ 215

Tipos de dados ....................................................................................................................... 216AdvancedOptions ............................................................................................................ 216AdvancedOptionsStatus .................................................................................................... 217ARN .............................................................................................................................. 217CognitoOptions ............................................................................................................... 218CognitoOptionsStatus ....................................................................................................... 218CreateElasticsearchDomainRequest ................................................................................... 218DomainID ....................................................................................................................... 219DomainName .................................................................................................................. 219DomainNameList ............................................................................................................. 220EBSOptions .................................................................................................................... 220ElasticsearchClusterConfig ................................................................................................ 220ElasticsearchDomainConfig ............................................................................................... 221ElasticsearchDomainStatus ............................................................................................... 222ElasticsearchDomainStatusList .......................................................................................... 224EncryptionAtRestOptions .................................................................................................. 224EncryptionAtRestOptionsStatus ......................................................................................... 224EndpointsMap ................................................................................................................. 225Opções de publicação de logs .......................................................................................... 225Status de opções de publicação de logs ............................................................................. 226NodeToNodeEncryptionOptions ......................................................................................... 226NodeToNodeEncryptionOptionsStatus ................................................................................ 226OptionState .................................................................................................................... 226OptionStatus ................................................................................................................... 227ServiceSoftwareOptions .................................................................................................... 227ServiceURL .................................................................................................................... 228SnapshotOptions ............................................................................................................. 228SnapshotOptionsStatus .................................................................................................... 228Tag ............................................................................................................................... 229TagKey .......................................................................................................................... 229TagList .......................................................................................................................... 229TagValue ....................................................................................................................... 229VPCDerivedInfo .............................................................................................................. 229VPCDerivedInfoStatus ...................................................................................................... 230VPCOptions .................................................................................................................... 230VPCOptionsStatus ........................................................................................................... 230

Erros ..................................................................................................................................... 231Limites ........................................................................................................................................... 232

Limites de cluster e instância .................................................................................................... 232Limites de tamanhos de volume do EBS .................................................................................... 232Limites de rede ....................................................................................................................... 234Limite de processo Java .......................................................................................................... 235

Instâncias reservadas ...................................................................................................................... 236

Versão da API 2015-01-01vii

Page 8: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Comprar instâncias reservadas (console) .................................................................................... 236Comprar instâncias reservadas (CLI da AWS) ............................................................................. 237Comprar instâncias reservadas (SDKs da AWS) .......................................................................... 238Examinar custos ..................................................................................................................... 239

Tutorial: como criar um aplicativo de pesquisa ..................................................................................... 240Etapa 1: dados de amostra de índice ......................................................................................... 240Etapa 2: Criar a API ................................................................................................................ 241Etapa 3: criar a função Lambda ................................................................................................ 242Etapa 4: modificar a política de acesso ao domínio ...................................................................... 243Etapa 5: testar o aplicativo web ................................................................................................ 243Próximas etapas ..................................................................................................................... 245

Tutorial: visualização das chamadas de suporte .................................................................................. 246Etapa 1: Configurar os pré-requisitos ......................................................................................... 247Etapa 2: Copiar código de exemplo ........................................................................................... 247(Opcional) Etapa 3: Adicionar dados de exemplo ......................................................................... 250Etapa 4: Analisar e visualizar seus dados ................................................................................... 251Etapa 5: Limpar recursos e Próximas etapas .............................................................................. 255

Histórico de documentos .................................................................................................................. 256Notas de release .................................................................................................................... 256Atualizações anteriores ............................................................................................................ 257

Uso de funções vinculadas ao serviço ................................................................................................ 260Permissões de função vinculada ao serviço do Amazon ES ........................................................... 260Criação de uma função vinculada a um serviço do Amazon ES ...................................................... 261Edição de uma função vinculada ao serviço do Amazon ES .......................................................... 261Exclusão de uma função vinculada ao serviço do Amazon ES ....................................................... 261

Limpar uma função vinculada ao serviço ............................................................................ 261Excluir manualmente uma função vinculada ao serviço ......................................................... 262

AWS Glossary ................................................................................................................................ 263

Versão da API 2015-01-01viii

Page 9: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRecursos do Amazon Elasticsearch Service

Em que consiste o AmazonElasticsearch Service?

O Amazon Elasticsearch Service (Amazon ES) é um serviço gerenciado que facilita a implantação, aoperação e o dimensionamento de clusters do Elasticsearch na nuvem AWS. O Elasticsearch é umconhecido mecanismo de pesquisa e análise de código aberto para casos de uso, como análise de log,monitoramento de aplicativos em tempo real e análise de streams de cliques. Com o Amazon ES, vocêobtém acesso direto a APIs Elasticsearch; o código e os aplicativos existentes funcionam perfeitamentecom o serviço.

O Amazon ES fornece todos os recursos para o cluster do Elasticsearch e o executa. Ele também detectae substitui automaticamente os nós com falha do Elasticsearch, reduzindo os custos indiretos associadoscom infraestruturas autogerenciadas. Você pode dimensionar seu cluster com uma única chamada de APIou alguns cliques no console.

Para começar a usar o Amazon ES, é necessário criar um domínio. An Amazon ES domain is synonymouswith an Elasticsearch cluster. Domains are clusters with the settings, instance types, instance counts, andstorage resources that you specify.

Você pode usar o console do Amazon ES para definir e configurar um domínio em questão de minutos. Sepreferir acesso programático, poderá usar a AWS CLI ou os SDKs da AWS.

Tópicos• Recursos do Amazon Elasticsearch Service (p. 1)• Versões Elasticsearch compatíveis (p. 2)• Definição de preço para Amazon Elasticsearch Service (p. 3)• Conceitos básicos do Amazon Elasticsearch Service (p. 3)• Serviços relacionados (p. 3)

Recursos do Amazon Elasticsearch ServiceO Amazon ES inclui os seguintes recursos:

Dimensionar

• Várias configurações de CPU, memória e capacidade de armazenamento, recurso conhecido como tiposde instância

• Até 1,5 GB de armazenamento de instâncias• Volumes de armazenamento do Amazon EBS

Segurança

• Controle de acesso do AWS Identity and Access Management (IAM)• Fácil integração com a Amazon VPC e os security groups da VPC• Criptografia de dados em repouso e a criptografia de nó a nó• Autenticação do Amazon Cognito para o Kibana

Estabilidade

Versão da API 2015-01-011

Page 10: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVersões Elasticsearch compatíveis

• Vários locais geográficas para seus recursos, conhecidos como regiões e zonas de disponibilidade• Nós principais dedicados para descarregar tarefas de gerenciamento de cluster• Snapshots automatizados para fazer backup e restaurar domínios do Amazon ES• Alocação de nós de cluster em duas zonas de disponibilidade na mesma região, recurso conhecido

como reconhecimento de zona

Integração com serviços populares

• Visualização de dados usando Kibana• Integração com o Amazon CloudWatch para monitoramento das métricas de domínio do Amazon ES e

definição de alarmes• Integração com o AWS CloudTrail para auditoria de chamadas de API de configuração para domínios do

Amazon ES• Integração com o Amazon S3, o Amazon Kinesis e o Amazon DynamoDB para carregar dados de

streaming para o Amazon ES

Versões Elasticsearch compatíveisO Amazon ES oferece suporte às seguintes versões do Elasticsearch no momento:

• 6.3, 6.2, 6.0• 5.6, 5.5, 5.3, 5.1• 2.3• 1.5

Comparadas às versões anteriores do Elasticsearch, as versões 6.x oferecem recursos avançados que astornam mais rápidas, mais seguras e mais fáceis de usar. Veja alguns dos destaques:

• Divisão de índice – se um índice ultrapassa o número original de estilhaços, a API _split oferece umaforma conveniente de dividir cada estilhaço principal em dois ou mais estilhaços em um novo índice.

• Visualizações Vega – o Kibana 6.2 e mais recente oferece suporte à linguagem de visualização Vega,que permite a você fazer consultas do Elasticsearch com reconhecimento de contexto, combinar váriasfontes de dados em um único gráfico, adicionar interatividade de usuário aos gráficos e muito mais.

• Avaliação de classificação – a API _rank_eval permite a você medir e acompanhar como osresultados de pesquisa classificados são avaliados em relação a um conjunto de consultas, para garantirque sua pesquisa seja executada conforme o esperado.

• Agregações compostas – essas agregações criam buckets compostos de um ou mais campose os classifica em "ordem natural" (em ordem alfabética para termos, numérica ou por data parahistogramas).

• Melhor desempenho de indexação – as versões mais recentes do Elasticsearch fornecem melhoresrecursos de indexação que aumentam significativamente a taxa de transferência das atualizações dedados.

• Melhores proteções – as versões 6.x do Elasticsearch oferecem várias proteções que são projetadaspara impedir que consultas excessivamente grandes ou complexas afetem negativamente odesempenho e a estabilidade do cluster.

• Preenchimento automático do Kibana – O Kibana 6.3 e mais recente oferece suporte parapreenchimento automático de consultas, o que melhora bastante a experiência do usuário diariamente.

Para obter mais informações sobre as diferenças entre as versões do Elasticsearch e as APIs compatíveiscom o Amazon ES, consulte the section called “Operações compatíveis do Elasticsearch” (p. 153).

Versão da API 2015-01-012

Page 11: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDefinição de preço para Amazon ES

Se você iniciar um novo projeto no Elasticsearch, é recomendável escolher a última versão compatível doElasticsearch. Se já houver um domínio existente que usa uma versão mais antiga do Elasticsearch, vocêpoderá optar por manter o domínio ou migrar seus dados. Para obter mais informações, consulte Comoatualizar o Elasticsearch (p. 93).

Definição de preço para Amazon ElasticsearchService

Com a AWS, você paga somente por aquilo que usa. No Amazon ES, você paga por hora de uso de umainstância do EC2 e pelo tamanho cumulativo de todos os volumes de armazenamento do EBS anexados asuas instâncias. Cobranças padrão de transferência de dados na AWS também se aplicam.

No entanto, existe uma exceção de transferência de dados que é digna de nota. Se você usa oreconhecimento de zona (p. 48), o Amazon ES não cobra pelo tráfego entre as duas zonas dedisponibilidade nas quais o domínio reside. Um volume significativo de transferência de dados ocorre emum domínio de durante a alocação de estilhaços e o rebalanceamento. O Amazon ES não mede nemcobra por este tráfego.

Para detalhes de preço completos, incluindo detalhes sobre o nível da AWS gratuito, consulte Definiçãode preço do Amazon Elasticsearch Service. Para obter informações sobre encargos incorridosdurante as alterações de configuração, consulte the section called “Cobranças para alterações deconfiguração” (p. 46).

Conceitos básicos do Amazon ElasticsearchService

Para começar, cadastre-se em uma conta da AWS, se ainda não tiver uma. Depois de configurar umaconta, siga o tutorial Conceitos básicos (p. 5) para o Amazon Elasticsearch Service. Enquanto você seinforma sobre o serviço, consulte os tópicos introdutórios a seguir se precisar de mais informações:

• Crie um domínio (p. 10)• Dimensione seu domínio adequadamente (p. 125)• Controle o acesso ao domínio (p. 31)• Indexe dados manualmente (p. 57) ou de outros serviços (p. 69)• Use o Kibana (p. 98) para pesquisar seus dados

Serviços relacionadosO Amazon ES normalmente é usado com os seguintes serviços:

Amazon CloudWatch

Domínios do Amazon ES enviam métricas automaticamente para CloudWatch para que vocêpossa monitorar a integridade e o desempenho do domínio. Para obter mais informações, consulteMonitoramento de métricas e estatísticas de cluster com o Amazon CloudWatch (console) (p. 50).

O CloudWatch Logs também pode ir para outra direção. Convém configurar o CloudWatch Logspara transmitir dados ao Amazon ES para análise. Para saber mais, consulte the section called“Carregamento de dados em streaming no Amazon ES por meio do Amazon CloudWatch” (p. 79).

Versão da API 2015-01-013

Page 12: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorServiços relacionados

AWS CloudTrail

Use o AWS CloudTrail para obter um histórico das chamadas de API de configuração do AmazonES e de eventos correspondentes de sua conta. Para obter mais informações, consulte Registro dechamadas de API de configuração do Amazon Elasticsearch Service com o AWS CloudTrail (p. 50).

Amazon Kinesis

Kinesis é um serviço totalmente gerenciado para processamento em tempo real de dadosde streaming em altíssima escala. Para obter mais informações, consulte the section called“Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis DataStreams” (p. 74) e the section called “Carregamento de dados em streaming no Amazon ES pormeio do Amazon Kinesis Data Firehose” (p. 79).

Amazon S3

Amazon Simple Storage Service (Amazon S3) oferece armazenamento para a Internet. Esse guiaoferece código de exemplo Lambda para integração com Amazon S3. Para obter mais informações,consulte the section called “Carregamento de dados em streaming no Amazon ES por meio doAmazon S3” (p. 69).

IAM da AWS

O AWS Identity and Access Management (IAM) é um serviço da web que você pode usar paragerenciar acesso a seus domínios do Amazon ES. Para obter mais informações, consulte Controle deacesso (p. 31).

AWS Lambda

AWS Lambda é um serviço de computação que permite executar código sem o provisionamento ougerenciamento de servidores. Esse guia fornece código de exemplo do Lambda para transmitir dadosde DynamoDB, Amazon S3 e Kinesis. Para obter mais informações, consulte Carregamento de dadosde streaming no Amazon ES (p. 69).

Amazon DynamoDB

O Amazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado queproporciona um desempenho rápido e previsível com escalabilidade fácil. Para saber mais sobredados de streaming para Amazon ES, consulte the section called “Carregamento de dados emstreaming no Amazon ES por meio do Amazon DynamoDB” (p. 76).

Versão da API 2015-01-014

Page 13: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 1: criação de um domínio do Amazon ES

Conceitos básicos do AmazonElasticsearch Service

Este tutorial mostra como usar o Amazon Elasticsearch Service (Amazon ES) para criar e configurarum domínio de teste. An Amazon ES domain is synonymous with an Elasticsearch cluster. Domains areclusters with the settings, instance types, instance counts, and storage resources that you specify.

O tutorial orienta você pelas etapas básicas de como conseguir montar um domínio rapidamente. Paraobter informações mais detalhadas, consulte Criação e configuração de domínios do Amazon ES (p. 10)e outros tópicos neste guia.

Você pode concluir as seguintes etapas usando o console do Amazon ES, a AWS CLI ou o SDK da AWS:

1. Criar um domínio do Amazon ES (p. 5)2. Fazer upload de dados em um domínio do Amazon ES para indexação (p. 7)3. Pesquisar documentos em um domínio do Amazon ES (p. 8)4. Excluir um domínio do Amazon ES (p. 9)

Para obter mais informações sobre como configurar a AWS CLI, consulte Guia do usuário do AWSCommand Line Interface.

Etapa 1: Criar um domínio do Amazon ESImportant

Este processo é um tutorial conciso para configurar um domínio de teste. Ele não deve serusado para criar domínios de produção. Para obter uma versão abrangente do mesmo processo,consulte Criação e configuração de domínios do Amazon ES (p. 10).

An Amazon ES domain is synonymous with an Elasticsearch cluster. Domains are clusters with thesettings, instance types, instance counts, and storage resources that you specify. Você pode criar umdomínio do Amazon ES usando o console, a AWS CLI ou os SDKs da AWS.

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

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.3. Na página Define domain, em Elasticsearch domain name, digite um nome para o domínio. Neste

tutorial de Conceitos básicos, usamos o nome de domínio movies (filmes) nos exemplos quefornecemos posteriormente no tutorial.

4. Em Version, escolha uma versão do Elasticsearch para seu domínio. É recomendável escolher aversão compatível mais recente. Para obter mais informações, consulte the section called “VersõesElasticsearch compatíveis” (p. 2).

5. Escolha Next.6. Em Instance count, escolha o número de instâncias que você deseja. Para este tutorial, você pode

usar o valor padrão de 1.

Versão da API 2015-01-015

Page 14: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 1: criação de um domínio do Amazon ES

7. Em Instance type, escolha um tipo de instância para o domínio do Amazon ES. Para este tutoral,recomendamos t2.small.elasticsearch, um tipo de instância pequeno e barato, propício parafins de teste.

8. Por hora, você pode ignorar as caixas de seleção Enable dedicated master e Enable zone awareness.Para mais informações sobre ambas, consulte Sobre os nós principais dedicados (p. 128) eHabilitação de reconhecimento de zona (p. 48).

9. Em Storage type, escolha EBS.

a. Para EBS volume type, escolha Finalidade geral (SSD). Para obter mais informações, consulteAmazon EBS Volume Types.

b. Em EBS volume size (Tamanho do volume EBS), digite o tamanho em GiB do armazenamentoexterno para cada nó de dados. Para este tutorial, você pode usar o valor padrão de 10.

10. Por enquanto, você pode ignorar Ativar criptografia em repouso. Para obter mais informações sobre orecurso, consulte the section called “Criptografia em repouso” (p. 135).

11. Em Automated snapshot start hour (Horário automático de início do snapshot), use o valorpadrão. Para obter mais informações, consulte the section called “Configuração de snapshotsautomáticos” (p. 24).

12. Escolha Next.13. Para simplificar este tutorial, recomendamos uma política de acesso baseada em IP. Na página Set up

access, na seção Network configuration, escolha Public access.14. Por enquanto, você pode ignorar a autenticação do Kibana. Para obter mais informações sobre o

recurso, consulte Autenticação para o Kibana (p. 103).15. Para Set the domain access policy to, escolha Allow access to the domain from specific IP(s) e digite

seu endereço IP público, que você pode encontrar procurando "Qual é o meu IP?" na maioria dosmecanismos de pesquisa. Em seguida, selecione OK.

Para saber mais sobre o acesso público, o acesso à VPC e políticas de acesso em geral, consulteControle de acesso (p. 31) e Suporte à VPC (p. 116).

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

Note

Os novos domínios demoram aproximadamente dez minutos para inicializar. Depois que seudomínio é inicializado, você pode fazer upload de dados e alterações no domínio.

Para criar um domínio do Amazon ES (AWS CLI)

• Execute o seguinte comando para criar um domínio do Amazon ES.

O comando cria um domínio chamado movies com o Elasticsearch versão 6.0. Ele especificauma instância do tipo de instância t2.small.elasticsearch. Como o tipo de instância requerarmazenamento do EBS, ele especifica um volume de 10 GiB. Por fim, o comando aplica uma políticade acesso baseada em IP que restringe o acesso ao domínio para um único endereço IP.

Você precisa substituir o your_ip_address no comando por seu endereço IP público, que vocêpode encontrar procurando "Qual é o meu IP?" no Google.

aws es create-elasticsearch-domain --domain-name movies --elasticsearch-version 6.0 --elasticsearch-cluster-config InstanceType=t2.small.elasticsearch,InstanceCount=1 --ebs-options EBSEnabled=true,VolumeType=standard,VolumeSize=10 --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":["es:*"],"Condition":{"IpAddress":{"aws:SourceIp":["your_ip_address"]}}}]}'

Versão da API 2015-01-016

Page 15: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 2: upload de dados para indexação

Note

Os novos domínios demoram aproximadamente dez minutos para inicializar. Depois que seudomínio é inicializado, você pode fazer upload de dados e alterações no domínio.

Use o comando a seguir para consultar o status do novo domínio:

aws es describe-elasticsearch-domain --domain movies

Para criar um domínio do Amazon ES (SDKs da AWS)

Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as açõesdefinidas na Referência sobre a API de configuração do Amazon ES (p. 169), incluindo a açãoCreateElasticsearchDomain. Para obter mais informações sobre instalação e uso de SDKs da AWS,consulte AWS Software Development Kits.

Etapa 2: Fazer upload de dados em um domínio doAmazon ES para indexação

Important

Este processo é um tutorial conciso para fazer upload de uma pequena quantidade de dados deteste. Para obter mais informações, consulte Indexação de dados (p. 57).

Você pode fazer upload de dados em um domínio do Amazon Elasticsearch Service para indexação pormeio das APIs de índice e em massa do Elasticsearch na linha de comando.

• Use a API de índice para adicionar ou atualizar um único documento do Elasticsearch.• Use a API em massa para adicionar ou atualizar vários documentos do Elasticsearch que estão

descritos no mesmo arquivo JSON.

Os exemplos de solicitações a seguir usam o curl, um cliente HTTP comum, para agilidade e conveniência.Clientes como o curl não podem executar a assinatura de solicitações exigida se as políticas de acessoespecificam usuários ou funções do IAM. Para executar com êxito as instruções desta etapa, você deveusar uma política de acesso baseada em IP que permita acesso não autenticado, como a configurada naetapa 1 (p. 5).

Você pode instalar curl no Windows e usá-lo no prompt de comando, mas os usuários do Windows talvezachem mais conveniente usar uma ferramenta como Cygwin ou o Windows Subsystem para Linux. OmacOS e a maior parte das distribuições do Linux vêm com curl pré-instalado.

Para fazer upload de um único documento para um domínio do Amazon ES

• Execute o comando a seguir para adicionar um único documento ao domínio movies:

curl -XPUT elasticsearch_domain_endpoint/movies/_doc/1 -d '{"director": "Burton, Tim", "genre": ["Comedy","Sci-Fi"], "year": 1996, "actor": ["Jack Nicholson","Pierce Brosnan","Sarah Jessica Parker"], "title": "Mars Attacks!"}' -H 'Content-Type: application/json'

Para obter uma explicação detalhada desse comando e como fazer solicitações assinadas ao Amazon ES,consulte Indexação de dados (p. 57).

Versão da API 2015-01-017

Page 16: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 3: pesquisar documentosem um domínio do Amazon ES

Para fazer upload de um arquivo JSON que contém vários documentos para um domínio doAmazon ES

1. Crie um arquivo chamado bulk_movies.json. Copie e cole o seguinte conteúdo nele e adicioneuma nova linha no final:

{ "index" : { "_index": "movies", "_type" : "_doc", "_id" : "2" } }{"director": "Frankenheimer, John", "genre": ["Drama", "Mystery", "Thriller"], "year": 1962, "actor": ["Lansbury, Angela", "Sinatra, Frank", "Leigh, Janet", "Harvey, Laurence", "Silva, Henry", "Frees, Paul", "Gregory, James", "Bissell, Whit", "McGiver, John", "Parrish, Leslie", "Edwards, James", "Flowers, Bess", "Dhiegh, Khigh", "Payne, Julie", "Kleeb, Helen", "Gray, Joe", "Nalder, Reggie", "Stevens, Bert", "Masters, Michael", "Lowell, Tom"], "title": "The Manchurian Candidate"}{ "index" : { "_index": "movies", "_type" : "_doc", "_id" : "3" } }{"director": "Baird, Stuart", "genre": ["Action", "Crime", "Thriller"], "year": 1998, "actor": ["Downey Jr., Robert", "Jones, Tommy Lee", "Snipes, Wesley", "Pantoliano, Joe", "Jacob, Ir\u00e8ne", "Nelligan, Kate", "Roebuck, Daniel", "Malahide, Patrick", "Richardson, LaTanya", "Wood, Tom", "Kosik, Thomas", "Stellate, Nick", "Minkoff, Robert", "Brown, Spitfire", "Foster, Reese", "Spielbauer, Bruce", "Mukherji, Kevin", "Cray, Ed", "Fordham, David", "Jett, Charlie"], "title": "U.S. Marshals"}{ "index" : { "_index": "movies", "_type" : "_doc", "_id" : "4" } }{"director": "Ray, Nicholas", "genre": ["Drama", "Romance"], "year": 1955, "actor": ["Hopper, Dennis", "Wood, Natalie", "Dean, James", "Mineo, Sal", "Backus, Jim", "Platt, Edward", "Ray, Nicholas", "Hopper, William", "Allen, Corey", "Birch, Paul", "Hudson, Rochelle", "Doran, Ann", "Hicks, Chuck", "Leigh, Nelson", "Williams, Robert", "Wessel, Dick", "Bryar, Paul", "Sessions, Almira", "McMahon, David", "Peters Jr., House"], "title": "Rebel Without a Cause"}

2. Execute o comando a seguir para fazer upload do arquivo para o domínio movies:

curl -XPOST elasticsearch_domain_endpoint/_bulk --data-binary @bulk_movies.json -H 'Content-Type: application/json'

Para obter mais informações sobre o formato de arquivo em massa, consulte Indexação dedados (p. 57).

Note

O Amazon ES oferece suporte à migração de dados de snapshots manuais tirados tanto noAmazon ES quanto em clusters autogerenciados do Elasticsearch. A restauração de um snapshotem um cluster autogerenciado do Elasticsearch é uma alternativa comum de migrar dadospara o Amazon ES. Para obter mais informações, consulte the section called “Restauração desnapshots” (p. 91).

Etapa 3: Pesquisar documentos em um domínio doAmazon ES

Para pesquisar documentos em um domínio do Amazon Elasticsearch Service, use a API de pesquisaElasticsearch. Como alternativa, use o Kibana (p. 98) para pesquisar documentos no domínio.

Para pesquisar documentos da linha de comando

• Execute o comando a seguir para realizar uma pesquisa no domínio movies usando a palavra mars:

curl -XGET 'elasticsearch_domain_endpoint/movies/_search?q=mars'

Versão da API 2015-01-018

Page 17: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 4: Excluir um domínio do Amazon ES

Para pesquisar documentos em um domínio do Amazon ES por meio do Kibana

1. Direcione seu navegador para o plug-in do Kibana correspondente ao seu domínio do Amazon ES.Você pode encontrar o endpoint do Kibana no painel de seu domínio no console do Amazon ES. OURL segue o formato de:

https://domain.region.es.amazonaws.com/_plugin/kibana/

2. Para usar o Kibana, você deve configurar pelo menos um padrão de índice. O Kibana usa essespadrões para identificar que índices você deseja analisar. Para este tutorial, insira movies e escolhaCreate (Criar).

3. A tela Index Patterns (Padrões de índice) mostra os vários campos do documento, como actor edirector. Por enquanto, escolha Discover (Descobrir) para pesquisar seus dados.

4. Na barra de pesquisa, digite mars e, em seguida, pressione Enter. Observe como a pontuação desimilaridade (_score) aumenta quando você pesquisa a frase mars attacks (ataques de Marte).

Etapa 4: Excluir um domínio do Amazon ESComo o domínio movies deste tutorial serve para fins de teste, você deve excluí-lo quando terminar ostestes para evitar cobranças.

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

1. Fazer login no console Amazon Elasticsearch Service.2. No painel de navegação, em My domains, escolha o domínio movies.3. Escolha Delete Elasticsearch domain.4. Escolha Delete domain.5. Marque a caixa de seleção Excluir o domínio e escolha Excluir.

Para excluir um domínio do Amazon ES (AWS CLI)

• Execute o comando a seguir para excluir o domínio movies:

aws es delete-elasticsearch-domain --domain-name movies

Note

A exclusão de um domínio exclui todas os recursos do Amazon ES que podem ser cobrados. Noentanto, quaisquer snapshots manuais do domínio que você criou não são excluídos. Pense napossibilidade de salvar um snapshot para o caso de você precisar recriar o domínio do AmazonES no futuro. Se você pretende recriar o domínio, pode excluir com segurança qualquer snapshotcriado manualmente.

Para excluir um domínio do Amazon ES (SDKs da AWS)

Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as açõesdefinidas na Referência sobre a API de configuração do Amazon ES (p. 169), incluindo a açãoDeleteElasticsearchDomain. Para obter mais informações sobre instalação e uso de SDKs da AWS,consulte AWS Software Development Kits.

Versão da API 2015-01-019

Page 18: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriação de domínios do Amazon ES

Criação e configuração de domíniosdo Amazon Elasticsearch Service

Este capítulo descreve como se cria e configura um domínio do Amazon Elasticsearch Service (AmazonES). An Amazon ES domain is synonymous with an Elasticsearch cluster. Domains are clusters with thesettings, instance types, instance counts, and storage resources that you specify.

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

Tópicos• Criação de domínios do Amazon ES (p. 10)• Configuração de domínios do Amazon ES (p. 16)• Configuração de armazenamento EBS (p. 19)• Modificar a configuração de acesso à VPC (p. 21)• Configurar a autenticação do Amazon Cognito para o Kibana (p. 22)• Configuração de políticas de acesso (p. 22)• Configuração de snapshots automáticos (p. 24)• Configuração de opções avançadas (p. 25)• Configuração de logs (p. 26)

Criação de domínios do Amazon ESEsta seção descreve como se criam domínios do Amazon ES usando o console do Amazon ES ou usandoa AWS CLI com o comando create-elasticsearch-domain. Os procedimentos da AWS CLI incluemsintaxe e exemplos.

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.2. Em Analytics, escolha Elasticsearch Service.3. Escolha Create a new domain.

Como alternativa, escolha Get Started se esse for o primeiro domínio do Amazon ES que estivercriando para sua conta AWS.

4. Na página Define domain, em Domain name, digite um nome para seu domínio. O nome de domíniodeve atender aos seguintes critérios:

• Identificar exclusivamente um domínio.

Versão da API 2015-01-0110

Page 19: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriação de domínios do Amazon ES (console)

• 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 (-).

5. Em Version, escolha uma versão do Elasticsearch para seu domínio. É recomendável escolher aversão mais recente. Para obter mais informações, consulte the section called “Versões Elasticsearchcompatíveis” (p. 2).

6. Escolha Next.7. Em Instance count, escolha o número de instâncias que você deseja.

O número padrão é um. Para valores máximos, consulte the section called “Limites de clustere instância” (p. 232). Recomendamos um mínimo de três instâncias para evitar possíveisproblemas do Elasticsearch, como o problema de cérebro dividido. Se você tiver três nós principaisdedicados (p. 128), ainda recomendamos um mínimo de dois nós de dados para replicação. Osclusters de nó único são excelentes para desenvolvimento e testes, mas não devem ser usadospara cargas de trabalho de produção. Para obter mais orientações, consulte the section called“Dimensionamento de domínios do Amazon ES” (p. 125).

8. Em Instance type, escolha um tipo de instância para os nós de dados.

Para ver uma lista de tipos de instância compatíveis com o Amazon ES, consulte Tipos de instânciacompatíveis (p. 152).

9. (Opcional) Se você precisar garantir a estabilidade do cluster ou se tiver um domínio com mais de10 instâncias, ative um nó principal dedicado. Os nós principais dedicados do cluster aumentam aestabilidade e são essenciais para um domínio com contagem de instância superior a 10. Para obtermais informações, consulte Sobre os nós principais dedicados (p. 128).

a. Marque a caixa de seleção Enable dedicated master.b. Em Dedicated master instance type, escolha um tipo de instância para o nó principal dedicado.

Para obter uma lista de tipos de instância compatíveis com o Amazon ES, consulte Tipos deinstância compatíveis (p. 152).

Note

• Você pode escolher um tipo de instância para o nó principal dedicado diferente do tipode instância que escolher para os nós de dados. Por exemplo, você pode selecionarinstâncias de uso geral ou de armazenamento otimizado para os nós de dados einstâncias otimizadas para computação para os nós principais dedicados.

c. Em Dedicated master instance count, escolha o número de instâncias para o nó principaldedicado.

É recomendável escolher um número ímpar de instâncias para evitar possíveis problemas doElasticsearch como o problema de cérebro dividido. O número padrão e recomendado é três.

10. (Opcional) Marque a caixa de seleção Enable zone awareness (Habilitar reconhecimento da zona).

O reconhecimento de zona distribui os nós de dados do Amazon ES em duas zonas dedisponibilidade na mesma região. Se você habilitar o reconhecimento de zona, deverá ter umnúmero de instâncias na contagem de instâncias e deverá também usar a API do Elasticsearchpara criar estilhaços de réplica para seu cluster. Esse processo permite a distribuição uniforme dosestilhaços nas duas zonas de disponibilidade. Para obter mais informações, consulte Habilitação dereconhecimento de zona (p. 48).

11. Em Storage type, escolha Instance (o padrão) ou EBS.

Se o domínio do Amazon ES necessitar de mais espaço de armazenamento, use um volume doEBS para armazenar em vez de o armazenamento anexado ao tipo de instância selecionado. Osdomínios com índices grandes ou com grande número de índices muitas vezes se beneficiam daVersão da API 2015-01-01

11

Page 20: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriação de domínios do Amazon ES (console)

maior capacidade de armazenamento dos volumes do EBS. Para obter orientações sobre a criação dedomínios especialmente grandes, consulte Escala de petabytes (p. 133). Se você escolher EBS, asseguintes caixas serão exibidas:

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

Se escolher 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 obtermais informações, consulte a Amazon EBS Volumes na documentação do Amazon EC2.

b. Em EBS volume size, digite o tamanho do volume do EBS que você deseja anexar a cada nó dedados.

EBS volume size é por nó. Você pode calcular o tamanho total do cluster para o domínio doAmazon ES por meio da fórmula a seguir: (número de nós de dados) * (tamanho do volume doEBS). O tamanho mínimo e máximo de um volume do EBS depende tanto do tipo de volume doEBS especificado quanto do tipo da instância à qual ele está anexado. Para saber mais, consulteLimites de tamanhos de volume do EBS (p. 232).

12. (Opcional) Para ativar a criptografia de dados em repouso, marque a caixa de seleção Ativarcriptografia em repouso.

Selecione (Default) aws/es ((Padrão) aws/es) para que o Amazon ES crie uma chave de criptografiado KMS em seu nome (ou use uma que já foi criada). Caso contrário, selecione sua própria chavede criptografia do KMS no menu Chave mestra do KMS. Para saber mais, consulte the section called“Criptografia em repouso” (p. 135).

13. Em Automated snapshot start hour, escolha a hora para snapshots diários automatizados de índicesde domínio.

Para obter mais informações e recomendações, consulte the section called “Configuração desnapshots automáticos” (p. 24).

14. (Opcional) Escolha Advanced options. Para obter um resumo das opções, consulte the section called“Configuração de opções avançadas” (p. 25).

15. Escolha Next.16. Na página Set up access, na seção Network configuration, escolha Public access ou VPC access. Se

você escolher Public access, vá para a etapa 17. Se você escolher VPC access, assegure-se de quevocê atende aos pré-requisitos (p. 120) e faça o seguinte:

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

Note

A VPC e o domínio devem estar na mesma região da AWS, e você deve selecionar umaVPC com a locação definida como Padrão. O Amazon ES ainda não oferece suporte aVPCs que usem locação dedicada.

b. Para Subnet, escolha uma sub-rede. Se você ativou o reconhecimento de zona na etapa 10,deverá escolher duas sub-redes. O Amazon ES colocará um VPC endpoint e interfaces de redeelásticas (ENIs) na sub-rede ou sub-redes.

Note

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

c. Em Security groups (Grupos de segurança), escolha os grupos de segurança da VPC queprecisam acessar o domínio do Amazon ES. Para obter mais informações, consulte Suporte àVPC (p. 116).

d. Para IAM role, mantenha a função padrão. O Amazon ES usa essa função predefinida (tambémconhecida como função vinculada ao serviço) para acessar sua VPC e colocar um VPC endpoint

Versão da API 2015-01-0112

Page 21: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriação de domínios do Amazon ES (AWS CLI)

e interfaces de rede na sub-rede da VPC. Para obter mais informações, consulte Funçãovinculada ao serviço para acesso à VPC (p. 123).

17. (Opcional) Se você quiser habilitar a criptografia de nó a nó (p. 137), escolha Node-to-nodeencryption (Criptografia de nó a nó).

18. (Opcional) Se você deseja proteger o Kibana com uma página de login, escolha Enable AmazonCognito for authentication (Habilitar o Amazon Cognito para autenticação).

• Escolha o grupo de usuários do Amazon Cognito e o grupo de identidades que você deseja usarpara a autenticação do Kibana. Para obter orientações sobre a criação desses recursos, consulteAutenticação para o Kibana (p. 103).

19. Para Set the domain access policy to, escolha uma política pré-configurada na lista suspensa Selecta template e edite-a para atender às necessidades de seu domínio. Como alternativa, você podeadicionar uma ou mais declarações de política do Identity and Access Management (IAM) na caixaAdd or edit the access policy. Para obter mais informações, consulte Controle de acesso (p. 31),the section called “Configuração de políticas de acesso” (p. 22) e the section called “Sobre políticasde acesso em domínios da VPC” (p. 118).

Note

Se você escolheu VPC access (Acesso à VPC) na etapa 16, o modelo de política baseadaem IP não está disponível na lista suspensa, e você não poderá configurar uma política combase em IP manualmente. Em vez disso, você pode usar Grupos de segurança para controlarque endereços IP podem acessar o domínio. Para saber mais, consulte the section called“Sobre políticas de acesso em domínios da VPC” (p. 118).

20. Escolha Next.21. Na página Review, revise sua configuração de domínio e escolha Confirm and create.22. Escolha OK.

Note

Os novos domínios demoram até dez minutos para inicializar. Depois que seu domínio éinicializado, você pode fazer upload de dados e alterações no domínio.

Criação de domínios do Amazon ES (AWS CLI)Em vez de criar um domínio do Amazon ES por meio do console, é possível criar um domínio com a AWSCLI. Use a sintaxe a seguir para criar um domínio do Amazon ES.

aws es create-elasticsearch-domain --domain-name <value>

[--elasticsearch-version <value>] [--elasticsearch-cluster-config <value>] [--ebs-options <value>] [--access-policies <value>] [--snapshot-options <value>] [--vpc-options <value>] [--advanced-options <value>] [--log-publishing-options <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>] [--encryption-at-rest-options <value>] [--cognito-options <value>] [--node-to-node-encryption-options <value>]

A tabela a seguir fornece mais informações sobre cada um dos parâmetros opcionais.

Versão da API 2015-01-0113

Page 22: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriação de domínios do Amazon ES (AWS CLI)

Parâmetro opcional Descrição

--elasticsearch-version Especifica a versão do Elasticsearch do domínio. Se não forespecificado, o valor padrão é 1,5. Para obter mais informações,consulte Como escolher uma versão do Elasticsearch (p. 2).

--elasticsearch-cluster-config

Especifica o tipo de instância e a contagem do domínio,independentemente de o reconhecimento de zona estar ativado,e se o domínio usa um nó principal dedicado. Os nós principaisdedicados do cluster aumentam a estabilidade e são essenciaispara um domínio com contagem de instância superior a 10. Paraobter mais informações, consulte Configuração de domínios doAmazon ES (p. 18).

--ebs-options Especifica se o domínio usa um volume do EBS paraarmazenamento. Se verdadeiro, esse parâmetro também deveespecificar o tipo de volume EBS, o tamanho e, se aplicável,o valor de IOPS. Para obter mais informações, consulteConfiguração de armazenamento EBS (p. 20).

--access-policies Especifica a política de acesso para o domínio. Para obtermais informações, consulte Configuração de políticas deacesso (p. 23).

--snapshot-options Especifica a hora em UTC durante a qual o serviço realiza umsnapshot diário automatizado de um índice no domínio. O valorpadrão é 0, ou meia-noite, o que significa que o snapshot érealizado entre meia-noite e 1h00. Para obter mais informações,consulte Configuração de snapshots (p. 24).

--advanced-options Especifica se referências a índices no corpo dos objetosde solicitação HTTP devem ou não ser permitidas. Paraobter mais informações, consulte Configuração de opçõesavançadas (p. 26).

--generate-cli-skeleton Exibe JSON para todos os parâmetros especificados. Salve asaída em um arquivo para que posteriormente possa ler o arquivocom o parâmetro --cli-input-json, em vez de digitar osparâmetros na linha de comando. Para obter mais informações,consulte Gerar parciais de CLI e parâmetros de entrada JSONde CLI no Guia do usuário da Interface da Linha de Comando daAWS.

--cli-input-json Especifica o nome de um arquivo JSON que contém um conjuntode parâmetros da CLI. Para obter mais informações, consulteGerar parciais de CLI e parâmetros de entrada JSON de CLI noGuia do usuário da Interface da Linha de Comando da AWS.

--log-publishing-options Especifica se o Amazon ES deve publicar logs do Elasticsearchno CloudWatch. Para obter mais informações, consulte the sectioncalled “Configuração de logs” (p. 26).

--vpc-options Especifica se deseja iniciar o domínio do Amazon ES em umaAmazon VPC (VPC). Para saber mais, consulte Suporte àVPC (p. 116).

--encryption-at-rest-options

Especifica se deseja ativar a criptografia de dados emrepouso (p. 135).

Versão da API 2015-01-0114

Page 23: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriação de domínios do Amazon ES (AWS CLI)

Parâmetro opcional Descrição

--cognito-options Especifica se deseja usar Autenticação para o Kibana (p. 103).

--node-to-node-encryption-options

Especifique true para ativar a criptografia de nó a nó (p. 137).

Exemplos

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

• Cria um domínio do Amazon ES denominado weblogs 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 endereço IP único: 192.0.2.0/32.

aws es create-elasticsearch-domain --domain-name weblogs --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 exemplo seguinte demonstra a configuração de domínio do Amazon ES a seguir:

• Cria um domínio do Amazon ES denominado weblogs 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) de 100 GiB como armazenamento para cada nó de

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

555555555555.• Habilita o reconhecimento de zona.

aws es create-elasticsearch-domain --domain-name weblogs --elasticsearch-version 5.5 --elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=6,ZoneAwarenessEnabled=true --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/logs/*" } ] }'

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

• Cria um domínio do Amazon ES denominado weblogs com o Elasticsearch versão 5.5.• Preenche o domínio com dez instâncias do tipo m4.xlarge.elasticsearch.• Preenche o domínio com três instâncias do tipo m4.large.elasticsearch para atender a nós principais

dedicados.• Usa um volume de EBS de IOPS provisionado de 100 GiB como armazenamento, configurado com

desempenho de referência 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• Configura snapshots diários automatizados dos índices para 3h00 UTC.

Versão da API 2015-01-0115

Page 24: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriação de domínios do Amazon ES (SDKs da AWS)

aws es create-elasticsearch-domain --domain-name weblogs --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" } ] }' --snapshot-options AutomatedSnapshotStartHour=3

Note

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

Criação de domínios do Amazon ES (SDKs da AWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as açõesdefinidas em Referência sobre a API de configuração do Amazon ES (p. 169), incluindoCreateElasticsearchDomain. Para obter o código de exemplo, consulte Uso dos AWSSDKs (p. 165). Para obter mais informações sobre instalação e uso de SDKs da AWS, consulte AWSSoftware Development Kits.

Configuração de domínios do Amazon ESPara atender às demandas de aumento de tráfego e dados, você pode atualizar a configuração do domíniodo Amazon ES com qualquer uma das seguintes alterações:

• Altere a contagem de instâncias.• Altere o tipo de instância.• Habilite ou desabilite os nós principais dedicados• Ative ou desative o reconhecimento de zona.• Defina as configurações de armazenamento• Altere o horário de início dos snapshots automatizados dos índices de domínio.• Alterar as sub-redes de VPC e security groups• Configure opções avançadas

Note

Para obter informações sobre como configurar um domínio para usar um volume do EBS paraarmazenamento, consulte Configuração de armazenamento EBS (p. 19).

Configuração de domínios do Amazon ES (console)Use o procedimento a seguir para atualizar a configuração do Amazon ES por meio do console.

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

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.

Versão da API 2015-01-0116

Page 25: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de domínios do Amazon ES (console)

3. No painel de navegação, em My domains, escolha o domínio que você deseja atualizar.4. Escolha Configure cluster.5. Na página Configure cluster, atualize a configuração do domínio.

Um cluster consiste em um conjunto de um ou mais nós de dados, em nós principais dedicadosopcionais e no armazenamento necessário para executar o Amazon ES e operar seu domínio.

a. Se você desejar alterar o tipo de instância para nós de dados, em Instance type, escolha um novotipo de instância.

Para ver uma lista de tipos de instância compatíveis com o Amazon ES, consulte Tipos deinstância compatíveis (p. 152).

b. Se você desejar alterar a contagem de instâncias, em Instance count, escolha um inteiro de 1a 20. Para solicitar um aumento de até 100 instâncias por domínio, crie um caso com o AWSSupport Center.

c. Se você desejar melhorar a estabilidade do cluster ou se o domínio tiver um número de instânciassuperior a 10, ative um nó principal dedicado para seu cluster. Para obter mais informações,consulte Sobre os nós principais dedicados (p. 128).

i. Marque a caixa de seleção Enable dedicated master.ii. Em Dedicated master instance type, escolha um tipo de instância para o nó principal

dedicado.

Você pode escolher um tipo de instância para o nó principal dedicado diferente do tipo deinstância que escolher para os nós de dados.

Para ver uma lista de tipos de instância compatíveis com o Amazon ES, consulte Tipos deinstância compatíveis (p. 152).

iii. Em Dedicated master instance count, escolha o número de instâncias para o nó principaldedicado.

É recomendável escolher um número ímpar de instâncias para evitar possíveis problemas doAmazon ES como o problema de cérebro dividido. O número padrão e recomendado é três.

d. Se desejar habilitar o reconhecimento de zona, marque a caixa de seleção Enable zoneawareness. Se habilitar o reconhecimento de zona, deverá ter um número par de instânciasem sua contagem. Isso permite a distribuição uniforme de estilhaços em duas zonas dedisponibilidade na mesma região.

e. Se desejar alterar a hora durante a qual o serviço obtém snapshots diários automatizados dosestilhaços do índice primário do domínio do Amazon ES, em Automated snapshot start hour,escolha um inteiro.

f. Se você não ativou o acesso da VPC quando criou o domínio, vá para a etapa 7. Se você ativouo acesso da VPC, será possível alterar a sub-rede na qual o VPC endpoint é colocado, além depoder alterar os security groups:

i. Para Subnets, escolha uma sub-rede. A sub-rede deve ter um número suficiente deendereços IP reservados para as interfaces de rede. Se você ativou o reconhecimentode zona, deverá escolher duas sub-redes. As sub-redes devem estar em zonas dedisponibilidade diferentes na mesma região. Para obter mais informações, consulte Suporte àVPC (p. 116).

ii. Em Security groups (Grupos de segurança), adicione os grupos de segurança que precisamacessar o domínio.

g. (Opcional) Escolha Advanced options. Para obter um resumo das opções, consulte the sectioncalled “Configuração de opções avançadas” (p. 25)

h. Selecione Enviar.Versão da API 2015-01-01

17

Page 26: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de domínios do Amazon ES (AWS CLI)

Configuração de domínios do Amazon ES (AWS CLI)Use a opção elasticsearch-cluster-config para configurar o cluster do Amazon ES usando aAWS CLI. A sintaxe a seguir é usada pelos comandos create-elasticsearch-domain e update-elasticsearch-domain-config.

Sintaxe

--elasticsearch-cluster-config InstanceType=<value>,InstanceCount=<value>,DedicatedMasterEnabled=<value>,DedicatedMasterType=<value>,DedicatedMasterCount=<value>,ZoneAwarenessEnabled=<value>

Note

Não inclua espaços entre os parâmetros para a mesma opção.

A tabela a seguir descreve os parâmetros mais detalhadamente.

Parâmetro Valores válidos Descrição

InstanceType Qualquer tipo deinstância compatível.Consulte Tipos deinstância compatíveis.

A configuração de hardware do computadorque hospeda a instância. O padrão ém4.large.elasticsearch.

InstanceCount Inteiro O número de instâncias no domínio doAmazon ES. O padrão é 1 e o limite máximopadrão é 20. Para solicitar um aumento deaté 100 instâncias por domínio, crie um casocom o AWS Support Center.

DedicatedMasterEnabled true ou false Especifica se deve ser usado um nó principaldedicado para o domínio do Amazon ES. Ovalor padrão é false.

DedicatedMasterType Qualquer tipo deinstância compatível

A configuração de hardware do computadorque hospeda o nó principal. O padrão ém4.large.elasticsearch.

DedicatedMasterCount Inteiro O número de instâncias usadas para o nóprincipal dedicado. O padrão é três.

ZoneAwarenessEnabled true ou false Especifica se o reconhecimento de zona parao domínio do Amazon ES deve ser habilitado.O valor padrão é false.

Exemplos

O exemplo a seguir cria um domínio do Amazon ES chamado mylogs com a versão 5.5 do Elasticsearche duas instâncias do tipo m4.large.elasticsearch e um reconhecimento da zona ativados.

aws es create-elasticsearch-domain --domain-name mylogs --elasticsearch-version 5.5 --elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=2,DedicatedMasterEnabled=false,ZoneAwarenessEnabled=true

No entanto, você provavelmente desejará reconfigurar o novo domínio do Amazon ES à medida que otráfego de rede crescer e a quantidade e o tamanho dos documentos aumentarem. Por exemplo, você

Versão da API 2015-01-0118

Page 27: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de domínios do Amazon ES (SDKs da AWS)

pode decidir usar um tipo de instância maior, usar mais instâncias e ativar um nó principal dedicado. Oexemplo a seguir atualiza a configuração do domínio com estas alterações:

aws es update-elasticsearch-domain-config --domain-name mylogs --elasticsearch-cluster-config InstanceType=m4.xlarge.elasticsearch,InstanceCount=3,DedicatedMasterEnabled=true,DedicatedMasterType=m4.large.elasticsearch,DedicatedMasterCount=3

Configuração de domínios do Amazon ES (SDKs daAWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as açõesdefinidas em Referência sobre a API de configuração do Amazon ES (p. 169), incluindoUpdateElasticsearchDomainConfig. Para obter o código de exemplo, consulte Uso dos AWSSDKs (p. 165). Para obter mais informações sobre instalação e uso de SDKs da AWS, consulte AWSSoftware Development Kits.

Configuração de armazenamento EBSUm volume do Amazon EBS é um dispositivo de armazenamento em bloco que pode ser conectado auma única instância. Os volumes do EBS permitem que você dimensione de forma independente osrecursos de armazenamento do domínio do Amazon ES com base nos recursos de computação. Osvolumes do EBS são mais úteis para domínios com conjuntos de dados grandes, mas que não precisamde amplos recursos de computação. Os volumes do EBS são muito maiores do que o armazenamentopadrão fornecido pela instância. O Amazon Elasticsearch Service é compatível com os seguintes tipos devolume EBS:

• Finalidade geral (SSD)• IOPS provisionado (SSD)• Magnético

Note

Ao alterar um tipo de volume EBS de IOPS provisionado para tipos de volume EBS nãoprovisionados, defina o valor de IOPS como 0.

Warning

Atualmente, se o nó de dados anexado a um volume do EBS falhar, o volume de EBS tambémfalhará.

Configuração de armazenamento EBS (console)Use o procedimento a seguir para habilitar o armazenamento EBS por meio do console.

Para habilitar o armazenamento EBS (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.3. No painel de navegação, em My domains, escolha o domínio que você deseja configurar.4. Escolha Configure cluster.5. Em Storage type, escolha EBS.

Versão da API 2015-01-0119

Page 28: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de armazenamento EBS (AWS CLI)

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

Se escolher Provisioned IOPS (SSD) como tipo de volume de EBS, em Provisioned IOPS, digite odesempenho de IOPS de referência que você deseja.

7. Em EBS volume size, digite o tamanho de volume do EBS que você deseja.

EBS volume size é por nó. Você pode calcular o tamanho total do cluster para o domínio do AmazonES por meio da fórmula a seguir: (número de nós de dados) * (tamanho do volume do EBS). Otamanho mínimo e máximo de um volume do EBS depende tanto do tipo de volume EBS especificadoquanto do tipo de instância à qual ele está anexado. Para saber mais, consulte Limites de tamanhosde volume do EBS (p. 232).

8. Selecione Enviar.

Note

Defina o valor IOPS do volume de IOPS provisionadas do EBS com um valor não superior a 30vezes o armazenamento máximo do volume. Por exemplo, se o volume tiver um tamanho máximode 100 GiB, não será possível atribuir um valor de IOPS superior a 3.000.

Para obter mais informações, consulte a Amazon EBS Volumes na documentação do Amazon EC2.

Configuração de armazenamento EBS (AWS CLI)Use a opção --ebs-options para configurar o armazenamento EBS por meio da AWS CLI. A sintaxea seguir é usada pelos comandos create-elasticsearch-domain e update-elasticsearch-domain-config.

Sintaxe

--ebs-options EBSEnabled=<value>,VolumeType=<value>,VolumeSize=<value>,IOPS=<value>

Parâmetro Valores válidos Descrição

EBSEnabled true ou false Especifica se deve ser usado um volume do EBS comoarmazenamento em vez de o armazenamento fornecidopela instância. O valor padrão é false.

VolumeType Qualquer um dosseguintes:

• gp2 (SSD definalidade geral)

• io1 (ProvisionedIOPS SSD)

• standard(Magnético)

Tipo de volume EBS para usar com o domínio do AmazonES.

VolumeSize Inteiro Especifica o tamanho do volume do EBS para cada nóde dados em GiB. O tamanho mínimo e máximo de umvolume do EBS depende tanto do tipo de volume EBSespecificado quanto do tipo de instância à qual ele estáanexado. Para ver uma tabela que mostra o tamanhodo EBS mínimo e máximo para cada tipo de instância,consulte Service Limits.

Versão da API 2015-01-0120

Page 29: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de armazenamento EBS (SDKs da AWS)

Parâmetro Valores válidos Descrição

IOPS Inteiro Especifica o desempenho de E/S de referência para ovolume do EBS. Esse parâmetro é usado apenas porvolumes de IOPS provisionado (SSD). O valor mínimo é1.000. O valor máximo é 16000.

Note

É recomendável não definir o valor de IOPS provisionado para um volume IOPS provisionado doEBS com um valor superior a 30 vezes o armazenamento máximo do volume. Por exemplo, se ovolume tiver um tamanho máximo de 100 GiB, você não deve atribuir um valor de IOPS superiora 3.000. Para obter mais informações, incluindo casos de uso para cada tipo de volume, consulteAmazon EBS Volume Types na documentação do Amazon EC2.

Exemplos

O exemplo a seguir cria um domínio chamado mylogs com Elasticsearch versão 5.5 com um volume EBSde uso geral de 10 GiB:

aws es create-elasticsearch-domain --domain-name=mylogs --elasticsearch-version 5.5 --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=10

No entanto, você pode precisar de um volume do EBS maior quando o tamanho de seus índices depesquisa aumentar. Por exemplo, você pode optar por um volume de IOPS provisionado de 100 GiB comum desempenho de E/S de 3.000 IOPS. O exemplo a seguir atualiza a configuração do domínio com estasalterações:

aws es update-elasticsearch-domain-config --domain-name=mylogs --ebs-options EBSEnabled=true,VolumeType=io1,VolumeSize=100,IOPS=3000

Configuração de armazenamento EBS (SDKs daAWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as ações definidas emReferência sobre a API de configuração do Amazon ES (p. 169), incluindo o parâmetro --ebs-optionspara UpdateElasticsearchDomainConfig. Para obter mais informações sobre instalação e uso deSDKs da AWS, consulte AWS Software Development Kits.

Modificar a configuração de acesso à VPCSe você configurou um domínio para residir em uma VPC, é possível modificar a configuração usando oconsole do Amazon ES. Para migrar um domínio público para um domínio na VPC, consulte the sectioncalled “Migração do acesso público ao acesso via VPC” (p. 123).

Configuração de acesso à VPC (console)Use o procedimento a seguir para configurar o acesso à VPC usando o console.

Para configurar o acesso da VPC (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.

Versão da API 2015-01-0121

Page 30: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfigurar a autenticação do Amazon Cognito para o Kibana

3. No painel de navegação, em My domains, escolha o domínio que você deseja configurar.4. Escolha Configure cluster.5. Na seção Network configuration, escolha uma sub-rede em Subnets. Se você ativou o reconhecimento

de zona, deverá escolher duas sub-redes. As sub-redes devem estar em zonas de disponibilidadediferentes na mesma região. Para obter mais informações, consulte Suporte à VPC (p. 116).

Note

Você deve reservar endereços IP suficientes para as interfaces de rede na sub-rede (ou sub-redes). Para obter mais informações, consulte the section called “Reserva de endereços IPem uma sub-rede da VPC” (p. 122).

6. Em Security groups (Grupos de segurança), adicione os grupos de segurança que precisam acessar odomínio.

7. Selecione Enviar.

Configurar a autenticação do Amazon Cognito parao Kibana

Consulte Autenticação para o Kibana (p. 103).

Configuração de políticas de acessoO Amazon Elasticsearch Service oferece várias opções para configurar o acesso a domínios do AmazonES. Para obter mais informações, consulte Controle de acesso (p. 31).

O console fornece políticas de acesso pré-configuradas que você pode personalizar de acordo com asnecessidades específicas de seu domínio. Você também pode importar as políticas de acesso de outrosdomínios do Amazon ES. Para obter informações sobre como essas políticas de acesso interagem com oacesso à VPC, consulte the section called “Sobre políticas de acesso em domínios da VPC” (p. 118).

Configuração de políticas de acesso (console)Use o procedimento a seguir para configurar políticas de acesso usando o console.

Para configurar políticas de acesso (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the 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 Modify access policy.5. Edite a política de acesso.

Como alternativa, escolha um dos modelos de política na lista suspensa Select a template e, emseguida, edite-o conforme necessário para seu domínio.

Política de acesso pré-configurada Descrição

Permitir ou negar acesso a uma oumais contas da AWS ou usuários doIAM

Permite ou nega o acesso a uma ou mais contas da AWSou usuários ou funções do IAM.

Versão da API 2015-01-0122

Page 31: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de políticas de acesso (AWS CLI)

Política de acesso pré-configurada Descrição

Permitir acesso ao domínio de um oumais IPs específicos

Essa política é usada para restringir o acesso anônimo aum endereço IP específico ou a um intervalo de endereçosIP.

Note

Se você ativou o acesso à VPC para seu domínio,essa política pré-configurada não está disponível.Em vez disso, você pode usar security groupspara controlar que endereços IP podem acessaro domínio. Para saber mais, consulte the sectioncalled “Sobre políticas de acesso em domínios daVPC” (p. 118).

Negar acesso ao domínio Essa política permite acesso somente por meio do consoledo Amazon ES ou do detentor da conta AWS que criou odomínio.

Copiar política de acesso de outrodomínio

Esse modelo oferece uma alternativa conveniente paraimportar uma política de acesso existente de outrodomínio.

Permitir acesso aberto ao domínio Essa política não é recomendada para domínios comendpoints públicos. Ela permite que qualquer pessoaexclua, modifique ou acesse índices no domínio. Elaé apenas uma conveniência destinada a testes. Nãocarregue dados confidenciais em um domínio que useessas configurações.

6. Selecione Enviar.

Configuração de políticas de acesso (AWS CLI)Use a opção --access-policies para configurar políticas de acesso usando o AWS CLI. A sintaxea seguir é usada pelos comandos create-elasticsearch-domain e update-elasticsearch-domain-config.

Sintaxe

--access-policies=<value>

Parâmetro Valoresválidos

Descrição

--access-policies

JSON Especifica a política de acesso para o domínio do Amazon ES.

Exemplo

O exemplo de política de acesso baseada em recursos a seguir restringe o acesso ao serviço a umúnico usuário, identificado pelo ID da conta da AWS do usuário, 555555555555, no elemento de políticaPrincipal. Esse usuário recebe acesso ao index1, mas ele não pode acessar outros índices nodomínio:

Versão da API 2015-01-0123

Page 32: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de políticas de acesso (SDKs da AWS)

aws es update-elasticsearch-domain-config --domain-name mylogs --access-policies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow","Principal": {"AWS": "arn:aws:iam::123456789012:root" },"Action":"es:*","Resource":"arn:aws:es:us-east-1:555555555555:domain/index1/*" } ] }'

Tip

Se você configurar políticas de acesso usando a AWS CLI, poderá usar uma das muitasferramentas online para reduzir a declaração de política do JSON.

Configuração de políticas de acesso (SDKs da AWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as ações definidasem Referência sobre a API de configuração do Amazon ES (p. 169), incluindo o parâmetro --access-policies para UpdateElasticsearchDomainConfig. Para obter mais informações sobre instalaçãoe uso de SDKs da AWS, consulte AWS Software Development Kits.

Configuração de snapshots automáticosO Amazon Elasticsearch Service oferece snapshots diários automatizados para estilhaços do índiceprimário e o número de estilhaços de réplica do domínio. Por padrão, o serviço faz snapshots automáticosà meia-noite, mas você deve escolher uma hora em que o serviço está sob carga mínima.

Para obter informações sobre como lidar com esses snapshots, consulte the section called “Restauraçãode snapshots” (p. 91).

Warning

O serviço encerra os snapshots de índice do Amazon ES quando a integridade do cluster évermelho. Todos os documentos que você adiciona em um cluster vermelho, até mesmo nosíndices com um status de integridade verde, podem ser perdidos caso ocorra uma falha nocluster em virtude dessa falta de backups. Para evitar perda de dados, antes de carregar dadosadicionais para qualquer índice no cluster, a integridade do cluster deve voltar a ser verde. Parasaber mais, consulte the section called “Status de cluster vermelho” (p. 144).

Configuração de snapshots (console)Use o procedimento a seguir para configurar snapshots automáticos diários de índice por meio do console.

Para configurar snapshots automáticos (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the 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 Configure cluster.5. Em Automated snapshot start hour, escolha a nova hora para o serviço realizar snapshots

automatizados.6. Selecione Enviar.

Configuração de snapshots (AWS CLI)Use a sintaxe a seguir para a opção --snapshot-options. A sintaxe para essa opção é a mesma paraos comandos create-elasticsearch-domain e update-elasticsearch-domain-config.

Versão da API 2015-01-0124

Page 33: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de snapshots (SDKs da AWS)

Sintaxe

--snapshot-options AutomatedSnapshotStartHour=<value>

Parâmetro Valores válidos Descrição

AutomatedSnapshotStartHour Número inteiroentre 0 e 23

Especifica a hora em UTC durante aqual o serviço realiza um snapshot diárioautomatizado dos índices no novo domínio.O valor padrão é 0, ou meia-noite, o quesignifica que o snapshot é realizado entremeia-noite e 1h00.

Exemplo

O exemplo a seguir configura snapshots automáticos para 1h00 UTC:

aws es update-elasticsearch-domain-config --domain-name mylogs --region us-east-2 --snapshot-options AutomatedSnapshotStartHour=1

Configuração de snapshots (SDKs da AWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as ações definidas emReferência sobre a API de configuração do Amazon ES (p. 169). Isso inclui o parâmetro --snapshots-options para UpdateElasticsearchDomainConfig. Para obter mais informações sobre instalação euso de SDKs da AWS, consulte AWS Software Development Kits.

Configuração de opções avançadasUse 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 com o valor falso impede que os usuários ignorem o controle de acessopara sub-recursos. Por padrão, esse valor é verdadeiro. Para obter mais informações, consulte thesection called “Opções avançadas e considerações sobre a API” (p. 42).

indices.fielddata.cache.size

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

Note

Muitos clientes consultam índices alternados diariamente. É recomendável começar a realizarum 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 muitograndes, 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 erroTooManyClauses. Para obter mais informações, consulte a documentação do Lucene.

Versão da API 2015-01-0125

Page 34: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de opções avançadas (console)

Configuração de opções avançadas (console)Para configurar opções avançadas (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the 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 Configure cluster.5. Escolha Advanced options (Opções avançadas).6. Especifique as opções que você deseja e escolha Submit (Enviar).

Configuração de opções avançadas (AWS CLI)Use a sintaxe a seguir para a opção --advanced-options. A sintaxe para essa opção é a mesma paraos comandos create-elasticsearch-domain e update-elasticsearch-domain-config.

Sintaxe

--advanced-options rest.action.multi.allow_explicit_index=<true|false>, indices.fielddata.cache.size=<percentage_heap>, indices.query.bool.max_clause_count=<int>

Parâmetro Valores válidos

rest.action.multi.allow_explicit_index=<true|false>

indices.fielddata.cache.size=<percentage_heap>

--advanced-options

indices.query.bool.max_clause_count=<int>

Exemplo

O exemplo a seguir desativa as referências explícitas a índices no corpo de solicitações HTTP. Eletambém limita o cache de dados de campos a 40% do total do heap do Java:

aws es update-elasticsearch-domain-config --domain-name mylogs --region us-east-1 --advanced-options rest.action.multi.allow_explicit_index=false, indices.fielddata.cache.size=40

Configuração de opções avançadas (SDKs da AWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as ações definidas emReferência sobre a API de configuração do Amazon ES (p. 169), incluindo o parâmetro --advanced-options para UpdateElasticsearchDomainConfig. Para obter mais informações sobre instalação euso de SDKs da AWS, consulte AWS Software Development Kits.

Configuração de logsO Amazon ES expõe três logs do Elasticsearch por meio dos logs de erros do Amazon CloudWatch Logs:,pesquisa logs lentos de pesquisa e indexa logs lentos. Esses logs são úteis para solucionar problemas de

Versão da API 2015-01-0126

Page 35: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorHabilitação da publicação de logs (console)

desempenho e de estabilidade, mas são desabilitados por padrão. Se habilitados, a definição de preçopadrão do CloudWatch é aplicada.

Note

Os logs de erros estão disponíveis apenas para as versões 5.1 e superior do Elasticsearch. Oslogs lentos estão disponíveis para todas as versões do Elasticsearch.

Para os logs, o Elasticsearch usa o Apache Log4j 2 e seus níveis de log internos (de menos severo paramais severo) de TRACE, DEBUG, INFO, WARN, ERROR e FATAL.

Se você ativar logs de erros, Amazon ES publica as linhas de log de WARN, ERROR e FATAL paraCloudWatch. Amazon ES também publica várias exceções do nível DEBUG, incluindo:

• org.elasticsearch.index.mapper.MapperParsingException

• org.elasticsearch.index.query.QueryShardException

• org.elasticsearch.action.search.SearchPhaseExecutionException

• org.elasticsearch.common.util.concurrent.EsRejectedExecutionException

• java.lang.IllegalArgumentException

Os logs de erros podem ajudar a solucionar problemas em muitas situações, incluindo:

• Problemas de compilação de script Painless• Consultas inválidas• Indexação de problemas• Falhas de snapshots

Habilitação da publicação de logs (console)O console do Amazon ES é a maneira mais simples de habilitar a publicação de logs no CloudWatch.

Para habilitar a publicação de logs no CloudWatch (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Análise, escolha Elasticsearch Service.3. No painel de navegação, em My domains, escolha o domínio que você deseja atualizar.4. Na guia Logs, escolha Habilitar para o log que você quer.5. Crie um grupo de log CloudWatch ou escolha um existente.

Note

Se você planejar habilitar vários logs, recomendamos publicar cada um em seu próprio grupode logs. Essa separação torna os logs mais fáceis de serem encontrados.

6. Escolha uma política de acesso que contenha as permissões apropriadas ou crie uma política usandoo JSON fornecido pelo console:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [

Versão da API 2015-01-0127

Page 36: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorHabilitação da publicação de logs (AWS CLI)

"logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "cw_log_group_arn" } ]}

Important

O CloudWatch Logs oferece suporte a 10 políticas baseadas em recurso por região. Se vocêplanejar ativar logs para vários domínios do Amazon ES, crie e reutilize uma política maisabrangente que inclui vários grupos de logs para evitar atingir esse limite.

7. Escolha Habilitar.

O status de seu domínio muda de Active para Processing. O status deve retornar para Ativo antes quea publicação de logs seja habilitada. Esse processo pode demorar até 30 minutos.

Se você tiver habilitado um dos logs lentos, consulte the section called “Configuração dos limites de logsdo Elasticsearch para logs lentos” (p. 29). Se tiver habilitado apenas logs de erros, você não precisaráexecutar nenhuma etapa de configuração adicional.

Habilitação da publicação de logs (AWS CLI)Antes de habilitar a publicação de logs, você precisa de um grupo de logs do CloudWatch. Se você aindanão tem, pode criar um usando o seguinte comando:

aws logs create-log-group --log-group-name my-log-group

Digite o comando seguinte para localizar o ARN do grupo de log e, em seguida, anote-o:

aws logs describe-log-groups --log-group-name my-log-group

Agora você pode dar permissões ao Amazon ES para gravar o grupo de log. Você deve fornecer o ARN dogrupo de log quase no final do comando:

aws logs put-resource-policy --policy-name my-policy --policy-document '{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com"}, "Action":[ "logs:PutLogEvents"," logs:PutLogEventsBatch","logs:CreateLogStream"],"Resource": "cw_log_group_arn"}]}'

Important

O CloudWatch Logs oferece suporte a 10 políticas baseadas em recurso por região. Se vocêpretende ativar logs lentos para vários domínios do Amazon ES, crie e reutilize uma política maisabrangente que inclui vários grupos de log para evitar alcançar esse limite.

Por fim, você pode usar a --log-publishing-options opção de habilitar a publicação. A sintaxepara essa opção é a mesma para os comandos create-elasticsearch-domain e update-elasticsearch-domain-config.

Parâmetro Valores válidos

--log-publishing-options

SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}

Versão da API 2015-01-0128

Page 37: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorHabilitação da publicação de logs (AWS SDKs)

Parâmetro Valores válidos

INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}

ES_APPLICATION_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}

Note

Se você planejar habilitar vários logs, recomendamos publicar cada um em seu próprio grupo delogs. Essa separação torna os logs mais fáceis de serem encontrados.

Exemplo

O exemplo a seguir habilita a publicação de busca e índice de logs lentos no domínio especificado:

aws es update-elasticsearch-domain-config --domain-name my-domain --log-publishing-options "SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group,Enabled=true},INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-other-log-group,Enabled=true}"

Para desabilitar a publicação para o CloudWatch, execute o mesmo comando com Enabled=false.

Se você tiver habilitado um dos logs lentos, consulte the section called “Configuração dos limites de logsdo Elasticsearch para logs lentos” (p. 29). Se tiver habilitado apenas logs de erros, você não precisaráexecutar nenhuma etapa de configuração adicional.

Habilitação da publicação de logs (AWS SDKs)Para poder habilitar a publicação de logs, você deve primeiro criar um grupo de logs do CloudWatch,obter seu ARN e fornecer ao Amazon ES permissões para gravar nele. As operações relevantes sãodocumentadas no Amazon CloudWatch Logs API Reference:

• CreateLogGroup

• DescribeLogGroup

• PutResourcePolicy

Acesse essas operações usando o AWS SDKs.

Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas asoperações definidas em Referência sobre a API de configuração do Amazon ES (p. 169),incluindo a opção --log-publishing-options para CreateElasticsearchDomain eUpdateElasticsearchDomainConfig.

Se você tiver habilitado um dos logs lentos, consulte the section called “Configuração dos limites de logsdo Elasticsearch para logs lentos” (p. 29). Se tiver habilitado apenas logs de erros, você não precisaráexecutar nenhuma etapa de configuração adicional.

Configuração dos limites de logs do Elasticsearch paralogs lentosO Elasticsearch desabilita os logs lentos por padrão. Depois de habilitar a publicação de logs lentos para oCloudWatch, você ainda deve especificar os limites de log para cada índice do Elasticsearch. Esses limites

Versão da API 2015-01-0129

Page 38: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVisualizar logs

definem exatamente o que deve ser logado e em que nível de log. As configurações variam um pouco deacordo com a versão do Elasticsearch.

Você especifica essas configurações por meio da API REST do Elasticsearch:

PUT elasticsearch_domain_endpoint/index/_settings{ "index.search.slowlog.threshold.query.warn": "5s", "index.search.slowlog.threshold.query.info": "2s"}

Para testar se os logs lentos estão sendo publicados com êxito, comece com valores bem baixos paraverificar se os logs aparecem no CloudWatch e, em seguida, aumente os limites para níveis mais úteis.

Se os logs não aparecerem, verifique o seguinte:

• O grupo de log do CloudWatch existe? Verifique o console do CloudWatch.• O Amazon ES tem permissões para gravar o grupo de log? Verifique o console do Amazon ES.• O domínio do Amazon ES está configurado para publicar para o grupo de log? Verifique o console

do Amazon ES use a opção describe-elasticsearch-domain-config da AWS CLI ou chameDescribeElasticsearchDomainConfig usando um dos SDKs.

• Os limites de log do Elasticsearch são baixos a ponto de suas solicitações excedê-los? Para revisar seuslimites para um índice, use o seguinte comando:

GET elasticsearch_domain_endpoint/index/_settings?pretty

Se você quer desabilitar logs lentos para um índice, redefina todos os limites que você mudou para osvalores padrão de -1.

Desabilitar a publicação para o CloudWatch usando o console do Amazon ES ou a AWS CLI não impedeque o Elasticsearch gere logs, apenas interrompe a publicação desses logs. Verifique as configurações deíndice se você não precisar mais de logs lentos.

Visualizar logsA visualização dos logs lentos e do aplicativo no CloudWatch é igual a qualquer outra visualização de logdo CloudWatch. Para obter mais informações, consulte Visualizar dados de log no Amazon CloudWatchLogs User Guide.

Algumas considerações sobre a visualização de logs:

• O Amazon ES publica apenas os primeiros 255.000 caracteres de cada linha no CloudWatch. Oconteúdo restante ficará truncado.

• No CloudWatch, os nomes dos streamings de log têm os sufixos -index-slow-logs, -search-slow-logs e -es-application-logs para ajudar a identificar o conteúdo.

Versão da API 2015-01-0130

Page 39: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorTipos de políticas

Controle de acesso do AmazonElasticsearch Service

O Amazon Elasticsearch Service oferece várias opções para controlar o acesso aos seus domínios. Estaseção aborda os diversos tipos de política, como eles interagem entre si e como você pode criar suaspróprias políticas personalizadas.

Important

O suporte a VPC apresenta algumas considerações adicionais sobre o controle de acesso doAmazon ES. Para obter mais informações, consulte the section called “Sobre políticas de acessoem domínios da VPC” (p. 118).

Tipos de políticasO Amazon ES oferece suporte a três tipos de políticas de acesso:

• the section called “Políticas baseadas em recursos” (p. 31)• the section called “Políticas baseadas em identidade” (p. 33)• the section called “Políticas baseadas em IP” (p. 34)

Políticas baseadas em recursosAs políticas baseadas em recursos são anexadas aos domínios. Essas políticas especificam que açõesuma entidade principal pode executar nos sub-recursos do domínio. Os sub-recursos incluem índices doElasticsearch e APIs.

O elemento Principal especifica as contas, usuários ou funções com acesso permitido. O elementoResource especifica que sub-recursos essas entidades principais podem acessar. A política baseada emrecurso a seguir concede acesso total ao test-user (es:*) para o test-domain:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": [ "es:*" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" } ]

Versão da API 2015-01-0131

Page 40: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPolíticas baseadas em recursos

}

Duas considerações importantes se aplicam a essa política:

• Esses privilégios se aplicam apenas a esse domínio. A não ser que você crie políticas adicionais, otest-user não poderá acessar outros domínios ou até mesmo visualizar uma lista deles no painel doAmazon ES.

• Os caracteres finais /* no elemento Resource são significativos. Apesar de ter acesso total, o test-user somente pode executar essas ações nos sub-recursos do domínio, e não na configuração dodomínio.

Por exemplo, o test-user pode fazer solicitações em relação a um índice (GET https://search-test-domain.us-west-1.es.amazonaws.com/test-index), mas não pode atualizar aconfiguração do domínio (POST https://es.us-west-1.amazonaws.com/2015-01-01/es/domain/test-domain/config). Observe a diferença entre os dois endpoints. O acesso à API deconfiguração (p. 169) requer uma política baseada em identidade (p. 33).

Para restringir ainda mais o test-user, você pode aplicar a seguinte política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": [ "es:ESHttpGet" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/test-index/_search" } ]}

Agora, o test-user só pode executar uma operação: pesquisar no test-index. Todos os outrosíndices no domínio estão inacessíveis e, sem permissões para usar as ações es:ESHttpPut oues:ESHttpPost, o test-user não pode adicionar ou modificar documentos.

Em seguida, você pode optar por configurar uma função para usuários avançados. Esta política permiteo acesso de power-user-role a todos os métodos HTTP, exceto para a exclusão de índices críticos eseus documentos:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/power-user-role" ] }, "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost",

Versão da API 2015-01-0132

Page 41: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPolíticas baseadas em identidade

"es:ESHttpPut" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" }, { "Effect": "Deny", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/power-user-role" ] }, "Action": [ "es:ESHttpDelete" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/critical-index*" } ]}

Para obter informações sobre todas as ações disponíveis, consulte the section called “Referência deelementos de política” (p. 36).

Políticas baseadas em identidadeAo contrário do que ocorre com as políticas baseadas em recursos, que são anexadas a domíniosno Amazon ES, as políticas baseadas em identidade são anexadas a usuários ou funções usandoo serviço do AWS Identity and Access Management (IAM). Assim como nas políticas baseadas emrecursos (p. 31), as políticas baseadas em identidade especificam quem pode acessar um serviço,quais ações podem ser executadas e, se aplicável, em quais recursos essas ações podem ser executadas.

As políticas baseadas em identidade tendem a ser mais genéricas, embora não exista essa exigência.Elas geralmente controlam as ações básicas no nível de serviço que um usuário pode realizar. Depoisde estabelecer essas políticas, você pode usar as políticas baseadas em recursos no Amazon ES paraoferecer permissões adicionais aos usuários.

Como as políticas baseadas em identidade são anexadas a usuários ou funções (entidades principais),o JSON não especifica um principal. A política a seguir concede acesso às ações que começam comDescribe e List e permite solicitações GET em todos os domínios. Esta combinação de ações forneceacesso somente leitura:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "es:Describe*", "es:List*", "es:ESHttpGet" ], "Effect": "Allow", "Resource": "*" } ]}

Um administrador pode ter acesso total ao Amazon ES:

{ "Version": "2012-10-17", "Statement": [

Versão da API 2015-01-0133

Page 42: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPolíticas baseadas em IP

{ "Action": [ "es:*" ], "Effect": "Allow", "Resource": "*" } ]}

Para obter mais informações sobre as diferenças entre as políticas baseadas em recursos e as baseadasem identidade, consulte Políticas do IAM no Guia do usuário do IAM.

Note

Os usuários com a política gerenciada pela AWS AmazonESReadOnlyAccess não podem ver ostatus de integridade do cluster no console. Para permitir que eles vejam o status de integridadedo cluster, adicione a ação "es:ESHttpGet" a uma política de acesso e anexe-a às respectivascontas ou funções.

Políticas baseadas em IPAs políticas baseadas em IP restringem o acesso a um domínio para um ou mais endereços IP ou blocosCIDR. Tecnicamente, as políticas baseadas em IP não são um tipo de política diferente. Na verdade, elassão apenas políticas baseadas em recursos que especificam um principal anônimo e incluem um elementoCondition especial.

O apelo principal das políticas baseadas em IP é que elas permitem solicitações não assinadas aum domínio do Amazon ES, o que permite a você usar clientes como o curl e o the section called“Kibana” (p. 98) ou acessar o domínio por meio de um servidor de proxy. Para saber mais, consulte thesection called “Usar um proxy para acessar o Amazon ES do Kibana” (p. 98).

Note

Se você ativou o acesso à VPC para seu domínio, não poderá configurar uma política baseadaem IP. Em vez disso, você pode usar security groups para controlar que endereços IP podemacessar o domínio. Para obter mais informações, consulte the section called “Sobre políticas deacesso em domínios da VPC” (p. 118).

A seguinte política de acesso baseada em IP concede todas as solicitações com origem no acesso12.345.678.901 para o test-domain:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "es:*" ], "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24" ] } },

Versão da API 2015-01-0134

Page 43: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriar e assinar as solicitações Amazon ES

"Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" } ]}

Criar e assinar as solicitações Amazon ESMesmo que você configure uma política de acesso baseada em recursos completamente aberta, todasas solicitações para a API de configuração do Amazon ES devem ser assinadas. Se suas políticasespecificam usuários ou funções do IAM, as solicitações de APIs do Elasticsearch devem ser assinadas. Ométodo de assinatura é diferente dependendo da API:

• Para fazer chamadas para a API de configuração do Amazon ES, recomendamos que você use umdos SDKs da AWS. Os SDKs simplificam muito o processo e podem economizar uma quantidadesignificativa de tempo em comparação com a criação e assinatura das suas próprias solicitações. Osendpoints da API de configuração usam o formato a seguir:

es.region.amazonaws.com/2015-01-01/

Por exemplo, a seguinte solicitação faz uma pequena alteração de configuração para o domínio movies,mas você precisa assiná-lo você mesmo (não recomendado):

POST https://es.us-east-1.amazonaws.com/2015-01-01/es/domain/movies/config{ "SnapshotOptions": { "AutomatedSnapshotStartHour": 3 }}

Se você usar um dos SDKs, como Boto 3, o SDK gerencia automaticamente a assinatura desolicitações:

import boto3

client = boto3.client('es')response = client.update_elasticsearch_domain_config( DomainName='movies', SnapshotOptions={ 'AutomatedSnapshotStartHour': 3 })

• Para fazer chamadas para as APIs do Elasticsearch, você precisará assinar suas próprias solicitações.Para obter o código de exemplo, consulte Solicitações de assinatura da HTTP (p. 61). As APIs doElasticsearch usam o formato a seguir:

domain.region.es.amazonaws.com

Por exemplo, a seguinte solicitação procura o índice movies para thor:

GET https://search-my-domain.us-east-1.es.amazonaws.com/movies/_search?q=thor

O Amazon ES oferece suporte à autenticação usando o Signature versão 4 da AWS. Para obter maisinformações, consulte Processo de assinatura do Signature versão 4.

Versão da API 2015-01-0135

Page 44: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorQuando há colisão de políticas

Note

O serviço ignora parâmetros passados em URLs para solicitações HTTP POST assinadas com oSignature versão 4.

Quando há colisão de políticasQuando as políticas discordam entre si ou não fazem nenhuma referência explícita a um usuário, surgemcomplexidades. Como funciona o IAM no Guia do usuário do IAM fornece um breve resumo da lógica deavaliação de políticas:

• Por padrão, todas as solicitações são negadas.• Uma permissão explícita substitui esse padrão.• Uma negação explícita substitui todas as permissões.

Por exemplo, se uma política baseada em recursos concede acesso a um domínio, mas uma políticabaseada em identidade nega o acesso, esse acesso é negado. Se uma política baseada em identidadeconcede acesso e uma política baseada em recursos não especifica se você deve ou não ter acesso,esse acesso é concedido. Consulte a tabela a seguir com o cruzamento de políticas para obter um resumocompleto dos resultados.

  Permitido na políticabaseada em recursos

Negado na políticabaseada em recursos

Nem permitido nemnegado na políticabaseada em recursos

Allowed in Identity-based Policy

Permitir Negar Permitir

Denied in Identity-basedPolicy

Negar Negar Negar

Neither Allowed norDenied in Identity-basedPolicy

Permitir Negar Negar

Referência de elementos de políticaAmazon ES oferece suporte para a maioria dos elementos de política em Referência de elementos depolítica do IAM, com exceção de NotPrincipal. A tabela a seguir mostra os elementos mais comuns.

Elemento da política deJSON

Resumo

Version Versão atual da linguagem de política é 2012-10-17. Todas as políticas deacesso devem especificar esse valor.

Effect Esse elemento especifica se a declaração permite ou nega o acesso às açõesespecificadas. Os valores válidos são Allow ou Deny.

Principal Esse elemento especifica a conta da AWS, ou usuário ou função do IAM, quetem ou não permissão para acessar um recurso e pode apresentar váriasformas:

Versão da API 2015-01-0136

Page 45: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorReferência de elementos de política

Elemento da política deJSON

Resumo

• Contas da AWS: "Principal":{"AWS": ["123456789012"]} ou"Principal":{"AWS": ["arn:aws:iam::123456789012:root"]}

• Usuários do IAM: "Principal":{"AWS":["arn:aws:iam::123456789012:user/test-user"]}

• Funções do IAM: "Principal":{"AWS":["arn:aws:iam::123456789012:role/test-role"]}

A especificação do curinga * habilita o acesso anônimo ao domínio, o quenão recomendamos, a menos que você adicione uma condição baseada emIP.

Versão da API 2015-01-0137

Page 46: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorReferência de elementos de política

Elemento da política deJSON

Resumo

Action O Amazon ES usa as seguintes ações para os métodos HTTP:

• es:ESHttpDelete

• es:ESHttpGet

• es:ESHttpHead

• es:ESHttpPost

• es:ESHttpPut

O Amazon ES usa as seguintes ações para a API de configuração (p. 169):

• es:AddTags

• es:CreateElasticsearchDomain

• es:DeleteElasticsearchDomain

• es:DeleteElasticsearchServiceRole

• es:DescribeElasticsearchDomain

• es:DescribeElasticsearchDomainConfig

• es:DescribeElasticsearchDomains

• es:DescribeElasticsearchInstanceTypeLimits

• es:ListDomainNames

• es:ListElasticsearchInstanceTypeDetails

• es:ListElasticsearchInstanceTypes

• es:ListElasticsearchVersions

• es:ListTags

• es:RemoveTags

• es:UpdateElasticsearchDomainConfig

Tip

Você pode usar caracteres curinga para especificar umsubconjunto de ações, como "Action":"es:*" ou"Action":"es:Describe*".

Determinadas ações es: dão suporte a permissões no nível do recurso.Por exemplo, você pode conceder a um usuário permissões para excluir umdeterminado domínio sem conceder a esse usuário permissões para excluirqualquer domínio. Outras ações se aplicam apenas ao serviço em si. Porexemplo, es:ListDomainNames não faz sentido no contexto de um únicodomínio e, portanto, requer um curinga.

Important

Políticas baseadas em recursos são diferentes das permissões nonível do recurso. As políticas baseadas em recursos (p. 31) sãopolíticas JSON completas anexadas aos domínios. As permissões nonível do recurso tornam possível a restrição de ações em domíniosespecíficos ou sub-recursos. Na prática, você pode pensar napermissão no nível do recurso como uma seção opcional de umrecurso ou uma política baseada em identidade.

Versão da API 2015-01-0138

Page 47: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorReferência de elementos de política

Elemento da política deJSON

Resumo

A seguinte política baseada em identidade (p. 33) lista todas as es: açõese as agrupa de acordo com sua aplicação, ou seja, se elas se aplicam aossub-recursos do domínio (test-domain/*), à configuração do domínio(test-domain) ou apenas ao serviço (*):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" }, { "Effect": "Allow", "Action": [ "es:CreateElasticsearchDomain", "es:DeleteElasticsearchDomain", "es:DescribeElasticsearchDomain", "es:DescribeElasticsearchDomainConfig", "es:DescribeElasticsearchDomains", "es:UpdateElasticsearchDomainConfig" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain" }, { "Effect": "Allow", "Action": [ "es:AddTags", "es:DeleteElasticsearchServiceRole", "es:DescribeElasticsearchInstanceTypeLimits", "es:ListDomainNames", "es:ListElasticsearchInstanceTypeDetails", "es:ListElasticsearchInstanceTypes", "es:ListElasticsearchVersions", "es:ListTags", "es:RemoveTags" ], "Resource": "*" } ]}

Note

Embora as permissões no nível de recurso paraes:CreateElasticsearchDomain possam parecer nãointuitivas — afinal de contas, por que conceder permissões aum usuário para criar um domínio que já existe? — o uso deum curinga permite aplicar um esquema de nomeação simples

Versão da API 2015-01-0139

Page 48: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorReferência de elementos de política

Elemento da política deJSON

Resumo

aos seus domínios, como "Resource": "arn:aws:es:us-west-1:987654321098:domain/my-team-name-*".

Naturalmente, nada impede que você inclua ações juntamente com elementosde recursos menos restritivos, como estes:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpGet", "es:DescribeElasticsearchDomain" ], "Resource": "*" } ]}

Para saber mais sobre o emparelhamento de ações e recursos, consulte oelemento Resource nesta tabela.

Condition O Amazon ES oferece suporte a maioria das condições descritas em Chavesde condição globais disponíveis no Guia do usuário do IAM. Uma exceçãonotável é a chave aws:SecureTransport, à qual o Amazon ES não oferecesuporte.

Ao configurar uma política baseada em IP (p. 34), você especifica osendereços IP ou bloco CIDR como uma condição, como esta:

"Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/32" ] }}

Versão da API 2015-01-0140

Page 49: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorReferência de elementos de política

Elemento da política deJSON

Resumo

Resource O Amazon ES usa elementos Resource de três maneiras básicas:

• Para ações que se aplicam ao Amazon ES em si, comoes:ListDomainNames, ou que permitem o acesso completo, use aseguinte sintaxe:

"Resource": "*"

• Para as ações que envolvem uma configuração de domínio, comoes:DescribeElasticsearchDomain, você pode usar a seguintesintaxe:

"Resource": "arn:aws:es:region:aws-account-id:domain/domain-name"

• Para as ações que se aplicam a um sub-recurso de domínio, comoes:ESHttpGet, você pode usar a seguinte sintaxe:

"Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/*"

Você não precisa usar um curinga. O Amazon ES permite que você definauma política de acesso diferente para cada índice ou API do Elasticsearch.Por exemplo, você pode limitar as permissões de um usuário para o índicetest-index:

"Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/test-index"

Em vez de acesso total ao test-index, você pode preferir limitar apolítica somente para a API de pesquisa.

"Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/test-index/_search"

Você pode até mesmo controlar o acesso a documentos individuais:

"Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/test-index/test-type/1"

Basicamente, se o Elasticsearch representa o sub-recurso como umendpoint, você pode controlar o acesso a ele.

Para obter detalhes sobre quais ações dão suporte a permissões no nível dorecurso, consulte o elemento Action nesta tabela.

Versão da API 2015-01-0141

Page 50: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorOpções avançadas e considerações sobre a API

Opções avançadas e considerações sobre a APIO Amazon ES tem várias opções avançadas, uma das quais tem implicações para o controle de acesso:rest.action.multi.allow_explicit_index. Como sua configuração padrão é verdadeiro, elapermite que os usuários ignorem as permissões de sub-recursos em determinadas circunstâncias.

Por exemplo, considere a seguinte política baseada em recurso:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": [ "es:ESHttp*" ], "Resource": [ "arn:aws:es:us-west-1:987654321098:domain/test-domain/test-index/*", "arn:aws:es:us-west-1:987654321098:domain/test-domain/_bulk" ] }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": [ "es:ESHttpGet" ], "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/restricted-index/*" } ]}

Essa política concede ao test-user acesso total ao test-index e à API em massa do Elasticsearch.Ela também permite solicitações GET ao restricted-index.

A seguinte solicitação de indexação, como você pode esperar, falha devido a um erro de permissão:

PUT https://search-test-domain.us-west-1.es.amazonaws.com/restricted-index/movie/1{ "title": "Your Name", "director": "Makoto Shinkai", "year": "2016"}

Ao contrário da API de índice, a API em massa permite criar, atualizar e excluir vários documentos emuma única chamada. Contudo, normalmente você especifica essas operações no corpo da solicitação, emvez de na URL da solicitação. Como o Amazon ES usa URLs para controlar o acesso a sub-recursos dodomínio, o test-user pode, na verdade, usar a API em massa para fazer alterações ao restricted-index. Embora o usuário não tenha permissões POST no índice, a seguinte solicitação é bem-sucedida:

POST https://search-test-domain.us-west-1.es.amazonaws.com/_bulk

Versão da API 2015-01-0142

Page 51: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorOpções avançadas e considerações sobre a API

{ "index" : { "_index": "restricted-index", "_type" : "movie", "_id" : "1" } }{ "title": "Your Name", "director": "Makoto Shinkai", "year": "2016" }

Nesta situação, a política de acesso não consegue cumprir o que pretendia. Para evitar que os usuáriosignorem esses tipos de restrições, você pode alterar o rest.action.multi.allow_explicit_indexpara o valor falso. Se esse valor for falso, todas as chamadas para as APIs em massa, mget e msearch,que especificam nomes de índice no corpo da solicitação irão parar de funcionar. Em outras palavras, aschamadas para _bulk não funcionam mais, mas as chamadas para o test-index/_bulk funcionam.Este segundo endpoint contém um nome de índice, portanto, você não precisa especificar um no corpo dasolicitação.

O Kibana (p. 98) depende muito do mget e do msearch e, portanto, provavelmente nãofuncionará corretamente após essa alteração. Para correção parcial, você pode deixar orest.action.multi.allow_explicit_index como verdadeiro e negar o acesso a determinadosusuários para uma ou mais dessas APIs.

Para obter informações sobre como alterar essa configuração, consulte the section called “Configuração deopções avançadas” (p. 25).

Da mesma forma, a seguinte política baseada em recursos contém dois problemas sutis:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test-user" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test-user" }, "Action": "es:*", "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/restricted-index/*" } ]}

• Apesar da negação explícita, o test-user ainda pode fazer chamadas, como GET https://search-test-domain.us-west-1.es.amazonaws.com/_all/_search e GET https://search-test-domain.us-west-1.es.amazonaws.com/*/_search para acessar os documentosno restricted-index.

• Como o elemento Resource faz referência ao restricted-index/*, o test-user não tempermissões para acessar diretamente os documentos do índice. O usuário, no entanto, tem permissõespara excluir todo o índice. Para evitar o acesso e a exclusão, a política deve especificar restricted-index*.

Em vez de misturar permissões amplas e negações focadas, a abordagem mais segura é seguir o princípiodo privilégio mínimo e conceder apenas as permissões necessárias para executar uma tarefa.

Versão da API 2015-01-0143

Page 52: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfiguração de políticas de acesso

Configuração de políticas de acesso• Para obter instruções sobre a criação ou modificação de políticas baseadas em recursos e

políticas baseadas em IP no Amazon ES, consulte the section called “Configuração de políticas deacesso” (p. 22).

• Para obter instruções sobre como criar ou modificar políticas baseadas em identidade no IAM, consulteComo criar políticas do IAM no Guia do usuário do IAM.

Exemplos adicionais de políticasEmbora este capítulo inclua muitas amostras de políticas, o controle de acesso da AWS é um temacomplexo que pode ser entendido melhor por meio de exemplos. Para obter mais informações, consulteExemplos de políticas no Guia do usuário do IAM.

Versão da API 2015-01-0144

Page 53: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorSobre alterações de configuração

Gerenciamento de domínios doAmazon Elasticsearch Service

Quando o tamanho e o número de documentos no domínio do Amazon Elasticsearch Service (AmazonES) crescerem e o tráfego de rede aumentar, você provavelmente precisará atualizar a configuração docluster Elasticsearch. Para saber o momento certo de reconfigurar seu domínio, você precisa monitoraras métricas de domínio. Você pode também precisar auditar chamadas de API relacionadas a dados paraseu domínio ou atribuir tags ao seu domínio. Esta seção descreve como executar essas e outras tarefasrelacionadas com gerenciamento de domínios.

Tópicos• Sobre alterações de configuração (p. 45)• Cobranças para alterações de configuração (p. 46)• Atualizações de software de serviço (p. 47)• Habilitação de reconhecimento de zona (p. 48)• Monitoramento de métricas e estatísticas de cluster com o Amazon CloudWatch (console) (p. 50)• Registro de chamadas de API de configuração do Amazon Elasticsearch Service com o AWS

CloudTrail (p. 50)• Atribuição de tag a domínios do Amazon Elasticsearch Service (p. 53)

Sobre alterações de configuraçãoO Amazon ES usa o processo de implantação azul/verde ao atualizar domínios. Azul/verde normalmentese refere à prática de operar dois ambientes de produção, um ativo e outro inativo, e alternar entre os doisao fazer alterações de software. No caso do Amazon ES, refere-se à prática de criar um novo ambientepara atualizações de domínio e rotear usuários para o novo ambiente assim que essas atualizaçõessão concluídas. Essa prática minimiza o tempo de inatividade e mantém o ambiente original caso aimplantação no novo ambiente seja malsucedida.

As seguintes operações causam implementações azuis/verdes:

• Alterar a contagem ou o tipo de instâncias• Habilitar ou desabilitar os nós principais dedicados• Alterar a contagem de nó principal dedicado• Habilitar ou desabilitar o reconhecimento de zona• Alterar o tipo de armazenamento, o tipo do volume ou o tamanho do volume• Escolher diferentes sub-redes da VPC• Adicionar ou remover os grupos de segurança da VPC• Habilitar ou desabilitar a autenticação do Amazon Cognito para o Kibana• Escolher outro grupo de usuários ou grupo de identidades do Amazon Cognito• Modificar configurações avançadas• Habilitar ou desabilitar a publicação de logs de erros ou logs lentos no CloudWatch

Versão da API 2015-01-0145

Page 54: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCobranças para alterações de configuração

• Atualizar para a nova versão do Elasticsearch

As seguintes operações não causam implementações azuis/verdes:

• Alterar política de acesso• Alterar horário do snapshot automatizado

Ao iniciar uma alteração de configuração, o estado do domínio mudará para Processing. Durantedeterminadas atualizações de software de serviço (p. 47), o estado permanecerá como Ativo. Emambos os casos, você pode examinar a integridade do cluster e as métricas do Amazon CloudWatch e verse o número de nós no cluster aumenta temporariamente — costuma dobrar — durante a atualização dodomínio. No exemplo a seguir, você pode ver o número de nós que dobram de 11 para 22 durante umaalteração de configuração e que retornam para 11 quando a atualização é concluída.

Esse aumento temporário pode sobrecarregar os nós principais dedicados (p. 128) do cluster, querepentinamente passam a ter muito mais nós para gerenciar. É importante manter a capacidade suficienteem nós principais dedicados para lidar com a sobrecarga associada a essas implantações azuis/verdes.

Important

Não há nenhuma cobrança adicional nas alterações de configuração e na manutenção do serviço.Você será cobrado apenas pelo número de nós que solicitar para seu cluster. Para obter detalhes,consulte the section called “Cobranças para alterações de configuração” (p. 46).

Para evitar a sobrecarga de nós principais dedicados, você pode monitorar o uso com as métricas doAmazon CloudWatch (p. 50). Para obter os valores máximos recomendados, consulte the section called“Alarmes do CloudWatch recomendados” (p. 131).

Cobranças para alterações de configuraçãoSe você alterar a configuração para um domínio, o Amazon ES criará um novo cluster como descrito emthe section called “Sobre alterações de configuração” (p. 45). Durante a migração do antigo para onovo, você é cobrado pelos seguintes encargos:

• Se você alterar o tipo de instância, será cobrado por ambos os clusters para a primeira hora. Após aprimeira hora, você será cobrado apenas pelo novo cluster.

Exemplo: Você altera a configuração de três instâncias m3.xlarge para quatro instâncias m4.large.Na primeira hora, você é cobrado por ambos os clusters (3 * m3.xlarge + 4 * m4.large). Após aprimeira hora, você será cobrado apenas pelo novo cluster (4 * m4.large).

• Se você não alterar o tipo de instância, será cobrado apenas pelo cluster maior para a primeira hora.Após a primeira hora, você será cobrado apenas pelo novo cluster.

Exemplo: Você altera a configuração de seis instâncias m3.xlarge para três instâncias m3.xlarge.Para a primeira hora, você será cobrado pelo cluster maior (6 * m3.xlarge). Após a primeira hora, vocêserá cobrado apenas pelo novo cluster (3 * m3.xlarge).

Versão da API 2015-01-0146

Page 55: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAtualizações de software de serviço

Atualizações de software de serviçoNote

Atualizações de software de serviço são diferentes das atualizações de versão do Elasticsearch.Para obter informações sobre como atualizar para uma versão mais recente do Elasticsearch,consulte Como atualizar o Elasticsearch (p. 93).

O Amazon ES regularmente libera atualizações de software de sistema que adicionam recursos oumelhoram seus domínios. O console é a maneira mais fácil de ver se uma atualização está disponível.Para um histórico de atualizações de software de serviço, consulte the section called “Notas derelease” (p. 256).

Anteriormente, implementamos essas atualizações em uma programação sem interrupção automática.Essa atualização significa que uma atualização de recurso a qual você estava observando pode terchegado em seu domínio mais tarde do que você esperava—ou em um momento inconveniente.

Agora, quando novos softwares de serviço ficam disponíveis, você pode solicitar uma atualização para seudomínio e se beneficiar de novos recursos mais rapidamente. Você também pode iniciar a atualização emum horário de baixo tráfego.

Algumas atualizações são necessárias, e outras são opcionais. Se você não tomar nenhuma ação nasatualizações necessárias, continuamos a atualizar o software do serviço automaticamente após umdeterminado período de tempo (normalmente duas semanas). Seu domínio pode ser inelegível para umserviço de atualização de software se ele estiver em qualquer um dos estados que são mostrados natabela a seguir.

Estado Descrição

Domínio noprocessamento

O domínio está no meio de uma mudança de configuração. Verifique aqualificação da atualização após a conclusão da operação.

Status de clustervermelho

Um ou mais índices no cluster são vermelhos. Para obter etapas sobrea solução de problemas, consulte the section called “Status de clustervermelho” (p. 144).

Alta taxa de erros O cluster do Elasticsearch está retornando um grande número de erros 5xxao tentar processar solicitações. Geralmente, esse problema é resultado demuitas solicitações de leitura ou gravação simultâneas. Considere reduzir otráfego para o cluster ou dimensionar seu domínio.

Cérebro dividido Cérebro dividido significa que o cluster do Elasticsearch tem mais de umnó principal e foi dividido em dois clusters que nunca se juntarão por contaprópria. Você pode evitar dividir o cérebro usando o número recomendado denós principais dedicados (p. 128). Para ajudar na recuperação do cérebrodividido, entre em contato com AWS Support.

Problema de integraçãocom Amazon Cognito

Seu domínio usa a autenticação para Kibana (p. 103), e Amazon ES nãopode encontrar um ou mais recursos do Amazon Cognito. Este problemanormalmente ocorre se o grupo de usuários do Amazon Cognito estiverausente. Para corrigir o problema, recrie os recursos ausentes e configure odomínio Amazon ES para usá-lo.

Outro problema deserviço do Amazon ES

Problemas com o próprio Amazon ES podem fazer com que seu domínioseja exibido como não qualificado para uma atualização. Se nenhuma dascondições anteriores se aplicar ao seu domínio e o problema persistir pormais de um dia, entre em contato com AWS Support.

Versão da API 2015-01-0147

Page 56: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorHabilitação de reconhecimento de zona

Para agendar uma atualização do software de serviço (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Análise, escolha Elasticsearch Service.3. No painel de navegação, em My domains, escolha o domínio que você deseja atualizar.4. Para Service software release (Versão de software de serviço), use o link de documentação para

comparar sua versão atual com a versão mais recente. Em seguida, selecione Update (Atualizar).

Para agendar uma atualização do software de serviço (CLI e SDK)

Você pode usar os seguintes comandos para ver se uma atualização está disponível, verificar aqualificação para atualizar e programar uma atualização:

• describe-elasticsearch-domain (DescribeElasticsearchDomain)• start-elasticsearch-service-software-update

(StartElasticsearchServiceSoftwareUpdate)

Para obter mais informações, consulte AWS CLI Command Reference e Referência sobre a API deconfiguração do Amazon ES (p. 169).

Tip

Depois de programar uma atualização, você pode ter um tempo limitado no qual você podecancelá-lo. Use o console ou o comando stop-elasticsearch-service-software-update(StopElasticsearchServiceSoftwareUpdate).

Habilitação de reconhecimento de zonaToda região da AWS é uma área geográfica distinta com vários locais isolados conhecidos como zonasde disponibilidade. Para evitar perda de dados e minimizar o tempo de inatividade em caso de falha nonó e no datacenter, você poderá usar o console do Amazon ES para alocar nós e estilhaços do clusterdo Elasticsearch em duas Zonas de disponibilidade na mesma região. Essa alocação é conhecida comozona de reconhecimento. O reconhecimento de zona exige um mesmo número de instâncias e aumentalevemente as latências de rede.

Se você habilitar o reconhecimento de zona, deverá ter pelo menos uma réplica para cada índice nocluster. Felizmente, a configuração padrão para qualquer índice é uma contagem de réplica de 1. OAmazon ES distribui estilhaços principais e de réplicas pelos nós em Zonas de disponibilidade diferentes, oque aumenta a disponibilidade de seu cluster.

Important

Se você especificar uma contagem de réplica de 0 para um índice, permitindo que oreconhecimento da zona não forneça qualquer disponibilidade adicional; sem réplicas, AmazonES não pode distribuir cópias de seus dados para outras zonas de disponibilidade.

Se você habilitar o reconhecimento da zona e usar os domínios de acesso da VPC, deverá especificar asZonas de disponibilidade para as sub-redes da VPC. Para obter mais informações sobre VPCs, consulteSuporte à VPC (p. 116).

O exemplo a seguir mostra um cluster de quatro nós com o reconhecimento de zona habilitado. O serviçodistribui os estilhaços para que nenhum estilhaço de réplica fique na mesma Zona de disponibilidade que oestilhaço principal correspondente.

Versão da API 2015-01-0148

Page 57: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorHabilitação de reconhecimento de zona

Se uma Zona de disponibilidade tiver uma interrupção do serviço, você terá 50% de chance de tempo deinatividade do cluster devido à maneira como é feita a escolha do nó principal (p. 128). Por exemplo, sevocê usar os três nós principais dedicados recomendados, o Amazon ES distribuirá dois nós principaisdedicados em uma Zona de disponibilidade e um nó principal dedicado para o outro. Se a Zona dedisponibilidade com dois nós principais dedicados passar por uma interrupção, seu cluster ficaráindisponível até que as demais Zona de disponibilidade possam substituir automaticamente os nósprincipais dedicados ausentes no momento, criar um quorum e selecionar um novo nó principal.

Além disso, se uma Zona de disponibilidade passar por uma interrupção, os nós de dados do clusterpoderão passar por um período de extrema carga enquanto o Amazon ES configura automaticamentenovos nós para substituir os ausentes. Repentinamente, metade dos nós têm que processar váriassolicitações para o cluster. Como eles processam essas solicitações, os nós restantes também estãolutando para replicar dados para novos nós à medida que elas ficam online. Um cluster com recursosadicionais podem reduzir essa preocupação.

Para habilitar o reconhecimento de zona (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.3. No painel de navegação, em My domains, escolha seu domínio de Amazon ES.4. Escolha Configure cluster.5. No painel Node configuration, escolha Enable zone awareness.6. Selecione Enviar.

Para obter mais informações, consulte Regiões e Zonas de disponibilidade na documentação do EC2.

Versão da API 2015-01-0149

Page 58: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorMonitoramento de métricas e estatísticas decluster com o Amazon CloudWatch (console)

Monitoramento de métricas e estatísticas de clustercom o Amazon CloudWatch (console)

Os domínios do Amazon ES enviam métricas de desempenho para o Amazon CloudWatch a cadaminuto. Se você usar volumes magnéticos do EBS ou de uso geral, as métricas do volume do EBS serãoatualizadas somente a cada cinco minutos. Para visualizar essas métricas, use as guias Cluster health(Integridade do cluster) e a Instance health (Integridade da instância) no console do Amazon ElasticsearchService. As métricas são fornecidas sem custo adicional.

Se você fizer alterações de configuração para seu domínio, a lista de instâncias individuais nas guiasCluster health (Integridade do cluster) e Instance health (Integridade da instância) geralmente duplicarãode tamanho por um breve período antes de retornar para o número correto. Para obter uma explicaçãosobre esse comportamento, consulte the section called “Sobre alterações de configuração” (p. 45).

As métricas de Amazon ES são classificadas nas categorias:

• the section called “Métricas de cluster” (p. 50)• the section called “Métricas de nó principal dedicado” (p. 50)• the section called “Métricas de volume do EBS” (p. 50)• the section called “Métricas de instância” (p. 50)

Note

O serviço mantém as métricas arquivadas por duas semanas e depois as descarta.

Métricas de clusterMétricas de nó principal dedicadoMétricas de volume do EBSMétricas de instância

Registro de chamadas de API de configuraçãodo Amazon Elasticsearch Service com o AWSCloudTrail

O Amazon Elasticsearch Service se integra com o AWS CloudTrail, um serviço que fornece um registrodas ações executadas por um usuário, uma função ou um serviço da AWS no Amazon ES. O CloudTrailcaptura todas as chamadas de API de configuração para o Amazon ES como eventos.

Note

O CloudTrail só captura chamadas para a API de configuração (p. 169), comoCreateElasticsearchDomain e GetUpgradeStatus, não as Elasticsearch APIs (p. 153)como _search e _bulk.

Versão da API 2015-01-0150

Page 59: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorInformações sobre o Amazon

Elasticsearch Service no CloudTrail

As chamadas capturadas incluem as chamadas do console do Amazon ES, da CLI ou de SDKs. Se vocêcriar uma trilha, poderá habilitar a entrega contínua de eventos do CloudTrail a um bucket do AmazonS3, incluindo eventos para o Amazon ES. Se não configurar uma trilha, você ainda poderá visualizar oseventos mais recentes no console do CloudTrail em Event history. Com as informações coletadas peloCloudTrail, você pode determinar a solicitação feita para o Amazon ES, o endereço IP do qual a solicitaçãofoi feita, quem fez a solicitação, quando ela foi feita e detalhes adicionais.

Para saber mais sobre CloudTrail, consulte o AWS CloudTrail User Guide.

Informações sobre o Amazon Elasticsearch Service noCloudTrailO CloudTrail está habilitado na sua conta da AWS ao criá-la. Quando ocorre uma atividade no AmazonES, ela é registrada em um evento do CloudTrail junto com outros eventos de serviços da AWS em Eventhistory (Histórico de eventos). Você pode visualizar, pesquisar e fazer download de eventos recentes emsua conta da AWS. Para obter mais informações, consulte Visualizar eventos com o histórico de eventosdo CloudTrail.

Para obter um registro contínuo de eventos em sua conta da AWS, incluindo eventos para o Amazon ES,crie uma trilha. Uma trilha permite CloudTrail para fornecer arquivos de log a um bucket do Amazon S3.Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as regiões da AWS. A trilharegistra eventos de todas as regiões na partição da AWS e fornece os arquivos de log para o bucket doAmazon S3 que você especificar. Além disso, é possível configurar outros serviços da AWS para analisarmais profundamente e agir sobre os dados de evento coletados nos logs do CloudTrail. Para obter maisinformações, consulte:

• Visão geral da criação de uma trilha• CloudTrail Serviços compatíveis e integrações do• Configuração de notificações do Amazon SNS para o CloudTrail• Recebimento de arquivos de log do CloudTrail de várias regiões e Recebimento de arquivos de log do

CloudTrail de várias contas

Todas as ações de API de configuração do Amazon ES são registradas em log pelo CloudTrail e estãodocumentadas na Referência sobre a API de configuração do Amazon ES (p. 169).

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações deidentidade ajudam a determinar:

• Se a solicitação foi feita com credenciais de usuário da raiz ou do AWS Identity and Access Management(IAM).

• Se a solicitação foi feita com credenciais de segurança temporárias de uma função ou de um usuáriofederado.

• Se a solicitação foi feita por outro serviço da AWS.

Para obter mais informações, consulte Elemento userIdentity do CloudTrail.

Noções básicas das entradas dos arquivos de log doAmazon Elasticsearch ServiceUma trilha é uma configuração que permite a entrega de eventos como arquivos de log em um bucketdo Amazon S3 que você especificar. Os arquivos de log do CloudTrail contêm uma ou mais entradasde log. Um evento representa uma única solicitação de qualquer origem e inclui informações sobre aação solicitada, a data e hora da ação, parâmetros de solicitação, e assim por diante. arquivos de log do

Versão da API 2015-01-0151

Page 60: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNoções básicas das entradas dos arquivos

de log do Amazon Elasticsearch Service

CloudTrail não são um rastreamento de pilha ordenada das chamadas da API pública. Assim, elas não sãoexibidas em nenhuma ordem específica.

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a açãoCreateElasticsearchDomain:

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::123456789012:user/test-user", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "test-user", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-21T21:59:11Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2018-08-21T22:00:05Z", "eventSource": "es.amazonaws.com", "eventName": "CreateElasticsearchDomain", "awsRegion": "us-west-1", "sourceIPAddress": "123.123.123.123", "userAgent": "signin.amazonaws.com", "requestParameters": { "elasticsearchVersion": "6.3", "elasticsearchClusterConfig": { "instanceType": "m4.large.elasticsearch", "instanceCount": 1 }, "snapshotOptions": { "automatedSnapshotStartHour": 0 }, "domainName": "test-domain", "encryptionAtRestOptions": {}, "eBSOptions": { "eBSEnabled": true, "volumeSize": 10, "volumeType": "gp2" }, "accessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"123456789012\"]},\"Action\":[\"es:*\"],\"Resource\":\"arn:aws:es:us-west-1:123456789012:domain/test-domain/*\"}]}", "advancedOptions": { "rest.action.multi.allow_explicit_index": "true" } }, "responseElements": { "domainStatus": { "created": true, "elasticsearchClusterConfig": { "zoneAwarenessEnabled": false, "instanceType": "m4.large.elasticsearch", "dedicatedMasterEnabled": false, "instanceCount": 1 }, "cognitoOptions": { "enabled": false }, "encryptionAtRestOptions": {

Versão da API 2015-01-0152

Page 61: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAtribuição de tag a domínios doAmazon Elasticsearch Service

"enabled": false }, "advancedOptions": { "rest.action.multi.allow_explicit_index": "true" }, "upgradeProcessing": false, "snapshotOptions": { "automatedSnapshotStartHour": 0 }, "eBSOptions": { "eBSEnabled": true, "volumeSize": 10, "volumeType": "gp2" }, "elasticsearchVersion": "6.3", "processing": true, "aRN": "arn:aws:es:us-west-1:123456789012:domain/test-domain", "domainId": "123456789012/test-domain", "deleted": false, "domainName": "test-domain", "accessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-west-1:123456789012:domain/test-domain/*\"}]}" } }, "requestID": "12345678-1234-1234-1234-987654321098", "eventID": "87654321-4321-4321-4321-987654321098", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"}

Atribuição de tag a domínios do AmazonElasticsearch Service

Você pode usar tags do Amazon ES para adicionar metadados aos domínios do Amazon ES. A AWS nãoaplica nenhum significado semântico às suas tags. Tags são interpretadas estritamente como sequênciasde caracteres. Todas as tags têm os elementos a seguir.

Elemento datag

Descrição

Chave de tag A chave de tags é o nome obrigatório da tag. As chaves de tag devem ser exclusivasao domínio do Amazon ES ao qual elas são anexadas. Para obter uma lista derestrições básicas a chaves e valores de tag, consulte Restrições a tags definidas pelousuário.

Valor de tag O valor da tag é um valor de string opcional da tag. Os valores de tag podem ser nulose não precisam ser exclusivos em um conjunto de tags. Por exemplo, você pode terum par de chave-valor em um conjunto de tags definido como projeto/Trinity e centro-custos/Trinity. Para obter uma lista de restrições básicas a chaves e valores de tag,consulte Restrições a tags definidas pelo usuário.

Cada domínio do Amazon ES tem um conjunto que contém todas as tags atribuídas a ele. A AWS nãodefine automaticamente nenhuma tag em domínios do Amazon ES. Um conjunto de tags pode conter até50 tags ou estar vazio. Se você adicionar uma tag a um recurso do Amazon ES que tenha a mesma chaveque uma tag existente no recurso, o novo valor substituirá o antigo.

Versão da API 2015-01-0153

Page 62: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUso de tags (console)

Você pode usar essas tags para monitorar custos agrupando despesas de recursos marcados com tagssemelhantes. Uma tag do domínio do Amazon ES é um par de nome/valor que você define e associa aum domínio do Amazon ES. O nome é referido como chave. É possível usar tags para atribuir informaçõesarbitrárias a um domínio do Amazon ES. Uma chave de tag pode ser usada, por exemplo, para definir umacategoria, e o valor da tag pode ser um item nessa categoria. Por exemplo, você pode definir uma chavede tag como "projeto" e um valor de tag como "Salix", indicando que o domínio do Amazon ES é atribuídoao projeto Salix. As tags também podem ser usadas para designar domínios do Amazon ES em uso paratestes ou produção por meio de uma chave como ambiente=teste ou ambiente=produção. Recomendamosque você use um conjunto consistente de chaves de tag para facilitar o monitoramento de metadadosassociados aos domínios do Amazon ES.

Também é possível usar tags para organizar sua conta AWS para refletir sua própria estrutura de custo.Para isso, inscreva-se para obter sua conta da AWS com os valores de chave de tag incluídos. Organizeentão suas informações de faturamento de acordo com recursos com os mesmos valores de chave detag para ver o custo de recursos combinados. Por exemplo, você pode atribuir tags a vários domínios doAmazon ES com pares de chave/valor e em seguida organizar suas informações de faturamento para vero custo total para cada domínio em vários serviços. Para obter mais informações, consulte Como usar tagsde alocação de custos na documentação do AWS Billing and Cost Management.

Note

As tags são armazenados em cache para finalidade de autorização. Por isso, as adições eatualizações de tag em domínios do Amazon ES podem demorar alguns minutos para serdisponibilizadas.

Uso de tags (console)Use o procedimento a seguir para criar uma tag de recurso.

Para criar uma tag (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.3. No painel de navegação, escolha o domínio do Amazon ES.4. No painel do domínio, escolha Manage tags.5. Na coluna Key (Chave), digite a chave da tag.6. (Opcional) Na coluna Value (Valor), digite o valor da tag.7. Selecione Enviar.

Para excluir uma tag (console)

Use o procedimento a seguir para excluir uma tag de recurso.

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.3. No painel de navegação, escolha o domínio do Amazon ES.4. No painel do domínio, escolha Manage tags.5. Ao lado da tag que você deseja excluir, escolha Remove.6. Selecione Enviar.

Para obter mais informações sobre como usar o console para trabalhar com tags, consulte Working withTag Editor no AWS Management Console Getting Started Guide.

Versão da API 2015-01-0154

Page 63: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUso de tags (AWS CLI)

Uso de tags (AWS CLI)Você pode criar tags de recurso na AWS CLI com o comando --add-tags.

Sintaxe

add-tags --arn=<domain_arn> --tag-list Key=<key>,Value=<value>

Parâmetro Descrição

--arn Nome de recurso da Amazon para o domínio do Amazon ES ao qual a tagestá anexada.

--tag-list Conjunto de pares de chave/valor separados por espaço no seguinteformato: Key=<key>,Value=<value>

Exemplo

O exemplo a seguir cria duas tags para o domínio logs:

aws es add-tags --arn arn:aws:es:us-east-1:379931976431:domain/logs --tag-list Key=service,Value=Elasticsearch Key=instances,Value=m3.2xlarge

Você pode remover as tags de um domínio do Amazon ES usando o comando remove-tags.

Sintaxe

remove-tags --arn=<domain_arn> --tag-keys Key=<key>,Value=<value>

Parâmetro Descrição

--arn Nome de recurso da Amazon (ARN) para o domínio do Amazon ES ao quala tag está anexada.

--tag-keys Conjunto de pares de chave/valor separados por espaço que você desejaremover domínio do Amazon ES.

Exemplo

O exemplo a seguir remove duas tags do domínio logs que foram criadas no exemplo anterior:

aws es remove-tags --arn arn:aws:es:us-east-1:379931976431:domain/logs --tag-keys service instances

Você pode visualizar as tags para um domínio do Amazon ES com o comando list-tags:

Sintaxe

list-tags --arn=<domain_arn>

Parâmetro Descrição

--arn Nome de recurso da Amazon (ARN) para o domínio do Amazon ES ao qualas tags estão anexadas.

Versão da API 2015-01-0155

Page 64: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUso de tags (SDKs da AWS)

Exemplo

O exemplo a seguir lista todas as tags de recurso para o domínio logs:

aws es list-tags --arn arn:aws:es:us-east-1:379931976431:domain/logs

Uso de tags (SDKs da AWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas as ações definidasem Referência sobre a API de configuração do Amazon ES (p. 169), incluindo as operações AddTags,ListTags e RemoveTags. Para obter mais informações sobre instalação e uso de SDKs da AWS,consulte AWS Software Development Kits.

Versão da API 2015-01-0156

Page 65: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNoções básicas sobre indexação

Introdução à indexação de dados noAmazon Elasticsearch Service

Como o Elasticsearch usa uma API REST, existem vários métodos para indexar documentos. Você podeusar os clientes padrão, como curl, ou qualquer linguagem de programação que possa enviar solicitaçõesHTTP. Para simplificar ainda mais o processo de interação, o Elasticsearch tem clientes para váriaslinguagens de programação. Os usuários avançados podem ir diretamente para Solicitações de assinaturada HTTP (p. 61).

Para situações em que os novos dados chegam de forma incremental (por exemplo, pedidos de clientesde uma pequena empresa), você pode usar a API _index para indexar documentos à medida queeles chegarem. Para situações em que o fluxo de dados é menos frequente (por exemplo, atualizaçõessemanais de um site de marketing), talvez seja preferível gerar um arquivo e enviá-lo à API _bulk.Com relação a um grande número de documentos, é possível obter maior desempenho agrupando assolicitações e usando a API _bulk. Entretanto, se seus documentos forem muito grandes, talvez sejanecessário indexá-los individualmente usando a API _index.

Para obter informações sobre integração de dados em outros serviços da AWS, consulte Carregamento dedados de streaming no Amazon ES (p. 69).

Noções básicas sobre indexaçãoPara pesquisar dados, você precisa primeiro indexá-los. A indexação é o método pelo qual os mecanismosde pesquisa organizam os dados para oferecer rápida recuperação. A estrutura resultante é chamada,convenientemente, de índice.

No Elasticsearch, a unidade básica de dados é um documento JSON. Dentro de um índice, o Elasticsearchorganiza documentos em tipos (categorias de dados arbitrárias que você define) e identifica-os usando umID exclusivo.

Uma solicitação à API _index se parece com o seguinte:

PUT elasticsearch_domain/index/type/id{ "A JSON": "document" }

Uma solicitação à API _bulk é um pouco diferente, porque você especifica o índice, o tipo e o ID nosdados em massa:

POST elasticsearch_domain/_bulk{ "index": { "_index" : "index", "_type" : "type", "_id" : "id" } }{ "A JSON": "document" }

Os dados em massa devem estar de acordo com um formato específico, o que requer um caractere denova linha (\n) no final de cada linha, incluindo a última linha. Este é o formato básico:

action_and_metadata\noptional_document\naction_and_metadata\noptional_document\n

Versão da API 2015-01-0157

Page 66: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNoções básicas sobre indexação

...

Para ver um pequeno arquivo de exemplo, consulte the section called “Etapa 2: upload de dados paraindexação” (p. 7).

O Elasticsearch oferece criação automática de índice quando se adiciona um documento a um índice quejá existe. Ele oferece também geração automática de ID quando não se especifica um ID na solicitação.Este exemplo simples cria automaticamente o índice movies, estabelece o tipo de documento movie,indexa o documento e atribui um ID exclusivo:

POST elasticsearch_domain/movies/movie{"title": "Spirited Away"}

Important

Para usar a geração automática de ID, você deve usar o método POST, em vez de PUT.

Para verificar se o documento existe, você pode realizar a seguinte pesquisa:

GET elasticsearch_domain/movies/_search?pretty

A resposta deve conter o seguinte:

"hits" : { "total" : 1,  "max_score" : 1.0,  "hits" : [  {    "_index" : "movies",      "_type" : "movie",      "_id" : "AV4WaTnYxBoJaZkSFeX9",      "_score" : 1.0,      "_source" : {        "title" : "Spirited Away"      }    }  ]}

A geração automática de ID tem uma desvantagem: como o código de indexação não especificou um IDde documento, você não pode atualizar o documento com facilidade depois. Para especificar um ID de 7,use a seguinte solicitação:

PUT elasticsearch_domain/movies/movie/7{"title": "Spirited Away"}

Os índices criados no Elasticsearch versão 6.0 e posterior podem conter somente um tipo de documento.Para melhor compatibilidade com versões futuras do Elasticsearch, use um tipo único, _doc, para todos osíndices:

PUT elasticsearch_domain/more-movies/_doc/1{"title": "Back to the Future"}

As configurações padrão de índices incluem cinco estilhaços principais e uma réplica. Se você desejaespecificar configurações não padrão, crie o índice antes de adicionar documentos:

PUT elasticsearch_domain/more-movies

Versão da API 2015-01-0158

Page 67: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNomeação de restrições para índices

{"settings": {"number_of_shards": 6, "number_of_replicas": 2}}

Note

Para obter o código de exemplo, consulte Solicitações de assinatura da HTTP (p. 61).

Nomeação de restrições para índicesOs índices do Elasticsearch têm as seguintes restrições de denominação:

• Todas as letras devem estar em minúscula.• Os nomes de índice não podem começar com _ ou -.• Os nomes de índice não podem conter espaços, vírgulas, ", *, +, /, \, |, ?, #, > ou <.

Não inclua informações confidenciais nos nomes de índice, tipo ou ID do documento. O Elasticsearch usaesses nomes em seus identificadores de recursos uniformes (URIs). Servidores e aplicativos geralmenteregistram solicitações de HTTP, o que poderá levar à exposição desnecessária de dados se os URIscontiverem informações confidenciais.

2018-10-03T23:39:43 198.51.100.14 200 "GET https://elasticsearch_domain/dr-jane-doe/flu-patients-2018/202-555-0100/ HTTP/1.1"

Mesmo se não tivesse permissões (p. 31) para visualizar o documento JSON associado, você poderiainferir por essa linha de registro falsa que um dos pacientes do Dr. Doe com um número de telefone (202)555-0100 ficou gripado em 2018.

Redução do tamanho de respostaAs respostas das APIs _index e _bulk contêm um pouco de informações. Essas informações podem serúteis para solução de problemas de solicitações ou para implementar a lógica de tentativas repetidas, maspode usar consideravelmente a banda larga. Neste exemplo, indexar um documento de 32 bytes resultaem uma resposta de 339 bytes (incluindo cabeçalhos):

PUT elasticsearch_domain/more-movies/_doc/1{"title": "Back to the Future"}

Resposta

{ "_index": "more-movies", "_type": "_doc", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 3, "_primary_term": 1}

Versão da API 2015-01-0159

Page 68: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRedução do tamanho de resposta

Esse tamanho de resposta pode parecer pequeno, mas se você indexar 1.000.000 documentos por dia—aproximadamente 11,5 documentos por segundo—339 bytes por resposta funcionam para 10,17 GB detráfego de download por mês.

Se os custos de transferência de dados forem uma preocupação, use o parâmetro filter_path parareduzir o tamanho da resposta Elasticsearch, mas tenha cuidado para não filtrar campos que você precisapara identificar ou realizar novas tentativas de solicitações com falha. Esses campos variam de acordocom o cliente. O parâmetro filter_path funciona para todas as APIs REST Elasticsearch, mas éespecialmente útil com APIs que você chama com frequência, como as APIs _bulk e _index:

PUT elasticsearch_domain/more-movies/_doc/1?filter_path=result,_shards.total{"title": "Back to the Future"}

Resposta

{ "result": "updated", "_shards": { "total": 2 }}

Em vez de incluir campos, você pode excluir campos com um prefixo -. filter_path também oferecesuporte a curingas:

POST elasticsearch_domain/_bulk?filter_path=-took,-items.index._*{ "index": { "_index": "more-movies", "_type": "_doc", "_id": "1" } }{"title": "Back to the Future"}{ "index": { "_index": "more-movies", "_type": "_doc", "_id": "2" } }{"title": "Spirited Away"}

Resposta

{ "errors": false, "items": [ { "index": { "result": "updated", "status": 200 } }, { "index": { "result": "updated", "status": 200 } } ]}

Versão da API 2015-01-0160

Page 69: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorJava

Assinar solicitações de HTTP para oAmazon Elasticsearch Service

Este capítulo inclui exemplos de como enviar solicitações de HTTP assinadas para o AmazonElasticsearch Service usando clientes do Elasticsearch e outras bibliotecas comuns. Esses exemplos decódigo servem para interagir com as APIs do Elasticsearch, como _index, _bulk e _snapshot.

Important

Para obter exemplos de como interagir com a API de configuração, incluindo operações comocriar, atualizar e excluir domínios do Amazon ES, consulte Uso dos AWS SDKs (p. 165).

Tópicos• Java (p. 61)• Python (p. 63)• Ruby (p. 65)• Nó (p. 67)

JavaA maneira mais fácil de enviar uma solicitação assinada é usando o Interceptador de solicitação assinadada AWS. O repositório contém alguns exemplos para ajudá-lo no começo. O exemplo a seguir usa ocliente Java REST de baixo nível do Elasticsearch para realizar duas ações não relacionadas: registrar umrepositório de snapshots e indexar um documento. Você deve fornecer valores para region e host.

import org.apache.http.HttpEntity;import org.apache.http.HttpHost;import org.apache.http.HttpRequestInterceptor;import org.apache.http.entity.ContentType;import org.apache.http.nio.entity.NStringEntity;import org.elasticsearch.client.Response;import org.elasticsearch.client.RestClient;import com.amazonaws.auth.AWS4Signer;import com.amazonaws.auth.AWSCredentialsProvider;import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;import com.amazonaws.http.AWSRequestSigningApacheInterceptor;import java.io.IOException;import java.util.Collections;import java.util.Map;

public class AmazonElasticsearchServiceSample {

private static String serviceName = "es"; private static String region = "us-west-1"; private static String aesEndpoint = "https://domain.us-west-1.es.amazonaws.com";

private static String payload = "{ \"type\": \"s3\", \"settings\": { \"bucket\": \"your-bucket\", \"region\": \"us-west-1\", \"role_arn\": \"arn:aws:iam::123456789012:role/TheServiceRole\" } }"; private static String snapshotPath = "/_snapshot/my-snapshot-repo";

private static String sampleDocument = "{" + "\"title\":\"Walk the Line\"," + "\"director\":\"James Mangold\"," + "\"year\":\"2005\"}";

Versão da API 2015-01-0161

Page 70: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorJava

private static String indexingPath = "/my-index/_doc";

static final AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain();

public static void main(String[] args) throws IOException { RestClient esClient = esClient(serviceName, region);

// Register a snapshot repository HttpEntity entity = new NStringEntity(payload, ContentType.APPLICATION_JSON); Map<String, String> params = Collections.emptyMap(); Response response = esClient.performRequest("PUT", snapshotPath, params, entity); System.out.println(response.toString());

// Index a document entity = new NStringEntity(sampleDocument, ContentType.APPLICATION_JSON); String id = "1"; response = esClient.performRequest("PUT", indexingPath + "/" + id, params, entity); System.out.println(response.toString()); }

// Adds the interceptor to the ES REST client public static RestClient esClient(String serviceName, String region) { AWS4Signer signer = new AWS4Signer(); signer.setServiceName(serviceName); signer.setRegionName(region); HttpRequestInterceptor interceptor = new AWSRequestSigningApacheInterceptor(serviceName, signer, credentialsProvider); return RestClient.builder(HttpHost.create(aesEndpoint)).setHttpClientConfigCallback(hacb -> hacb.addInterceptorLast(interceptor)).build(); }}

Se você preferir o cliente REST de alto nível, que oferece ma maioria dos mesmos recursos e um códigomais simples, tente usar o exemplo a seguir, que também usa o Interceptador de solicitação assinada daAWS:

import org.apache.http.HttpHost;import org.apache.http.HttpRequestInterceptor;import org.elasticsearch.action.index.IndexRequest;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.RestHighLevelClient;import com.amazonaws.auth.AWS4Signer;import com.amazonaws.auth.AWSCredentialsProvider;import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;import com.amazonaws.http.AWSRequestSigningApacheInterceptor;import java.io.IOException;import java.util.HashMap;import java.util.Map;

public class AmazonElasticsearchServiceSample {

private static String serviceName = "es"; private static String region = "us-west-1"; private static String aesEndpoint = ""; // e.g. https://search-mydomain.us-west-1.es.amazonaws.com private static String index = "my-index"; private static String type = "_doc"; private static String id = "1"; static final AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain();

Versão da API 2015-01-0162

Page 71: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPython

public static void main(String[] args) throws IOException { RestHighLevelClient esClient = esClient(serviceName, region);

// Create the document as a hash map Map<String, Object> document = new HashMap<>(); document.put("title", "Walk the Line"); document.put("director", "James Mangold"); document.put("year", "2005");

// Form the indexing request, send it, and print the response IndexRequest request = new IndexRequest(index, type, id).source(document); IndexResponse response = esClient.index(request); System.out.println(response.toString()); } // Adds the interceptor to the ES REST client public static RestHighLevelClient esClient(String serviceName, String region) { AWS4Signer signer = new AWS4Signer(); signer.setServiceName(serviceName); signer.setRegionName(region); HttpRequestInterceptor interceptor = new AWSRequestSigningApacheInterceptor(serviceName, signer, credentialsProvider); return new RestHighLevelClient(RestClient.builder(HttpHost.create(aesEndpoint)).setHttpClientConfigCallback(hacb -> hacb.addInterceptorLast(interceptor))); }}

Tip

Os dois exemplos assinados usam a cadeia de credenciais padrão. Execute aws configureusando a AWS CLI para definir suas credenciais.

PythonVocê pode instalar o elasticsearch-py, o cliente Elasticsearch oficial para Python, usando o pip. Em vezdo cliente, você pode optar por solicitações. Os pacotes requests-aws4auth e SDK para Python (boto3)simplificam o processo de autenticação, mas não são estritamente necessários. No terminal, execute oscomandos a seguir:

pip install boto3pip install elasticsearchpip install requestspip install requests-aws4auth

O código de exemplo a seguir estabelece uma conexão segura com o domínio Amazon ES especificado eindexa um único documento usando a API _index. Você deve fornecer valores para region e host.

from elasticsearch import Elasticsearch, RequestsHttpConnectionfrom requests_aws4auth import AWS4Authimport boto3

host = '' # For example, my-test-domain.us-east-1.es.amazonaws.comregion = '' # e.g. us-west-1

service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service)

Versão da API 2015-01-0163

Page 72: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPython

es = Elasticsearch( hosts = [{'host': host, 'port': 443}], http_auth = awsauth, use_ssl = True, verify_certs = True, connection_class = RequestsHttpConnection)

document = { "title": "Moneyball", "director": "Bennett Miller", "year": "2011"}

es.index(index="movies", doc_type="_doc", id="5", body=document)

print(es.get(index="movies", doc_type="_doc", id="5"))

Se você não deseja usar o elasticsearch-py, pode apenas fazer solicitações de HTTP padrão. Estaamostra cria um novo índice com sete estilhaços e duas réplicas:

from requests_aws4auth import AWS4Authimport boto3import requests

host = '' # The domain with https:// and trailing slash. For example, https://my-test-domain.us-east-1.es.amazonaws.com/path = 'my-index' # the Elasticsearch API endpointregion = '' # For example, us-west-1

service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service)

url = host + path

# The JSON body to accompany the request (if necessary)payload = { "settings" : { "number_of_shards" : 7, "number_of_replicas" : 2 }}

r = requests.put(url, auth=awsauth, json=payload) # requests.get, post, and delete have similar syntax

print(r.text)

O próximo exemplo usa a biblioteca Beautiful Soup para ajudar a criar um arquivo em massa de umdiretório local de arquivos HTML. Usando o mesmo cliente do primeiro exemplo, você pode enviar oarquivo para a API _bulk para indexação. Você pode usar esse código como base para adicionar afuncionalidade de pesquisa em um site:

from bs4 import BeautifulSoupfrom elasticsearch import Elasticsearch, RequestsHttpConnectionfrom requests_aws4auth import AWS4Authimport boto3import globimport json

bulk_file = ''id = 1

Versão da API 2015-01-0164

Page 73: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRuby

# This loop iterates through all HTML files in the current directory and# indexes two things: the contents of the first h1 tag and all other text.

for html_file in glob.glob('*.htm'):

with open(html_file) as f: soup = BeautifulSoup(f, 'html.parser')

title = soup.h1.string body = soup.get_text(" ", strip=True) # If get_text() is too noisy, you can do further processing on the string.

index = { 'title': title, 'body': body, 'link': html_file } # If running this script on a website, you probably need to prepend the URL and path to html_file.

# The action_and_metadata portion of the bulk file bulk_file += '{ "index" : { "_index" : "site", "_type" : "_doc", "_id" : "' + str(id) + '" } }\n'

# The optional_document portion of the bulk file bulk_file += json.dumps(index) + '\n'

id += 1

host = '' # For example, my-test-domain.us-east-1.es.amazonaws.comregion = '' # e.g. us-west-1

service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service)

es = Elasticsearch( hosts = [{'host': host, 'port': 443}], http_auth = awsauth, use_ssl = True, verify_certs = True, connection_class = RequestsHttpConnection)

es.bulk(bulk_file)

print(es.search(q='some test query'))

RubyO primeiro exemplo usa o cliente do Ruby do Elasticsearch e o middleware Faraday para realizar aassinatura da solicitação. No terminal, execute os comandos a seguir:

gem install elasticsearchgem install faraday_middleware-aws-sigv4

Este código de exemplo cria um novo cliente do Elasticsearch, configura o middleware Faraday paraassinar solicitações e indexa um único documento. Você deve fornecer valores para host e region.

require 'elasticsearch'require 'faraday_middleware/aws_sigv4'

host = '' # e.g. https://my-domain.region.es.com

Versão da API 2015-01-0165

Page 74: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRuby

index = 'ruby-index'type = '_doc'id = '1'document = { year: 2007, title: '5 Centimeters per Second', info: { plot: 'Told in three interconnected segments, we follow a young man named Takaki through his life.', rating: 7.7 }}

region = '' # e.g. us-west-1service = 'es'

client = Elasticsearch::Client.new(url: host) do |f| f.request :aws_sigv4, service: service, region: region, access_key_id: ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], session_token: ENV['AWS_SESSION_TOKEN'] # optionalend

puts client.index index: index, type: type, id: id, body: document

Se as credenciais não funcionarem, exporte-as no terminal usando os seguintes comandos:

export AWS_ACCESS_KEY_ID="your-access-key"export AWS_SECRET_ACCESS_KEY="your-secret-key"export AWS_SESSION_TOKEN=""your-session-token"

O próximo exemplo usa o AWS SDK para Ruby e as bibliotecas do Ruby padrão para enviar umasolicitação HTTP assinada. Assim como o primeiro exemplo, ele indexa um único documento. Você devefornecer valores para host e região.

require 'aws-sdk-elasticsearchservice'

host = '' # e.g. https://my-domain.region.es.comindex = 'ruby-index'type = '_doc'id = '2'document = { year: 2007, title: '5 Centimeters per Second', info: { plot: 'Told in three interconnected segments, we follow a young man named Takaki through his life.', rating: 7.7 }}

service = 'es'region = '' # e.g. us-west-1

signer = Aws::Sigv4::Signer.new( service: service, region: region, access_key_id: ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], session_token: ENV['AWS_SESSION_TOKEN'])

Versão da API 2015-01-0166

Page 75: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNó

signature = signer.sign_request( http_method: 'PUT', url: host + '/' + index + '/' + type + '/' + id, body: document.to_json)

uri = URI(host + '/' + index + '/' + type + '/' + id)

Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http| request = Net::HTTP::Put.new uri request.body = document.to_json request['Host'] = signature.headers['host'] request['X-Amz-Date'] = signature.headers['x-amz-date'] request['X-Amz-Security-Token'] = signature.headers['x-amz-security-token'] request['X-Amz-Content-Sha256']= signature.headers['x-amz-content-sha256'] request['Authorization'] = signature.headers['authorization'] request['Content-Type'] = 'application/json' response = http.request request puts response.bodyend

NóEste exemplo usa o SDK para JavaScript no Node.js. No terminal, execute os comandos a seguir:

npm install aws-sdk

Este código de exemplo indexa um único documento. Você deve fornecer valores para region e domain.

var AWS = require('aws-sdk');

var region = ''; // e.g. us-west-1var domain = ''; // e.g. search-domain.region.es.amazonaws.comvar index = 'node-test';var type = '_doc';var id = '1';var json = { "title": "Moneyball", "director": "Bennett Miller", "year": "2011"}

indexDocument(json);

function indexDocument(document) { var endpoint = new AWS.Endpoint(domain); var request = new AWS.HttpRequest(endpoint, region);

request.method = 'PUT'; request.path += index + '/' + type + '/' + id; request.body = JSON.stringify(document); request.headers['host'] = domain; request.headers['Content-Type'] = 'application/json'; // Content-Length is only needed for DELETE requests that include a request // body, but including it for all requests doesn't seem to hurt anything. request.headers["Content-Length"] = request.body.length;

var credentials = new AWS.EnvironmentCredentials('AWS'); var signer = new AWS.Signers.V4(request, 'es'); signer.addAuthorization(credentials, new Date());

Versão da API 2015-01-0167

Page 76: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNó

var client = new AWS.HttpClient(); client.handleRequest(request, null, function(response) { console.log(response.statusCode + ' ' + response.statusMessage); var responseBody = ''; response.on('data', function (chunk) { responseBody += chunk; }); response.on('end', function (chunk) { console.log('Response body: ' + responseBody); }); }, function(error) { console.log('Error: ' + error); });}

Se as credenciais não funcionarem, exporte-as no terminal usando os seguintes comandos:

export AWS_ACCESS_KEY_ID="your-access-key"export AWS_SECRET_ACCESS_KEY="your-secret-key"export AWS_SESSION_TOKEN=""your-session-token"

Versão da API 2015-01-0168

Page 77: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCarregamento de dados em streamingno Amazon ES por meio do Amazon S3

Carregamento de dados destreaming no Amazon ElasticsearchService

Você pode carregar dados em streaming no domínio do Amazon Elasticsearch Service de muitas fontesdiferentes. Algumas origens, como o Amazon Kinesis Data Firehose e o Amazon CloudWatch Logs,têm suporte interno para o Amazon ES. Outras, como o Amazon S3, o Amazon Kinesis Data Streamse o Amazon DynamoDB, usam funções do AWS Lambda como manipuladores de eventos. As funçõesLambda respondem a novos dados processando e transmitindo-os para seu domínio.

Note

O Lambda dá suporte a várias linguagens de programação populares e está disponível na maioriadas regiões da AWS. Para obter mais informações, consulte Como criar funções do Lambda noAWS Lambda Developer Guide e Regiões do AWS Lambda no AWS General Reference.

Tópicos• Carregamento de dados em streaming no Amazon ES por meio do Amazon S3 (p. 69)• Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data

Streams (p. 74)• Carregamento de dados em streaming no Amazon ES por meio do Amazon DynamoDB (p. 76)• Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data

Firehose (p. 79)• Carregamento de dados em streaming no Amazon ES por meio do Amazon CloudWatch (p. 79)• Carregamento de dados no Amazon ES do AWS IoT (p. 80)

Carregamento de dados em streaming no AmazonES por meio do Amazon S3

Você pode usar o Lambda a fim de enviar dados para o domínio do Amazon ES pelo Amazon S3. Osnovos dados recebidos em um bucket do S3 acionam uma notificação de evento para o Lambda, queexecuta seu código personalizado para realizar a indexação.

Esse método de streaming de dados é extremamente flexível. Você pode indexar metadados de objeto,ou se o objeto for texto simples, analisar e indexar alguns elementos do corpo do objeto. Esta seção incluialguns códigos de exemplo Python simples que usam expressões regulares para analisar um arquivo delog e indexar as correspondências.

Tip

Para obter um código mais robusto em Node.js, consulte amazon-elasticsearch-lambda-samplesno GitHub. Alguns esquemas do Lambda também contêm exemplos de análise úteis.

Pré-requisitosPara continuar, você deve ter os recursos a seguir.

Versão da API 2015-01-0169

Page 78: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriar o pacote de implantação do Lambda

Pré-requisito Descrição

Bucket do Amazon S3 Para obter mais informações, consulte Como criar um bucket no Guia deconceitos básicos do Amazon Simple Storage Service. O bucket deve residirna mesma região do domínio do Amazon ES.

Domínio do Amazon ES O destino dos dados depois que a função do Lambda os processa.Para obter mais informações, consulte Criação de domínios do AmazonES (p. 10).

Criar o pacote de implantação do LambdaOs pacotes de implantação são arquivos ZIP ou JAR que contêm o código e as dependências. Esta seçãoinclui código de exemplo Python. Para outras linguagens de programação, consulte Criar um pacote deimplantação no AWS Lambda Developer Guide.

1. Crie um diretório. Neste exemplo, usamos o nome s3-to-es.2. Crie um arquivo no diretório chamado sample.py:

import boto3import reimport requestsfrom requests_aws4auth import AWS4Auth

region = '' # e.g. us-west-1service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

host = '' # the Amazon ES domain, including https://index = 'lambda-s3-index'type = 'lambda-type'url = host + '/' + index + '/' + type

headers = { "Content-Type": "application/json" }

s3 = boto3.client('s3')

# Regular expressions used to parse some simple log linesip_pattern = re.compile('(\d+\.\d+\.\d+\.\d+)')time_pattern = re.compile('\[(\d+\/\w\w\w\/\d\d\d\d:\d\d:\d\d:\d\d\s-\d\d\d\d)\]')message_pattern = re.compile('\"(.+)\"')

# Lambda execution starts heredef handler(event, context): for record in event['Records']:

# Get the bucket name and key for the new file bucket = record['s3']['bucket']['name'] key = record['s3']['object']['key']

# Get, read, and split the file into lines obj = s3.get_object(Bucket=bucket, Key=key) body = obj['Body'].read() lines = body.splitlines() # Match the regular expressions to each line and index the JSON for line in lines: ip = ip_pattern.search(line).group(1)

Versão da API 2015-01-0170

Page 79: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriar a função Lambda

timestamp = time_pattern.search(line).group(1) message = message_pattern.search(line).group(1) document = { "ip": ip, "timestamp": timestamp, "message": message } r = requests.post(url, auth=awsauth, json=document, headers=headers)

Edite as variáveis de region e host.3. Instale as dependências:

cd s3-to-espip install requests -t .pip install requests_aws4auth -t .

Como todos os ambientes de execução do Lambda têm Boto3 instalado, você não precisa incluí-lo nopacote de implantação.

Tip

Se você usa macOS, esses comandos talvez não funcionem corretamente. Como alternativa,adicione um arquivo chamado setup.cfg ao diretório s3-to-es:

[install]prefix=

4. Empacote o código do aplicativo e as dependências:

zip -r lambda.zip *

Criar a função LambdaDepois de criar o pacote de implantação, você poderá criar a função Lambda. Ao criar uma função,escolha um nome, o tempo de execução (por exemplo, Python 2.7) e a função do IAM. A função do &IAM;define as permissões para a função. Para obter instruções detalhadas, consulte Criar uma função Lambdasimples no AWS Lambda Developer Guide.

Esse exemplo pressupõe que você esteja usando o console. Escolha Python 2.7 e uma função que tenhapermissões de leitura do S3 e permissões de gravação do Amazon ES, conforme mostrado na captura detela a seguir.

Versão da API 2015-01-0171

Page 80: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriar a função Lambda

Depois de criar a função, você deverá adicionar um gatilho. Neste exemplo, queremos que o código sejaexecutado sempre que um arquivo de log chegue em um bucket do S3:

1. Selecione o S3.2. Escolha o bucket.3. Em Event type (Tipo de evento), selecione PUT.4. Em Prefix (Prefixo), digite logs/.5. Em Filter pattern (Padrão de filtro), digite .log.6. Selecione Enable trigger (Habilitar gatilho).7. Escolha Adicionar.

Versão da API 2015-01-0172

Page 81: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorTestar a função do Lambda

Por fim, você pode fazer upload do pacote de implantação:

1. Em Handler, digite sample.handler. Essa configuração informa ao Lambda o arquivo (sample.py)e o método (handler) que deverão ser executados depois de um gatilho.

2. Em Code entry type (Tipo de entrada de código), escolha Upload a .ZIP file (Fazer upload de umarquivo .ZIP) e siga os avisos para fazer upload do pacote de implantação.

3. Escolha Salvar.

A esta altura, você tem um conjunto completo de recursos: um bucket para arquivos de log, uma funçãoexecutada sempre que um arquivo de log é adicionado ao bucket, o código que realiza a análise e aindexação e um domínio do Amazon ES para pesquisa e visualização.

Testar a função do LambdaDepois de criar a função, você poderá testá-la fazendo upload de um arquivo no bucket do Amazon S3.Crie um arquivo chamado sample.log usando as seguintes linhas de log de exemplo:

12.345.678.90 - [10/Oct/2000:13:55:36 -0700] "PUT /some-file.jpg"12.345.678.91 - [10/Oct/2000:14:56:14 -0700] "GET /some-file.jpg"

Faça upload do arquivo na pasta logs do bucket do S3. Para obter instruções, consulte Adicionar umobjeto a um bucket no Guia de conceitos básicos do Amazon Simple Storage Service.

Em seguida, use o console do Amazon ES ou o Kibana para verificar se o índice lambda-s3-indexcontém dois documentos. Você também pode fazer uma solicitação de pesquisa padrão:

GET https://es-domain/lambda-index/_search?pretty{ "hits" : { "total" : 2, "max_score" : 1.0, "hits" : [ { "_index" : "lambda-s3-index", "_type" : "lambda-type", "_id" : "vTYXaWIBJWV_TTkEuSDg", "_score" : 1.0, "_source" : { "ip" : "12.345.678.91", "message" : "GET /some-file.jpg", "timestamp" : "10/Oct/2000:14:56:14 -0700" } }, { "_index" : "lambda-s3-index", "_type" : "lambda-type", "_id" : "vjYmaWIBJWV_TTkEuCAB", "_score" : 1.0, "_source" : { "ip" : "12.345.678.90", "message" : "PUT /some-file.jpg", "timestamp" : "10/Oct/2000:13:55:36 -0700" } } ] }}

Versão da API 2015-01-0173

Page 82: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCarregamento de dados em streaming no Amazon

ES por meio do Amazon Kinesis Data Streams

Carregamento de dados em streaming no AmazonES por meio do Amazon Kinesis Data Streams

Você pode carregar dados em streaming do Kinesis Data Streams no Amazon ES. Os novos dadosrecebidos no streaming de dados acionam uma notificação de evento para o Lambda, que executa seucódigo personalizado para realizar a indexação. Esta seção inclui um código de exemplo Python simples.Para obter um código mais robusto em Node.js, consulte amazon-elasticsearch-lambda-samples noGitHub.

Pré-requisitosPara continuar, você deve ter os recursos a seguir.

Pré-requisito Descrição

Streaming de dados doAmazon Kinesis

Origem de evento para a função Lambda. Para saber mais, consulteStreamings de dados do Kinesis.

Domínio do Amazon ES O destino dos dados depois que a função do Lambda os processa.Para obter mais informações, consulte Criação de domínios do AmazonES (p. 10).

Função do IAM Essa função deve ter as permissões básicas do Amazon ES, do Kinesis e doLambda, como as seguintes:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpPost", "es:ESHttpPut", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:DescribeStream", "kinesis:ListStreams" ], "Resource": "*" } ]}

A função deve ter a seguinte relação de confiança:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole"

Versão da API 2015-01-0174

Page 83: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriar a função Lambda

Pré-requisito Descrição } ]}

Para saber mais, consulte Como criar funções do IAM no Guia do usuário doIAM.

Criar a função LambdaSiga as instruções no the section called “Criar o pacote de implantação do Lambda” (p. 70), mas crieum diretório chamado kinesis-to-es e use o seguinte código para sample.py:

import base64import boto3import jsonimport requestsfrom requests_aws4auth import AWS4Auth

region = '' # e.g. us-west-1service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

host = '' # the Amazon ES domain, including https://index = 'lambda-kine-index'type = 'lambda-kine-type'url = host + '/' + index + '/' + type + '/'

headers = { "Content-Type": "application/json" }

def handler(event, context): count = 0 for record in event['Records']: id = record['eventID'] timestamp = record['kinesis']['approximateArrivalTimestamp'] # Kinesis data is base64-encoded, so decode here message = base64.b64decode(record['kinesis']['data']) # Create the JSON document document = { "id": id, "timestamp": timestamp, "message": message } # Index the document r = requests.put(url + id, auth=awsauth, json=document, headers=headers) count += 1 return 'Processed ' + str(count) + ' items.'

Edite as variáveis de region e host.

Use os seguintes comandos para instalar as dependências:

cd kinesis-to-espip install requests -t .pip install requests_aws4auth -t .

Depois siga as instruções em the section called “Criar a função Lambda” (p. 71), mas especifique afunção do IAM por the section called “Pré-requisitos” (p. 74) e as seguintes configurações do gatilho:

Versão da API 2015-01-0175

Page 84: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorTestar a função do Lambda

• Kinesis Stream: o stream do Kinesis• Batch size (Tamanho do lote): 100• Starting position (Posição inicial): redução horizontal

Para saber mais, consulte Como trabalhar com streamings de dados do Amazon Kinesis no Guia dodesenvolvedor do Amazon Kinesis Data Streams.

A esta altura, você tem um conjunto completo de recursos: um streaming de dados do Kinesis, uma funçãoexecutada depois que o stream recebe novos dados e indexa esses dados, além de um domínio doAmazon ES para pesquisa e visualização.

Testar a função do LambdaDepois de criar a função, você poderá testá-la adicionando um novo registro ao streaming de dadosusando a AWS CLI:

aws kinesis put-record --stream-name es-test --data "My test data." --partition-key partitionKey1 --region us-west-1

Em seguida, use o console do Amazon ES ou o Kibana para verificar se lambda-kine-index contémum documento. Você também pode usar a seguinte solicitação:

GET https://es-domain/lambda-kine-index/_search{ "hits" : [ { "_index": "lambda-kine-index", "_type": "lambda-kine-type", "_id": "shardId-000000000000:49583511615762699495012960821421456686529436680496087042", "_score": 1, "_source": { "timestamp": 1523648740.051, "message": "My test data.", "id": "shardId-000000000000:49583511615762699495012960821421456686529436680496087042" } } ]}

Carregamento de dados em streaming no AmazonES por meio do Amazon DynamoDB

Você pode usar o AWS Lambda a fim de enviar dados para o domínio do Amazon ES pelo AmazonDynamoDB. Os novos dados recebidos na tabela do banco de dados acionam uma notificação de eventopara o Lambda, que executa seu código personalizado para realizar a indexação.

Pré-requisitosPara continuar, você deve ter os recursos a seguir.

Versão da API 2015-01-0176

Page 85: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPré-requisitos

Pré-requisito Descrição

Tabela do DynamoDB A tabela contém os dados de origem. Para obter mais informações, consulteOperações básicas para tabelas no Guia do desenvolvedor do AmazonDynamoDB.

A tabela deve residir na mesma região que o domínio do Amazon ES e terum stream definido como New image (Nova imagem). Para saber mais,consulte Como habilitar um stream.

Domínio do Amazon ES O destino dos dados depois que a função do Lambda os processa.Para obter mais informações, consulte Criação de domínios do AmazonES (p. 10).

Função do IAM Essa função deve ter as permissões básicas de execução do Amazon ES,do DynamoDB e do Lambda, como as seguintes:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpPost", "es:ESHttpPut", "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:ListStreams", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ]}

A função deve ter a seguinte relação de confiança:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Para saber mais, consulte Como criar funções do IAM no Guia do usuário doIAM.

Versão da API 2015-01-0177

Page 86: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriar a função Lambda

Criar a função LambdaSiga as instruções no the section called “Criar o pacote de implantação do Lambda” (p. 70), mas crieum diretório chamado ddb-to-es e use o seguinte código para sample.py:

import boto3import requestsfrom requests_aws4auth import AWS4Auth

region = '' # e.g. us-east-1service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

host = '' # the Amazon ES domain, with https://index = 'lambda-index'type = 'lambda-type'url = host + '/' + index + '/' + type + '/'

headers = { "Content-Type": "application/json" }

def handler(event, context): count = 0 for record in event['Records']: # Get the primary key for use as the Elasticsearch ID id = record['dynamodb']['Keys']['id']['S']

if record['eventName'] == 'REMOVE': r = requests.delete(url + id, auth=awsauth) else: document = record['dynamodb']['NewImage'] r = requests.put(url + id, auth=awsauth, json=document, headers=headers) count += 1 return str(count) + ' records processed.'

Edite as variáveis de region e host.

Use os seguintes comandos para instalar as dependências:

cd ddb-to-espip install requests -t .pip install requests_aws4auth -t .

Depois siga as instruções em the section called “Criar a função Lambda” (p. 71), mas especifique afunção do IAM por the section called “Pré-requisitos” (p. 76) e as seguintes configurações do gatilho:

• Table (Tabela): a tabela do DynamoDB• Batch size (Tamanho do lote): 100• Starting position (Posição inicial): redução horizontal

Para saber mais, consulte Processar novos itens em uma tabela do DynamoDB no Guia do desenvolvedordo Amazon DynamoDB.

A esta altura, você tem um conjunto completo de recursos: uma tabela do DynamoDB para os dados deorigem, um stream do DynamoDB de alterações feitas na tabela, uma função que será executada depoisque os dados de origem forem alterados e indexará essas alterações e um domínio do Amazon ES parapesquisa e visualização.

Versão da API 2015-01-0178

Page 87: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorTestar a função do Lambda

Testar a função do LambdaDepois de criar a função, você poderá testá-la adicionando um novo item à tabela do DynamoDB usando aAWS CLI:

aws dynamodb put-item --table-name es-test --item '{"director": {"S": "Kevin Costner"},"id": {"S": "00001"},"title": {"S": "The Postman"}}' --region us-west-1

Em seguida, use o console do Amazon ES ou o Kibana para verificar se lambda-index contém umdocumento. Você também pode usar a seguinte solicitação:

GET https://es-domain/lambda-index/lambda-type/00001{ "_index": "lambda-index", "_type": "lambda-type", "_id": "00001", "_version": 1, "found": true, "_source": { "director": { "S": "Kevin Costner" }, "id": { "S": "00001" }, "title": { "S": "The Postman" } }}

Carregamento de dados em streaming no AmazonES por meio do Amazon Kinesis Data Firehose

O Kinesis Data Firehose é compatível com o Amazon ES como um destino de entrega. Para obterinstruções sobre como carregar streaming de dados no Amazon ES, consulte Como crar um fluxo deentrega do Kinesis Data Firehose e Escolher o Amazon ES para o destino no Guia do desenvolvedor doAmazon Kinesis Data Firehose.

Para carregar dados no Amazon ES, talvez você precise realizar transformações nos dados. Para sabermais sobre como usar funções do Lambda para executar essa tarefa, consulte Transformação de dados nomesmo guia.

Ao configurar um fluxo de entrega, o Kinesis Data Firehose oferece a função do IAM de "um único clique"que lhe oferece acesso ao recurso do qual necessita para enviar dados para o Amazon ES, fazer backupde dados no Amazon S3 e transformar dados usando o Lambda. Em virtude da complexidade envolvida nacriação manual de uma função como essa, é recomendável usar a função fornecida.

Carregamento de dados em streaming no AmazonES por meio do Amazon CloudWatch

Você pode carregar dados de streaming para do CloudWatch Logs para o domínio do Amazon ESusando uma assinatura do CloudWatch Logs. Para obter mais informações sobre assinaturas do Amazon

Versão da API 2015-01-0179

Page 88: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCarregamento de dados no Amazon ES do AWS IoT

CloudWatch, consulte Processamento em tempo real dos dados de log com assinaturas. Para obterinformações de configuração, consulte Streaming CloudWatch Logs Data to Amazon Elasticsearch Serviceno Amazon CloudWatch Developer Guide.

Carregamento de dados no Amazon ES do AWSIoT

Você pode enviar dados da AWS IoT usando regras. Para saber mais, consulte Ações do Amazon ES noGuia do desenvolvedor do AWS IoT.

Versão da API 2015-01-0180

Page 89: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPesquisas do URI

Pesquisa de dados no AmazonElasticsearch Service

Como se espera de um mecanismo de pesquisa, o Elasticsearch oferece inúmeras opções para pesquisarseus dados. Este capítulo apresenta algumas maneiras comuns de realizar pesquisas com o Amazon ES.Você pode usar o Postman para testar as várias solicitações. Para obter exemplos de códigos que enviamsolicitações de HTTP assinadas ao Amazon ES, consulte Solicitações de assinatura da HTTP (p. 61).

Note

Todas as solicitações de exemplo neste capítulo funcionam com APIs da versão Elasticsearch6.x. Algumas solicitações podem não funcionar com versões mais antigas do Elasticsearch.

Pesquisas do URIAs pesquisas do URI (Universal Resource Identifier, Identificador de recurso universal) são a formamais simples de pesquisa. Em uma pesquisa do URI, você especifica a consulta como um parâmetro desolicitação HTTP.

GET https://search-my-domain.us-west-1.es.amazonaws.com/_search?q=house

Uma resposta de exemplo pode ser a seguinte:

{ "took": 25, "timed_out": false, "_shards": { "total": 10, "successful": 10, "skipped": 0, "failed": 0 }, "hits": { "total": 85, "max_score": 6.6137657, "hits": [ { "_index": "movies", "_type": "movie", "_id": "tt0077975", "_score": 6.6137657, "_source": { "directors": [ "John Landis" ], "release_date": "1978-07-27T00:00:00Z", "rating": 7.5, "genres": [ "Comedy", "Romance" ], "image_url": "http://ia.media-imdb.com/images/M/MV5BMTY2OTQxNTc1OF5BMl5BanBnXkFtZTYwNjA3NjI5._V1_SX400_.jpg", "plot": "At a 1962 College, Dean Vernon Wormer is determined to expel the entire Delta Tau Chi Fraternity, but those troublemakers have other plans for him.",

Versão da API 2015-01-0181

Page 90: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPesquisas de corpo da solicitação

"title": "Animal House", "rank": 527, "running_time_secs": 6540, "actors": [ "John Belushi", "Karen Allen", "Tom Hulce" ], "year": 1978, "id": "tt0077975" } }, ... ] }}

Por padrão, essa consulta pesquisa todos os campos de todos os índices do termo casa. Para restringir apesquisa, especifique um índice (movies) e um campo de documento (title) no URI:

GET https://search-my-domain.us-west-1.es.amazonaws.com/movies/_search?q=title:house

Você pode incluir parâmetros adicionais na solicitação, mas os parâmetros compatíveis fornecem apenasum pequeno subconjunto das opções de pesquisa do Elasticsearch. A solicitação a seguir retorna 20resultados (em vez do padrão de 10) e classifica por ano (em vez de por _score):

GET https://search-my-domain.us-west-1.es.amazonaws.com/movies/_search?q=title:house&size=20&sort=year:desc

Pesquisas de corpo da solicitaçãoPara realizar pesquisas mais complexas, use o corpo de solicitação HTTP e o idioma específico dodomínio (DSL) do Elasticsearch para consultas. A consulta DSL permite especificar o intervalo completo deopções de pesquisa do Elasticsearch. A consulta match a seguir é semelhante ao exemplo de pesquisafinal do URI (p. 81):

POST https://search-my-domain.us-west-1.es.amazonaws.com/movies/_search{ "size": 20, "sort": { "year": { "order": "desc" } }, "query": { "query_string": { "default_field": "title", "query": "house" } }}

Note

A API _search aceita HTTPGET e POST para pesquisas de corpo de solicitação, mas nem todosos clientes HTTP suportam a adição de um corpo de solicitação a uma solicitação GET. POST é aescolha mais universal.

Versão da API 2015-01-0182

Page 91: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAumentar campos

Em muitos casos, você pode pesquisar vários campos, mas não todos os campos. Use a consultamulti_match:

POST https://search-my-domain.us-west-1.es.amazonaws.com/movies/_search{ "size": 20, "query": { "multi_match": { "query": "house", "fields": ["title", "plot", "actors", "directors"] } }}

Aumentar camposVocê pode melhorar a relevância de pesquisa "aumentando" determinados campos. Boosts sãomultiplicadores que ponderam os resultados em um campo maior do que os correspondentes em outroscampos. No exemplo a seguir, uma correspondência para john no campo title influencia _score duasvezes mais que uma correspondência no campo plot e quatro vezes mais que uma correspondência noscampos actors ou directors. O resultado é que filmes como John Wick e John Carter estão próximosdo topo dos resultados de busca, e filmes estrelados por John Travolta estão quase no fim.

POST https://search-my-domain.us-west-1.es.amazonaws.com/movies/_search{ "size": 20, "query": { "multi_match": { "query": "john", "fields": ["title^4", "plot^2", "actors", "directors"] } }}

Paginação de resultados de pesquisaSe precisar exibir um grande número de resultados de pesquisa, você poderá implementar a paginaçãousando o parâmetro from. A solicitação a seguir retorna os resultados de 20 a 39 da lista indexadabaseada em zero dos resultados da pesquisa:

POST https://search-my-domain.us-west-1.es.amazonaws.com/movies/_search{ "from": 20, "size": 20, "query": { "multi_match": { "query": "house", "fields": ["title^4", "plot^2", "actors", "directors"] } }}

Destaques do resultado de pesquisaA opção highlight informa ao Elasticsearch para retornar um objeto adicional dentro da matriz hits, sea consulta corresponder a um ou mais campos:

Versão da API 2015-01-0183

Page 92: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDestaques do resultado de pesquisa

POST https://search-my-domain.us-west-1.es.amazonaws.com/movies/_search{ "size": 20, "query": { "multi_match": { "query": "house", "fields": ["title^4", "plot^2", "actors", "directors"] } }, "highlight": { "fields": { "plot": {} } }}

Se a consulta corresponder ao conteúdo do campo plot, um resultado pode ser semelhante ao seguinte:

{ "_index": "movies", "_type": "movie", "_id": "tt0091541", "_score": 11.276199, "_source": { "directors": [ "Richard Benjamin" ], "release_date": "1986-03-26T00:00:00Z", "rating": 6, "genres": [ "Comedy", "Music" ], "image_url": "http://ia.media-imdb.com/images/M/MV5BMTIzODEzODE2OF5BMl5BanBnXkFtZTcwNjQ3ODcyMQ@@._V1_SX400_.jpg", "plot": "A young couple struggles to repair a hopelessly dilapidated house.", "title": "The Money Pit", "rank": 4095, "running_time_secs": 5460, "actors": [ "Tom Hanks", "Shelley Long", "Alexander Godunov" ], "year": 1986, "id": "tt0091541" }, "highlight": { "plot": [ "A young couple struggles to repair a hopelessly dilapidated <em>house</em>." ] }}

Por padrão, o Elasticsearch agrupa a string correspondente em tags <em>, fornece até 100 caracteresde contexto da correspondência e divide o conteúdo em sentenças, identificando sinais de pontuação,espaços, tabulações e quebras de linha. Todas estas configurações são personalizáveis:

POST https://search-my-domain.us-west-1.es.amazonaws.com/movies/_search{ "size": 20, "query": {

Versão da API 2015-01-0184

Page 93: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAPI de contagem

"multi_match": { "query": "house", "fields": ["title^4", "plot^2", "actors", "directors"] } }, "highlight": { "fields": { "plot": {} }, "pre_tags": "<strong>", "post_tags": "</strong>", "fragment_size": 200, "boundary_chars": ".,!? " }}

API de contagemSe você não estiver interessado no conteúdo de seus documentos e quiser apenas saber o número decorrespondências, poderá usar a API _count em vez da API _search. A solicitação a seguir usa aconsulta query_string para identificar comédias românticas:

POST https://search-my-domain.us-west-1.es.amazonaws.com/movies/_count{ "query": { "query_string": { "default_field": "genres", "query": "romance AND comedy" } }}

Uma resposta de exemplo pode ser a seguinte:

{ "count": 564, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }}

Versão da API 2015-01-0185

Page 94: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Trabalhar com snapshots de índicedo Amazon Elasticsearch Service

Snapshots são backups de dados e estado de um cluster. O estado inclui configurações de cluster,informações de nó, configurações de índice e alocação de estilhaços.

Os snapshots fornecem uma alternativa conveniente para migração de dados entre domínios do AmazonElasticsearch Service e para recuperação de falhas. O serviço oferece suporte à restauração com base emsnapshots feitos tanto no Amazon ES quanto em clusters autogerenciados do Elasticsearch.

O Amazon ES realiza snapshots diários automatizados de estilhaços do índice primário em um domínio,conforme descrito em the section called “Configuração de snapshots automáticos” (p. 24). O serviçoarmazena até 14 desses snapshots por não mais do que 30 dias em um bucket do Amazon S3 pré-configurado sem custo adicional para você. Você pode usar esses snapshots para restaurar o domínio.

Se o cluster entrar no status vermelho e você não corrigir o problema, você começará a perder snapshotsautomatizados depois de 16 dias. Para obter etapas sobre a solução de problemas, consulte the sectioncalled “Status de cluster vermelho” (p. 144).

Você não pode usar snapshots automatizados para migrar para novos domínios. Os snapshotsautomatizados são somente leitura dentro de determinado domínio. Para migrações, você deve usarsnapshots manuais armazenados em seu próprio repositório (um bucket do S3). Cobranças padrão do S3se aplicam a snapshots manuais.

Tip

Para muitos usuários, ferramentas como o Curator são convenientes para gerenciamento deíndices e snapshots. Use o pip para instalar o Curator:

pip install elasticsearch-curator

O Curator oferece funcionalidade avançada de filtragem que pode ajudar a simplificar as tarefasde gerenciamento em clusters complexos. O Amazon ES é compatível com o Curator emdomínios que executam o Elasticsearch versão 5.1 e posterior. Você pode usar o Curator comouma interface de linha de comando (CLI) ou API do Python. Se você usar a CLI, exporte suascredenciais na linha de comando e configure o curator.yml da seguinte maneira:

client: hosts: search-my-domain.us-west-1.es.amazonaws.com port: 443 use_ssl: True aws_region: us-west-1 aws_sign_request: True ssl_no_validate: False timeout: 60

logging: loglevel: INFO

Para as funções Lambda de exemplo que usam a API do Python, consulte Uso do Curator paragirar dados (p. 139).

Tópicos• Pré-requisitos do snapshots manuais (p. 87)• Registro de um repositório de snapshots manuais (p. 88)

Versão da API 2015-01-0186

Page 95: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPré-requisitos do snapshots manuais

• Manual deObtenção de snapshots manuais (p. 90)• Restauração de snapshots (p. 91)

Pré-requisitos do snapshots manuaisPara criar os snapshots de índice manualmente, você deve trabalhar com o IAM e o Amazon S3. Verifiqueprimeiro se você cumpre os pré-requisitos a seguir antes de tentar criar um snapshot.

Pré-requisito Descrição

Bucket do S3 Armazena snapshots manuais para o domínio do Amazon ES. Anote o nome do bucket.Você precisará dele em dois locais:

• Declaração Resource da política do IAM que está anexada à função do IAM• Cliente Python usado para registrar um repositório de snapshots

Para obter mais informações, consulte Crie um bucket no Guia de conceitos básicos doAmazon Simple Storage Service.

Important

Não aplique uma regra de ciclo de vida do Glacier a esse bucket. Os snapshotsmanuais não são compatíveis com a classe de armazenamento do Glacier.

Função doIAM

Concede permissões ao Amazon Elasticsearch Service. O restante deste capítulo serefere a essa função como TheSnapshotRole.

A relação de confiança da função deve especificar o Amazon Elasticsearch Service nadeclaração Principal, conforme mostrado no seguinte exemplo:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" }]}

A função deve ter a seguinte politica anexada:

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-bucket-name" ] }, { "Action": [

Versão da API 2015-01-0187

Page 96: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRegistro de um repositório de snapshots manuais

Pré-requisito Descrição "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-bucket-name/*" ] } ]}

Para obter mais informações, consulte Creating Customer Managed Policies e AttachingManaged Policies no Guia do usuário do IAM.

Permissões Você deve ser capaz de assumir a função do IAM para registrar o repositório desnapshots. Você também precisa de acesso à ação es:ESHttpPut. Uma maneiracomum de fornecer o acesso é anexar a seguinte política à conta:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/TheSnapshotRole" }, { "Effect": "Allow", "Action": "es:ESHttpPut", "Resource": "arn:aws:es:region:123456789012:domain/my-domain/*" } ]}

Se a conta não tiver permissões iam:PassRole para assumir TheSnapshotRole,você poderá encontrar o seguinte erro comum:

$ python register-repo.py{"Message":"User: arn:aws:iam::123456789012:user/MyUserAccountis not authorized to perform: iam:PassRole on resource:arn:aws:iam::123456789012:role/TheSnapshotRole"}

Registro de um repositório de snapshots manuaisVocê deve registrar o repositório de snapshots com o Amazon Elasticsearch Service antes de poder fazersnapshots de índices manuais. Esta operação única exige que você assine a solicitação da AWS comcredenciais que tenham permissão para acessar TheSnapshotRole, conforme descrito em the sectioncalled “Pré-requisitos do snapshots manuais” (p. 87).

Você não pode usar curl para executar essa operação porque ele não dá suporte à assinatura desolicitação da AWS. Em vez disso, use o cliente do Python de amostra (p. 89), Postman, ou outrométodo para enviar uma solicitação assinada (p. 61) a fim de registrar o repositório de snapshot. Ocabeçalho assume a seguinte forma:

PUT elasticsearch-domain-endpoint/_snapshot/my-snapshot-repo

Versão da API 2015-01-0188

Page 97: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCliente de exemplo Python

{ "type": "s3", "settings": { "bucket": "s3-bucket-name", "region": "region", "role_arn": "arn:aws:iam::123456789012:role/TheSnapshotRole" }}

Registrar um diretório de snapshots é uma operação única, mas para migrar de um domínio para outro, épreciso registrar o repositório de snapshots no domínio antigo e no novo.

Important

Se o bucket do S3 estiver na região us-east-1, você precisará usar "endpoint":"s3.amazonaws.com" em vez de "region": "us-east-1".Para ativar a criptografia no lado do servidor com chaves gerenciadas pelo S3 para o repositóriode snapshots, adicione "server_side_encryption": true ao JSON "settings".

Se o domínio residir em uma VPC, o computador deverá estar conectado à VPC para que a solicitaçãoregistre o repositório de snapshots com êxito. O acesso a uma VPC varia de acordo com a configuração derede, mas geralmente requer uma conexão com VPN ou rede corporativa. Para saber se você pode entrarno domínio do Amazon ES, navegue até https://your-vpc-domain.region.es.amazonaws.comem um navegador da Web e confira se você recebe a resposta JSON padrão.

Cliente de exemplo PythonSalve o seguinte código de exemplo Python como um arquivo Python; por exemplo, register-repo.py.O cliente exige as solicitações AWS SDK para Python (boto3)e os pacotes requests-aws4auth. O clientecontém exemplos comentados para outras operações de snapshot.

Tip

Um exemplo de código baseado em Java está disponível em Assinar solicitações deHTTP (p. 61).

Você deve atualizar as seguintes variáveis no código: host, region, path e payload.

import boto3import requestsfrom requests_aws4auth import AWS4Auth

host = '' # include https:// and trailing /region = '' # e.g. us-west-1service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

# Register repository

path = '_snapshot/my-snapshot-repo' # the Elasticsearch API endpointurl = host + path

payload = { "type": "s3", "settings": { "bucket": "s3-bucket-name", "region": "us-west-1", "role_arn": "arn:aws:iam::123456789012:role/TheSnapshotRole" }}

Versão da API 2015-01-0189

Page 98: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorManual deObtenção de snapshots manuais

headers = {"Content-Type": "application/json"}

r = requests.put(url, auth=awsauth, json=payload, headers=headers)

print(r.status_code)print(r.text)

# # Take snapshot## path = '_snapshot/my-snapshot-repo/my-snapshot'# url = host + path## r = requests.put(url, auth=awsauth)## print(r.text)## # Delete index## path = 'my-index'# url = host + path## r = requests.delete(url, auth=awsauth)## print(r.text)## # Restore snapshots (all indices)## path = '_snapshot/my-snapshot-repo/my-snapshot/_restore'# url = host + path## r = requests.post(url, auth=awsauth)## print(r.text)## # Restore snapshot (one index)## path = '_snapshot/my-snapshot-repo/my-snapshot/_restore'# url = host + path## payload = {"indices": "my-index"}## headers = {"Content-Type": "application/json"}## r = requests.post(url, auth=awsauth, json=payload, headers=headers)## print(r.text)

Manual deObtenção de snapshots manuaisOs snapshots não são instantâneos; eles levam tempo para serem concluídos e não representamexibições pontuais perfeitas do cluster. Enquanto um snapshot está em andamento, você ainda podeindexar documentos e fazer outras solicitações ao cluster, mas novos documentos (e atualizações emdocumentos existentes) geralmente não são incluídos no snapshot. O snapshot inclui estilhaços principaisexistentes quando Elasticsearch iniciou o snapshot. Dependendo do tamanho do grupo de threads desnapshot, diferentes fragmentos podem ser incluídos no snapshot em momentos um pouco diferentes.

Os snapshots do Elasticsearch são incrementais, o que significa que eles armazenam somente dadosque foram alterados desde o último snapshot bem-sucedido. Essa natureza incremental significa quea diferença no uso de disco entre snapshots frequentes e infrequentes normalmente é mínima. Ouseja, criar snapshots por hora por uma semana (em um total de 168 snapshots) pode não usar muito

Versão da API 2015-01-0190

Page 99: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRestauração de snapshots

mais espaço em disco do que criar um único snapshot no final da semana. Além disso, quanto maior afrequência da criação de snapshots, menos tempo eles demoram para serem concluídos. Alguns usuáriosdo Elasticsearch criam snapshots a cada meia hora.

Você especifica duas informações ao criar um snapshot:

• Nome do repositório de snapshots• Nome do snapshot

Os exemplos neste capítulo usam curl, um cliente HTTP comum, por conveniência e brevidade. Porém, seas políticas de acesso especificarem usuários ou funções do IAM, você deverá assinar suas solicitaçõesde snapshot. Você pode usar os exemplos comentados no exemplo de cliente Python (p. 89) para fazersolicitações HTTP assinadas para os mesmos endpoints usados pelos comandos curl.

Para obter um snapshot manualmente

• Execute o comando a seguir para obter um snapshot manualmente:

curl -XPUT 'elasticsearch-domain-endpoint/_snapshot/repository/snapshot-name'

Note

O tempo necessário para obter um snapshot aumenta de acordo com o tamanho do domíniodo Amazon ES. As operações de snapshot de longa duração, às vezes, encontram o seguinteerro: 504 GATEWAY_TIMEOUT. Normalmente, você pode ignorar esses erros e esperar até que aoperação seja concluída com êxito. Use o comando a seguir para verificar o estado de todos ossnapshots de seu domínio:

curl -XGET 'elasticsearch-domain-endpoint/_snapshot/repository/_all?pretty'

Restauração de snapshotsWarning

Se você usar aliases de índice, interrompa as solicitações de gravação para um alias (ou mudeo alias para outro índice) antes de excluir seu índice. Parar as solicitações de gravação ajuda aevitar o seguinte cenário:

1. Você exclui um índice, que também exclui seu alias.2. Uma solicitação de gravação com erro para o alias recém-excluído cria um novo índice com o

mesmo nome do alias.3. Você não pode mais usar o alias devido a um conflito de nomes com o novo índice.

Se você alternou o alias para outro índice, especifique "include_aliases": false aorestaurar a partir de um snapshot.

Para restaurar um snapshot

1. Identifique o snapshot que você deseja restaurar. Para ver todos os repositórios de snapshots,execute o comando a seguir:

curl -XGET 'elasticsearch-domain-endpoint/_snapshot?pretty'

Versão da API 2015-01-0191

Page 100: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRestauração de snapshots

Após identificar o repositório, execute o comando a seguir para ver todos os snapshots:

curl -XGET 'elasticsearch-domain-endpoint/_snapshot/repository/_all?pretty'

Note

A maioria dos snapshots automatizados é armazenada no repositório cs-automated.Se o seu domínio criptografa dados em repouso, eles são armazenados no repositóriocs-automated-enc. Se não encontrar o repositório de snapshots manuais que estavabuscando, confirme se você o registrou (p. 88) no domínio.

2. (Opcional) Exclua ou renomeie todos os índices abertos no domínio do Amazon ES. Você não precisaexecutar esta etapa se você não tiver conflitos de nomenclatura de índices no cluster e de índices nosnapshot.

Você não pode restaurar um snapshot de seus índices para um cluster do Elasticsearch que jácontenha índices com os mesmos nomes. No momento, o Amazon ES não é compatível com a API_close do Elasticsearch. Por isso, você deve usar uma das seguintes alternativas:

• Exclua os índices no mesmo domínio do Amazon ES e restaure o snapshot.• Renomeie os índices à medida que você os restaura a partir do snapshot (p. 148) e, mais tarde,

reindexe-os.• Restaure o snapshot para um domínio diferente do Amazon ES (isso só é possível com snapshots

manuais).

O exemplo a seguir mostra como excluir todos os índices existentes de um domínio:

curl -XDELETE 'elasticsearch-domain-endpoint/_all'

Se você não planeja restaurar todos os índices, talvez você queira excluir apenas um:

curl -XDELETE 'elasticsearch-domain-endpoint/index-name'

3. Para restaurar um snapshot, execute o seguinte comando:

curl -XPOST 'elasticsearch-domain-endpoint/_snapshot/repository/snapshot/_restore'

Devido a permissões especiais no índice .kibana, é provável que as tentativas para restaurar todosos índices falhem, especialmente se você tentar restaurar por meio de um snapshot automatizado.O exemplo a seguir restaura apenas um índice my-index de 2017-snapshot no repositório desnapshots cs-automated:

curl -XPOST 'elasticsearch-domain-endpoint/_snapshot/cs-automated/2017-snapshot/_restore' -d '{"indices": "my-index"}' -H 'Content-Type: application/json'

Note

Se nem todos os estilhaços principais estiverem disponíveis para os índices envolvidos, o statedo snapshot poderá ser PARTIAL. Esse valor indica que os dados de pelo menos um estilhaçonão foram armazenados com êxito. Ainda assim é possível restaurar por meio de um snapshotparcial, mas pode ser necessário usar snapshots mais antigos para restaurar índices ausentes.

Versão da API 2015-01-0192

Page 101: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Como atualizar o ElasticsearchNote

Atualizações da versão Elasticsearch diferem de atualizações de software de serviço. Para obterinformações sobre a atualização do software de serviço do seu domínio Amazon ES, consulteGerenciamento de domínios do Amazon ES (p. 45).

O Amazon ES oferece atualizações do Elasticsearch no local para domínios que executam versões 5.1e posteriores. Se você usa serviços como Amazon Kinesis Data Firehose ou Amazon CloudWatch Logspara transmitir dados para o Amazon ES, verifique se esses serviços são compatíveis com a versão maisrecente do Elasticsearch antes da migração.

No momento, o Amazon ES é compatível com os caminhos de atualização a seguir.

Da versão Para a versão

6.x 6.3

5.6 6.3

Important

Os índices criados na versão 6.x não são mais compatíveis com vários tiposde mapeamento. Índices criados na versão 5.x ainda são compatíveis comvários tipos de mapeamento quando restaurados em um cluster 6.x. Se vocêusa o AWS Lambda, verifique se seu código cria apenas um único tipo demapeamento por índice.Para minimizar o tempo de inatividade durante a atualização do Elasticsearch5.6 para 6.x, o Amazon ES reindexa o índice do .kibana para o .kibana-6,exclui o .kibana, cria um alias chamado .kibana e mapeia o novo índicepara o novo alias.

5.x 5.6

Em essência, você pode mover para a versão mais recente dentro da mesma versão principal (porexemplo, de 5.3 a 5.6) ou da versão mais recente de uma versão principal para a versão mais recente dapróxima versão principal (por exemplo, de 5.6 a 6.3). À medida que as novas versões do Elasticsearch sãodisponibilizadas no Amazon ES, esses caminhos de atualização são alterados.

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

1. Verificações pré-atualização – o Amazon ES realiza uma série de verificações para constatar se háproblemas que podem bloquear uma atualização e não prossegue para a próxima etapa, a menos queessas verificações sejam bem-sucedidas.

2. Snapshot – o Amazon ES faz uma cópia de snapshot do cluster do Elasticsearch e não prossegue paraa próxima etapa, a menos que o snapshot seja bem-sucedido. Se a atualização falhar, o Amazon ESusa esse snapshot para restaurar o cluster ao seu estado original.

3. Atualizar – o Amazon ES inicia a atualização, que pode levar de 15 minutos a várias horas para serconcluída. O Kibana pode estar indisponível durante algumas ou todas as atualizações.

Versão da API 2015-01-0193

Page 102: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorSolução de problemas em uma atualização

Solução de problemas em uma atualizaçãoAs atualizações do Elasticsearch no local exigem domínios íntegros. Seu domínio pode não estarqualificado para uma atualização ou não ser atualizado por vários motivos. A tabela a seguir mostra osproblemas mais comuns.

Problema Descrição

Domínio noprocessamento

O domínio está no meio de uma mudança de configuração. Verifique aqualificação da atualização após a conclusão da operação.

Status de clustervermelho

Um ou mais índices no cluster são vermelhos. Para obter etapas sobrea solução de problemas, consulte the section called “Status de clustervermelho” (p. 144).

Alta taxa de erros O cluster do Elasticsearch está retornando um grande número de erros 5xxao tentar processar solicitações. Geralmente, esse problema é resultado demuitas solicitações de leitura ou gravação simultâneas. Considere reduzir otráfego para o cluster ou dimensionar seu domínio.

Cérebro dividido Cérebro dividido significa que o cluster do Elasticsearch tem mais de umnó principal e foi dividido em dois clusters que nunca se juntarão por contaprópria. Você pode evitar dividir o cérebro usando o número recomendado denós principais dedicados (p. 128). Para ajudar na recuperação do cérebrodividido, entre em contato com AWS Support.

Nó principal nãoencontrado

O Amazon ES não consegue encontrar o nó principal do cluster. Se o domíniousa reconhecimento de zona, uma falha da Zona de disponibilidade pode tercausado a perda de quorum do cluster e a incapacidade de eleger um novonó principal (p. 128). Se o problema não se resolver, entre em contato comAWS Support.

Muitas tarefaspendentes

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 dearmazenamentoprejudicado

O volume de disco de um ou mais nós não está funcionando corretamente.Esse problema geralmente ocorre junto com outros problemas, como umaalta taxa de erros ou muitas tarefas pendentes. Se o problema ocorrerisoladamente e não se resolver, entre em contato com AWS Support.

Problema de chave doKMS

A chave KMS usada para criptografar o domínio está inacessível ou ausente.Para obter mais informações, consulte the section called “Monitoramento dedomínios que criptografam dados em repouso” (p. 136).

Snapshot emandamento

O domínio está tirando um snapshot no momento. Verifique a qualificação daatualização após a conclusão do snapshot. Além disso, verifique se é possívellistar repositórios de snapshots manuais, listar snapshots nesses repositóriose obter snapshots manuais. Se o Amazon ES não conseguir verificar se umsnapshot está em andamento, as atualizações poderão falhar.

Tempo limite ou falhade 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 doElasticsearch. Esse problema pode ocorrer se você migrou os índices de umaversão mais antiga do Elasticsearch, como 2.3. Reindexe os índices e tentenovamente.

Versão da API 2015-01-0194

Page 103: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorIniciar uma atualização

Problema Descrição

Uso elevado do disco O uso de disco para o cluster está acima de 90%. Exclua os dados oudimensione 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 ocluster ou dimensione o domínio e tente novamente.

Problema de alias doKibana

O .kibana já está configurado como um alias e mapeia para um índiceincompatível, provavelmente de uma versão anterior do Kibana. Reindexe etente novamente.

Status do Kibanavermelho

O status do Kibana é vermelho. Tente usar o Kibana quando a atualizaçãofor concluída. Se o status vermelho persistir, resolva-o manualmente e tentenovamente.

Outro problema deserviço do Amazon ES

Problemas com o próprio Amazon ES podem fazer com que seu domínioseja exibido como não qualificado para uma atualização. Se nenhuma dascondições anteriores se aplicar ao seu domínio e o problema persistir pormais de um dia, entre em contato com AWS Support.

Iniciar uma atualizaçãoO processo de atualização é irreversível e não pode ser pausado nem cancelado. Durante umaatualizaçã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 averificação de pré-atualização sem realmente iniciar uma atualização.

Para atualizar um domínio para uma versão posterior do Elasticsearch (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Análise, escolha Elasticsearch Service.3. No painel de navegação, em My domains, escolha o domínio que você deseja atualizar.4. Escolha Upgrade domain (Atualizar domínio).5. Em Operation (Operação), escolha Upgrade (Atualizar), Submit (Enviar) e Continue (Continuar).6. Volte para a guia Overview (Visão geral) e escolha Upgrade status (Atualizar status) para monitorar o

estado da atualização.

Para atualizar um domínio para uma versão posterior do Elasticsearch (CLI e SDK da AWS)

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

• get-compatible-elasticsearch-versions (GetCompatibleElasticsearchVersions)• upgrade-elasticsearch-domain (UpgradeElasticsearchDomain)• get-upgrade-status (GetUpgradeStatus)• get-upgrade-history (GetUpgradeHistory)

Para obter mais informações, consulte AWS CLI Command Reference e Referência sobre a API deconfiguração do Amazon ES (p. 169).

Versão da API 2015-01-0195

Page 104: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComo usar um snapshot para migrar dados

Como usar um snapshot para migrar dadosAs atualizações no local são a maneira mais fácil, rápida e confiável de atualizar um domínio para umaversão posterior do Elasticsearch. Os snapshots são uma boa opção se você precisar migrar de umaversão anterior a 5.1 do Elasticsearch ou quiser 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ãodiferente do Elasticsearch. A maior parte das etapas requer que você crie e restaure os snapshotsde índice manuais. Para obter mais informações sobre esse processo, consulte Como trabalhar comsnapshots de índice (p. 86).

Da versão Para a versão Processo de migração

6.x 6.3 1. Crie um snapshot manual do domínio 6.x.2. Crie um domínio 6.3.3. Restaure o snapshot do domínio original para o domínio

6.3.4. Se você não precisar mais do domínio original, exclua-o.

Do contrário, você continuará a ser cobrado pelo domínio.

5.x 6.x 1. Analise as últimas alterações na versão 6.0 para verificarse você precisa fazer ajustes em seus índices ouaplicativo. Para obter outras considerações, veja a tabelaem Como atualizar o Elasticsearch (p. 93).

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.

5.x 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.

2.3 6.x Os snapshots do Elasticsearch 2.3 não são compatíveis como 6.x. Para migrar seus dados diretamente do 2.3 para o 6.x,você deve recriar manualmente os índices no novo domínio.

Como alternativa, você pode executar as etapas do 2.3 ao 5.xnesta tabela, executar operações _reindex no novo domínio5.x para converter seus índices do 2.3 em índices do 5.x eexecutar as etapas do 5.x ao 6.x.

2.3 5.x 1. Analise as últimas alterações na versão 5.0 para verificarse você precisa fazer ajustes em seus índices ouaplicativo.

Note

O plug-in de migração do Elasticsearch não estádisponível no momento.

Versão da API 2015-01-0196

Page 105: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComo usar um snapshot para migrar dados

Da versão Para a versão Processo de migração2. 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.

1.5 5.x Os snapshots do Elasticsearch 1.5 não são compatíveis como 5.x. Para migrar seus dados do 1.5 para o 5.x, você deverecriar manualmente os índices no novo domínio.

Important

Os snapshots do 1.5 são compatíveis com os do 2.3,mas os domínios do Amazon ES 2.3 não comportama operação _reindex. Como você não podereindexá-los, os índices originados em um domínio1.5 ainda assim não conseguem ser restaurados desnapshots do 2.3 para domínios do 5.x.

1.5 2.3 1. Use o plugin _plugin/migration do Elasticsearchpara descobrir se você pode atualizar diretamente para aversão 2.3. Talvez você precise alterar seus dados antesde migrar.a. Em um navegador da web, abra

http://domain_endpoint/_plugin/migration/.b. Escolha Run checks now.c. 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.

Versão da API 2015-01-0197

Page 106: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorKibana

Kibana e LogstashEste capítulo descreve alguns fatores relacionados ao uso do Kibana e Logstash com o AmazonElasticsearch Service.

Tópicos• Kibana (p. 98)• Carregamento de grandes volumes de dados com plug-in do Logstash (p. 101)

KibanaO Kibana é uma conhecida ferramenta de visualização de código aberto projetada para funcionar com oElasticsearch. O Amazon ES oferece uma instalação padrão do Kibana com cada domínio do Amazon ES.Você pode encontrar um link para o Kibana em seu painel de domínio no console do Amazon ES. O URLé elasticsearch-domain-endpoint/_plugin/kibana/. As consultas que usam essa instalaçãopadrão do Kibana têm tempo limite de 60 segundos.

As seções a seguir abordam alguns casos de uso comuns do Kibana:

• the section called “Controlar acesso ao Kibana” (p. 98)• the section called “Configurar o Kibana para usar um servidor de mapas WMS” (p. 100)• the section called “Conexão de um servidor Kibana local com o Amazon ES” (p. 101)

Controlar acesso ao KibanaO Kibana não dá suporte nativo a usuários e funções do IAM, mas o Amazon ES oferece diversassoluções para controlar o acesso ao Kibana:

Configuração do domínio Opções de controle do acesso

Acesso público • Configure Autenticação para o Kibana (p. 103).• Configure uma política de acesso baseada em IP (p. 34),

com ou sem um servidor de proxy (p. 98).

Acesso à VPC • Configure Autenticação para o Kibana (p. 103).• Configure uma política de acesso aberto, com ou sem um

servidor de proxy, e use security groups para controlar oacesso. Para saber mais, consulte the section called “Sobrepolíticas de acesso em domínios da VPC” (p. 118).

Usar um proxy para acessar o Amazon ES do KibanaNote

Esse processo só será aplicável se o domínio usar acesso público e você não quiser usarAutenticação para o Kibana (p. 103). Consulte the section called “Controlar acesso aoKibana” (p. 98).

Como o Kibana é um aplicativo JavaScript, as solicitações são originadas no endereço IP do usuário. Ocontrole de acesso baseado em IP pode ser impraticável devido ao grande número de endereços IP que

Versão da API 2015-01-0198

Page 107: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorControlar acesso ao Kibana

você precisaria inserir em uma lista de permissões para que cada usuário tivesse acesso ao Kibana. Umasolução é colocar um servidor de proxy entre o Kibana e o Amazon ES. Em seguida, você pode adicionaruma política de acesso com base em IP que permite solicitações de apenas um endereço IP, o do proxy. Odiagrama a seguir mostra essa configuração.

1. Este é o seu Amazon ES domínio. O IAM fornece acesso autorizado para este domínio. Uma política deacesso adicional com base em IP fornece acesso ao servidor de proxy.

2. Esse é o servidor de proxy, em execução em uma instância do Amazon EC2.3. Outros aplicativos podem usar o processo de assinatura do Signature versão 4 para enviar solicitações

autenticadas para o Amazon ES.4. Os clientes do Kibana se conectam ao seu domínio do Amazon ES através do proxy.

Para habilitar esse tipo de configuração, você precisa de uma política com base em recursos queespecifica funções e endereços IP. Aqui está um exemplo de política:

{ "Version": "2012-10-17", "Statement": [{ "Resource": "arn:aws:es:us-west-2:111111111111:domain/my-domain/*", "Principal": { "AWS": "arn:aws:iam::111111111111:role/allowedrole1" },

Versão da API 2015-01-0199

Page 108: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfigurar o Kibana para usar um servidor de mapas WMS

"Action": [ "es:ESHttpGet" ], "Effect": "Allow" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:*", "Condition": { "IpAddress": { "aws:SourceIp": [ "123.456.789.123" ] } }, "Resource": "arn:aws:es:us-west-2:111111111111:domain/my-domain/*" } ]}

Recomendamos configurar a instância do EC2 executando o servidor de proxy com um endereço IPelástico. Dessa forma, você pode substituir a instância quando necessário e ainda anexar o mesmoendereço IP público. Para saber mais, consulte Endereços IP elásticos no Guia do usuário do AmazonEC2 para instâncias do Linux.

Se usar um servidor de proxy e Autenticação para o Kibana (p. 103), você poderá precisar adicionarconfigurações do Kibana e do Amazon Cognito para evitar erros redirect_mismatch. Veja o exemplonginx.conf a seguir:

server { listen 443;

location /login { proxy_pass https://$cognito_host/login; proxy_cookie_domain $cognito_host $proxy_host; proxy_redirect https://$kibana_host https://$proxy_host; }

location / { proxy_pass https://$kibana_host; proxy_redirect https://$cognito_host https://$proxy_host; proxy_cookie_domain $kibana_host $proxy_host; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; }}

$cognito_host=your-cognito-domain-name.auth.us-west-2.amazoncognito.com$kibana_host=your-es-domain.us-west-2.es.amazonaws.com$proxy_host=your-proxy-server.us-west-2.compute.amazonaws.com

Configurar o Kibana para usar um servidor de mapasWMSDevido a restrições de licenciamento, a instalação padrão do Kibana em domínios do Amazon ES queusam o Elasticsearch 5.x ou posterior não inclui um servidor de mapas para visualizações de mapas em

Versão da API 2015-01-01100

Page 109: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConexão de um servidor Kibana local com o Amazon ES

blocos. Use o procedimento a seguir para configurar o Kibana para usar um servidor de mapas Web MapService (WMS).

Para configurar o Kibana para usar um servidor de mapas WMS:

1. Abra o Kibana. Você pode encontrar um link para o Kibana no resumo do domínio em https://console.aws.amazon.com/es/.

2. Escolha Management.3. Escolha Advanced Settings.4. Localize visualization:tileMap:WMSdefaults e escolha o botão edit para modificar o valor padrão.5. Altere enabled para true e url para o URL de um servidor de mapas WMS válido.6. (Opcional) Localize visualization:tileMap:WMSdefaults e escolha o botão edit para modificar o valor

padrão.7. (Opcional) Altere "layers": "0" para a lista de camadas de mapa separadas por vírgula que você

deseja exibir. As camadas variam de acordo com o serviço de mapa. O valor padrão 0 normalmente éapropriado.

8. Escolha o botão save.

Para aplicar o novo valor padrão a visualizações, pode ser necessário recarregar o Kibana.

Note

Os serviços de mapa costumam ter taxas ou restrições de licenciamento. Você será responsávelpor todos esses fatores em qualquer servidor de mapas que especificar. Você pode encontrar osserviços de mapa em U.S. Geological Survey, útil para testes.

Conexão de um servidor Kibana local com o AmazonESSe você tiver investido um tempo significativo para configurar sua instância do Kibana, poderá usá-la nolugar da (ou adicionalmente à) instância padrão do Kibana fornecida pelo Amazon ES.

Para se conectar a um servidor Kibana local com o Amazon ES:

• Faça as seguintes alterações em config/kibana.yml:

kibana_index: ".kibana-5"elasticsearch_url: "http://elasticsearch_domain:80"

Você deve usar o prefixo http e especificar explicitamente a porta 80.

Carregamento de grandes volumes de dados complug-in do Logstash

O Logstash é uma alternativa conveniente para usar a API bulk para fazer upload de dados para seudomínio do Amazon ES com o plug-in do S3. Além disso, o serviço oferece suporte a todos os outrosplug-ins de entrada padrão do Logstash que são fornecidos pelo Elasticsearch. O Amazon ES comportatambém dois plug-ins de saída do Logstash: o plug-in padrão Elasticsearch e o plug-in logstash-output-amazon-es, que assina e exporta eventos do Logstash para o Amazon ES.

Versão da API 2015-01-01101

Page 110: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCarregamento de grandes volumesde dados com plug-in do Logstash

Você deve instalar sua própria instância local do Logstash e fazer as seguintes alterações no arquivo deconfiguração do Logstash para ativar a interação com o Amazon ES.

Campo deConfiguração

Plugin de entrada |saída

Descrição

bucket Entrada Especifica o bucket do Amazon S3 que contém osdados que você deseja carregar em um domínio doAmazon ES.

region Entrada Especifica a região da AWS onde reside o bucket doAmazon S3.

hosts Resultado Especifica o endpoint de serviço para o domínio dedestino do Amazon ES.

ssl Resultado Especifica se é necessário usar SSL para se conectarao Amazon ES.

Este exemplo configura o Logstash para fazer o seguinte:

• Atribuir o plug-in de saída a um endpoint do Amazon ES.• Atribuir o plug-in de entrada ao bucket wikipedia-stats-log no S3.• Usar SSL para se conectar ao Amazon ES.

input{ s3 { bucket => "wikipedia-stats-log" access_key_id => "lizards" secret_access_key => "lollipops" region => "us-east-1" }}output{ elasticsearch { hosts => "search-logs-demo0-cpxczkdpi4bkb4c44g3csyln5a.us-east-1.es.example.com" ssl => true }}

Note

A solicitação de serviço no exemplo anterior deve ser assinada. Para mais informações sobreassinatura de solicitações, consulte the section called “Criar e assinar as solicitações AmazonES” (p. 35). Use o plug-in de saída logstash-output-amazon-es para assinar e exportar eventos doLogstash para o Amazon ES. Para obter instruções, consulte o plugin README.

Versão da API 2015-01-01102

Page 111: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPré-requisitos

Autenticação do Amazon Cognitopara o Kibana

O Amazon Elasticsearch Service usa o Amazon Cognito para oferecer proteção de nome de usuário esenha para o Kibana (p. 98). Esse recurso de autenticação é opcional e disponível apenas para domíniosque usam o Elasticsearch 5.1 ou posterior. Se você não configurar a autenticação do Amazon Cognito,ainda poderá proteger o Kibana usando uma política de acesso baseada em IP (p. 34) e um servidor deproxy (p. 98).

Grande parte do processo de autenticação ocorre no Amazon Cognito, mas este capítulo oferece diretrizese requisitos para configurar recursos do Amazon Cognito para trabalhar com domínios do Amazon ES. Adefinição de preço padrão se aplica a todos os recursos do Amazon Cognito.

Tip

Na primeira vez que você configurar um domínio para usar a autenticação do AmazonCognito para o Kibana, recomendamos usar o console. Os recursos do Amazon Cognito sãoextremamente personalizáveis, e o console pode ajudar você a identificar e compreender osrecursos que são importantes para você.

Tópicos• Pré-requisitos (p. 103)• Configuração de um domínio do Amazon ES (p. 105)• Permitir a função autenticada (p. 107)• Configurar provedores de identidade (p. 108)• (Opcional) Configuração de acesso granular (p. 109)• (Opcional) Como personalizar a página de login (p. 111)• (Opcional) Configurar recursos de segurança avançada (p. 111)• no dispositivo (p. 111)• Limites (p. 112)• Problemas de configuração comuns (p. 112)• Desabilitar a autenticação do Amazon Cognito para o Kibana (p. 114)• Excluir domínios que usam a autenticação do Amazon Cognito para o Kibana (p. 115)

Pré-requisitosAntes de configurar a autenticação do Amazon Cognito para o Kibana, você deve atender a vários pré-requisitos. O console do Amazon ES ajuda a simplificar a criação desses recursos, mas compreender afinalidade de cada recurso ajuda na configuração e na solução de problemas. A autenticação do AmazonCognito para o Kibana requer os seguintes recursos:

• Grupo de usuários do Amazon Cognito• Grupo de identidades do Amazon Cognito

Versão da API 2015-01-01103

Page 112: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorSobre o grupo de usuários

• Função do IAM com a política AmazonESCognitoAccess anexada

Note

Os grupos de usuários e identidades devem estar na mesma região da AWS. Você pode usar omesmo grupo de usuários, grupo de identidades e a função do IAM para adicionar a autenticaçãodo Amazon Cognito para o Kibana para vários domínios do Amazon ES. Para saber mais,consulte the section called “Limites” (p. 112).

Sobre o grupo de usuáriosOs grupos de usuários têm dois recursos principais: criar e gerenciar um diretório de usuários e permitirque os usuários se cadastrem e façam login. Para obter instruções sobre como criar um grupo de usuários,consulte Criar um grupo de usuários no Guia do desenvolvedor do Amazon Cognito.

Ao criar um grupo de usuários para usar com o Amazon ES, considere o seguinte:

• O grupo de usuários do Amazon Cognito deve ter um nome de domínio. O Amazon ES usa esse nomede domínio para redirecionar os usuários para uma página de login para acessar o Kibana. Além de umnome de domínio, o grupo de usuários não exige qualquer configuração não padrão.

• Você deve especificar os atributos padrão necessários do grupo — como nome, data de nascimento,endereço de e-mail e número de telefone. Você não pode alterar esses atributos depois de criar o grupode usuários. Portanto, escolha os atributos importantes para você neste momento.

• Ao criar seu grupo de usuários, escolha se os usuários podem criar suas próprias contas, a segurançamínima da senha para contas e se deseja habilitar a autenticação multifator. Se você planeja usarum provedor de identidade externo, essas configurações são não têm qualquer consequência.Tecnicamente, você pode habilitar o grupo de usuários como um provedor de identidade e habilitar umprovedor de identidade externo, mas a maioria das pessoas prefere um ou o outro.

Os IDs de grupo de usuários assumem a forma de region_ID. Se você planeja usar a CLI da AWS ou umSDK da AWS para configurar o Amazon ES, anote o ID.

Sobre o grupo de identidadesOs grupos de identidades permitem que você atribua funções temporárias e de privilégio limitado ausuários depois que eles fazem login. Para obter instruções sobre como criar um grupo de identidades,consulte Grupos de identidades no Guia do desenvolvedor do Amazon Cognito. Ao criar um grupo deidentidades para usar com o Amazon ES, considere o seguinte:

• Se você usar o console do Amazon Cognito, deve marcar a caixa de seleção Enable access tounauthenticated identities (Permitir acesso a identidades não autenticadas) para criar o grupode identidades. Depois que você criar o grupo de identidades e configurar o domínio do AmazonES (p. 105), o Amazon Cognito desabilitará essa configuração.

• Você não precisa adicionar provedores de identidade externos ao grupo de identidades. Quando vocêconfigurar o Amazon ES para usar a autenticação do Amazon Cognito, ele configurará o grupo deidentidades para usar o grupo de usuários que você acabou de criar.

• Depois de criar o grupo de identidades, você deve escolher as funções do IAM autenticadas e nãoautenticadas. Essas funções especificam as políticas de acesso que os usuários têm antes e depoisde fazer login. Se você usar o console do Amazon Cognito ele poderá criar essas funções para você.Depois de criar a função autenticada, anote o nome de recurso da Amazon (ARN), que tem o formato dearn:aws:iam::123456789012:role/Cognito_identitypoolAuth_Role.

Os IDs de grupo de identidades assumem a forma de region:ID-ID-ID-ID-ID. Se você planeja usar aCLI da AWS ou um SDK da AWS para configurar o Amazon ES, anote o ID.

Versão da API 2015-01-01104

Page 113: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorSobre a função do IAM

Sobre a função do IAMO Amazon ES precisa de permissões para configurar os usuários do Amazon Cognito e os grupos deidentidades e usá-los para autenticação. Você pode usar a política AmazonESCognitoAccess, que éuma política gerenciada pela AWS para essa finalidade. Se você usar o console para criar ou configurar odomínio do Amazon ES, ele criará uma função do IAM para você e anexará essa política à função.

Se você usar a AWS CLI ou um dos SDKs da AWS, deverá criar sua própria função, anexar a política eespecificar o nome de recurso da Amazon (ARN) para essa função ao configurar o domínio do AmazonES. A função deve ter a seguinte relação de confiança:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Para obter instruções, consulte Como criar uma função para delegar permissões a um serviço da AWS eComo anexar e desanexar políticas do IAM no Guia do usuário do IAM.

Configuração de um domínio do Amazon ESDepois de concluir os pré-requisitos, você pode configurar um domínio do Amazon ES para usar o AmazonCognito para o Kibana.

Note

O Amazon Cognito não está disponível em todas as regiões da AWS. Para obter uma lista deregiões compatíveis, consulte Regiões e endpoints da AWS. Para o Amazon Cognito, você nãoprecisa usar a mesma região que você usa para o Amazon ES.

Como configurar a autenticação do Amazon Cognito(console)Como ele cria a função do IAM (p. 105) para você, o console oferece a experiência de configuraçãomais simples. Além das permissões padrão do Amazon ES, você precisa do seguinte conjunto mínimo depermissões para usar o console para criar um domínio que usa a autenticação do Amazon Cognito para oKibana:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy",

Versão da API 2015-01-01105

Page 114: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComo configurar a autenticaçãodo Amazon Cognito (console)

"ec2:DescribeVpcs", "cognito-identity:ListIdentityPools", "cognito-idp:ListUserPools" ], "Resource": "*" } ]}

Se a função do IAM (p. 105) já existir, você precisará de um número menor de permissões:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "cognito-identity:ListIdentityPools", "cognito-idp:ListUserPools" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "arn:aws:iam::123456789012:role/CognitoAccessForAmazonES" } ]}

Para configurar a autenticação do Amazon Cognito para o Kibana (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.3. No painel de navegação, em My domains, escolha o domínio que você deseja configurar.4. Escolha Configure cluster.5. Em Kibana authentication (Autenticação do Kibana), escolha Enable Amazon Cognito for

authentication (Habilitar o Amazon Cognito para autenticação).6. Em Region (Região), selecione a região que contém o grupo de usuários do Amazon Cognito e o

grupo de identidades.7. Em Cognito User Pool (Grupo de usuários do Cognito), selecione um grupo de usuários ou crie um.

Para obter orientações, consulte the section called “Sobre o grupo de usuários” (p. 104).8. Em Cognito Identity Pool (Grupo de identidades do Cognito), selecione um grupo de identidades ou

crie um. Para obter orientações, consulte the section called “Sobre o grupo de identidades” (p. 104).

Note

Os links Criar novo grupo de usuários e Criar novo grupo de identidades direcionam vocêpara o console do Amazon Cognito e exigem que você crie esses recursos manualmente.O processo não é automático. Para saber mais, consulte the section called “Pré-requisitos” (p. 103).

9. Em IAM Role (Função do IAM), use o valor padrão (recomendado) ou digite um novo nome.Para saber mais sobre o propósito desta função, consulte the section called “Sobre a função doIAM” (p. 105).

10. Selecione Enviar.

Versão da API 2015-01-01106

Page 115: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComo configurar a autenticaçãodo Amazon Cognito (AWS CLI)

Depois que o seu domínio concluir o processamento, consulte the section called “Permitir a funçãoautenticada” (p. 107) e the section called “Configurar provedores de identidade” (p. 108) para ver asetapas de configuração adicionais.

Como configurar a autenticação do Amazon Cognito(AWS CLI)Use o parâmetro --cognito-options para configurar o domínio do Amazon ES. A sintaxe a seguiré usada pelos comandos create-elasticsearch-domain e update-elasticsearch-domain-config:

--cognito-options Enabled=true,UserPoolId="user-pool-id",IdentityPoolId="identity-pool-id",RoleArn="arn:aws:iam::123456789012:role/CognitoAccessForAmazonES"

Exemplo

O exemplo a seguir cria um domínio na região us-east-1 que habilita a autenticação do Amazon Cognitopara o Kibana usando a função CognitoAccessForAmazonES e fornece acesso ao domínio paraCognito_Auth_Role:

aws es create-elasticsearch-domain --domain-name my-domain --region us-east-1 --access-policies '{ "Version":"2012-10-17", "Statement":[{"Effect":"Allow","Principal":{"AWS": ["arn:aws:iam::123456789012:role/Cognito_Auth_Role"]},"Action":"es:ESHttp*","Resource":"arn:aws:es:us-east-1:123456789012:domain/*" }]}' --elasticsearch-version "6.0" --elasticsearch-cluster-config InstanceType=m4.xlarge.elasticsearch,InstanceCount=1 --ebs-options EBSEnabled=true,VolumeSize=10 --cognito-options Enabled=true,UserPoolId="us-east-1_123456789",IdentityPoolId="us-east-1:12345678-1234-1234-1234-123456789012",RoleArn="arn:aws:iam::123456789012:role/CognitoAccessForAmazonES"

Depois que o seu domínio concluir o processamento, consulte the section called “Permitir a funçãoautenticada” (p. 107) e the section called “Configurar provedores de identidade” (p. 108) para ver asetapas de configuração adicionais.

Como configurar a autenticação Amazon Cognito(SDKs da AWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) são compatíveis com todas asoperações definidas na Referência sobre a API de configuração do Amazon ES (p. 169),incluindo o parâmetro CognitoOptions para as operações CreateElasticsearchDomain eUpdateElasticsearchDomainConfig. Para obter mais informações sobre instalação e uso de SDKsda AWS, consulte AWS Software Development Kits.

Depois que o seu domínio concluir o processamento, consulte the section called “Permitir a funçãoautenticada” (p. 107) e the section called “Configurar provedores de identidade” (p. 108) para ver asetapas de configuração adicionais.

Permitir a função autenticadaPor padrão, a função do IAM autenticada que você configurou seguindo as diretrizes em the section called“Sobre o grupo de identidades” (p. 104) não tem os privilégios necessários para acessar o Kibana. Vocêdeve fornecer permissões adicionais à função.

Versão da API 2015-01-01107

Page 116: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfigurar provedores de identidade

Você pode incluir essas permissões em uma política baseada em identidade (p. 33), mas, a menosque você deseje que os usuários autenticados tenham acesso a todos os domínios do Amazon ES, aabordagem mais comum é uma política baseada em recurso (p. 31):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/Cognito_identitypoolAuth_Role" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:123456789012:domain/domain-name/*" } ]}

Para obter instruções sobre como adicionar uma política baseada em recurso para um domínio do AmazonES, consulte the section called “Configuração de políticas de acesso” (p. 22).

Configurar provedores de identidadeQuando você configura um domínio para usar a autenticação do Amazon Cognito para o Kibana, oAmazon ES adiciona um cliente do aplicativo ao grupo de usuários e adiciona o grupo de usuários aogrupo de identidades como um provedor de autenticação. A captura de tela a seguir mostra a página Appclient settings (Configurações do cliente do aplicativo) no console do Amazon Cognito.

Warning

Não renomeie nem exclua o cliente do aplicativo.

Dependendo de como você configurou o grupo de usuários, talvez precise criar contas de usuáriomanualmente ou os usuários podem ser capazes de criar suas próprias contas. Se essas configurações

Versão da API 2015-01-01108

Page 117: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor(Opcional) Configuração de acesso granular

forem aceitáveis, você não precisará realizar ações adicionais. No entanto, muitas pessoas preferem usarprovedores de identidade externos.

Para habilitar um provedor de identidade SAML 2.0, você deve fornecer um documento de metadadosdo SAML. Para habilitar provedores de identidades sociais, como o Login with Amazon, o Facebook e oGoogle, você deve ter um ID e um segredo do aplicativo a partir desses provedores. Você pode habilitarqualquer combinação de provedores de identidade. A página de login adiciona opções conforme vocêadiciona provedores, como mostra a captura de tela a seguir.

A maneira mais fácil de configurar seu grupo de usuários é usar o console do Amazon Cognito. Use apágina Identity Providers (Provedores de identidade) para adicionar provedores de identidade externos ea página App client settings (Configurações do cliente do aplicativo) para habilitar e desabilitar provedoresde identidade para o cliente de aplicativo do domínio do Amazon ES. Por exemplo, talvez você queirahabilitar o seu próprio provedor de identidade SAML e desabilitar Cognito User Pool (Grupo de usuários doCognito) como um provedor de identidade.

Para obter instruções, consulte Uso da federação a partir de um grupo de usuários e Especificaçãodas configurações do provedor de identidade para seu aplicativo de grupo de usuários no Guia dodesenvolvedor do Amazon Cognito.

(Opcional) Configuração de acesso granularTalvez você tenha notado que as configurações padrão do grupo de identidades atribui todos os usuárioque fazem log in na mesma função do IAM (Cognito_identitypoolAuth_Role). Isso significa quetodos os usuários podem acessar os mesmos recursos da AWS. Se quiser um controle de acesso maisgranular (por exemplo, se você deseja que os analistas de sua organização tenham acesso a todos os oitodomínios do Amazon ES, mas todos os outros usuários tenham acesso a apenas cinco deles), você temduas opções:

• Criar grupos de usuários e configurar seu provedor de identidade para escolher a função do IAM combase no token de autenticação do usuário.

• Configurar o provedor de identidade para escolher a função do IAM com base em uma ou mais regras.

Você configura essas opções usando a página Edit identity pool (Editar grupo de identidades) do consoledo Amazon Cognito, como mostrado na captura de tela a seguir.

Versão da API 2015-01-01109

Page 118: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorGrupos de usuários e tokens

Grupos de usuários e tokensQuando você cria um grupo de usuários, escolhe uma função do IAM para os membros do grupo. Paraobter informações sobre a criação de grupos, consulte Grupos de usuários no Guia do desenvolvedor doAmazon Cognito.

Versão da API 2015-01-01110

Page 119: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRegras

Depois de criar um ou mais grupos de usuários, você pode configurar o provedor de autenticação paraatribuir aos usuários suas funções de grupo em vez da função padrão do grupo de identidades. Escolhaa opção Choose role from token (Escolher função a partir do token). Em seguida, escolha Use defaultAuthenticated role (Usar função autenticada padrão) ou DENY (NEGAR) para especificar como o grupo deidentidades deve lidar com usuários que não fazem parte de um grupo.

RegrasAs regras são essencialmente uma série de instruções if que o Amazon Cognito avalia em sequência.Por exemplo, se um endereço de e-mail do usuário contém @corporate, o Amazon Cognito atribuiRole_A a esse usuário. Se um endereço de e-mail do usuário contém @subsidiary, esse usuário éatribuído a Role_B. Caso contrário, ele atribui ao usuário a função autenticada padrão.

Para saber mais, consulte Uso do mapeamento com base em regra para atribuir funções a usuários noGuia do desenvolvedor do Amazon Cognito.

(Opcional) Como personalizar a página de loginA página UI customization (Personalização da interface) do console do Amazon Cognito permite quevocê faça upload de um logotipo personalizado e faça alterações do CSS na página de login. Para obterinstruções e uma lista completa das propriedades do CSS, consulte Especificação das configurações depersonalização de interface do usuário do aplicativo para seu grupo de usuários no Guia do desenvolvedordo Amazon Cognito.

(Opcional) Configurar recursos de segurançaavançada

Os grupos de usuários do Amazon Cognito são compatíveis com recursos de segurança avançada, comoa autenticação multifator, a verificação de credenciais comprometidas e a autenticação adaptável. Parasaber mais, consulte Gerenciar segurança no Guia do desenvolvedor do Amazon Cognito.

no dispositivoDepois que você estiver satisfeito com sua configuração, verifique se a experiência do usuário atende àssuas expectativas.

Para acessar o Kibana

1. Vá para https://elasticsearch-domain/_plugin/kibana/ em um navegador.2. Faça login usando suas credenciais preferenciais.3. Depois que o Kibana for carregado, configure pelo menos um padrão de índice. O Kibana usa esses

padrões para identificar quais índices você deseja analisar. Digite *, escolha Next step (Próximaetapa) e, em seguida, Create index pattern (Criar padrão de índice).

4. Para pesquisar ou explorar seus dados, escolha Discover (Descobrir).

Se qualquer etapa desse processo falhar, consulte the section called “Problemas de configuraçãocomuns” (p. 112) para obter informações sobre soluções de problemas.

Versão da API 2015-01-01111

Page 120: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorLimites

LimitesO Amazon Cognito tem limites flexíveis em muitos dos seus recursos. Se você quiser habilitar aautenticação do Kibana para um grande número de domínios do Amazon ES, revise Limites do AmazonCognito e solicitar aumentos de limite, conforme necessário.

Cada domínio do Amazon ES adiciona um cliente de aplicativo ao grupo de usuários, que adiciona umprovedor de autenticação ao grupo de identidades. Se você habilitar a autenticação do Kibana para maisde 10 domínios, poderá encontrar o limite "máximo de provedores do grupo de usuários do AmazonCognito por grupo de identidades". Se você exceder um limite, qualquer domínio do Amazon ES que tentarconfigurar para usar a autenticação do Amazon Cognito para o Kibana pode ficar preso em um estado deconfiguração de processamento.

Problemas de configuração comunsAs tabelas a seguir listam os problemas de configuração comuns e as soluções.

Configurar o Amazon ES

Problema Solução

Amazon ES can't create therole (console)

Você não tem as permissões corretas do IAM. Adicioneas permissões especificadas em the section called“Como configurar a autenticação do Amazon Cognito(console)” (p. 105).

User is notauthorized to perform:iam:PassRole on resourceCognitoAccessForAmazonES(console)

Você não tem as iam:PassRole permissões para a funçãodo IAM (p. 105). Anexe a política a seguir à sua conta:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::123456789012:role/service-role/CognitoAccessForAmazonES" } ]}

Como alternativa, você pode anexar a políticaIAMFullAccess.

User is not authorizedto perform: cognito-identity:ListIdentityPools onresource

Você não tem permissões de leitura para o Amazon Cognito.Anexe a política AmazonCognitoReadOnly à sua conta.

An error occurred(ValidationException)when calling theCreateElasticsearchDomainoperation: Amazon

O Amazon ES não é especificado na relação de confiançada função do IAM. Verifique se a sua função usa a relaçãode confiança especificada em the section called “Sobre afunção do IAM” (p. 105). Como alternativa, use o console

Versão da API 2015-01-01112

Page 121: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorProblemas de configuração comuns

Problema SoluçãoElasticsearch must be allowedto use the passed role

para configurar a autenticação do Amazon Cognito. O consolecria uma função para você.

An error occurred(ValidationException)when calling theCreateElasticsearchDomainoperation: User is notauthorized to perform:cognito-idp:action onresource: user pool

A função especificada em --cognito-options não tempermissões para acessar o Amazon Cognito. Verifique se afunção tem a política AmazonESCognitoAccess gerenciadapela AWS anexada. Como alternativa, use o console paraconfigurar a autenticação do Amazon Cognito. O console criauma função para você.

An error occurred(ValidationException)when calling theCreateElasticsearchDomainoperation: User pool does notexist

O Amazon ES não consegue encontrar o grupo de usuários.Confirme se você criou um e se tem o ID correto. Paraencontrar o ID, você pode usar o console do Amazon Cognitoou o seguinte comando da AWS CLI:

aws cognito-idp list-user-pools --max-results 60 --region region

An error occurred(ValidationException)when calling theCreateElasticsearchDomainoperation: IdentityPool notfound

O Amazon ES não consegue encontrar o grupo deidentidades. Confirme se você criou um e se tem o ID correto.Para encontrar o ID, você pode usar o console do AmazonCognito ou o seguinte comando da AWS CLI:

aws cognito-identity list-identity-pools --max-results 60 --region region

An error occurred(ValidationException)when calling theCreateElasticsearchDomainoperation: Domain needs to bespecified for user pool

O grupo de usuários não tem um nome de domínio. Vocêpode configurar um usando o console do Amazon Cognito ouo seguinte comando da AWS CLI:

aws cognito-idp create-user-pool-domain --domain name --user-pool-id id

Acesso ao Kibana

Problema Solução

A página de login não mostra meusprovedores de identidade preferenciais.

Verifique se você habilitou o provedor de identidadepara o cliente de aplicativo do Amazon ES, conformeespecificado em the section called “Configurar provedores deidentidade” (p. 108).

A página de login não parece estarassociada à minha organização.

Consulte the section called “(Opcional) Como personalizar apágina de login” (p. 111).

Minhas credenciais de login nãofuncionam.

Verifique se você configurou o provedor de identidadeconforme especificado em the section called “Configurarprovedores de identidade” (p. 108).

Se você usar o grupo de usuários como seu provedor deidentidade, verifique se a conta existe e está confirmada na

Versão da API 2015-01-01113

Page 122: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDesabilitar a autenticação do

Amazon Cognito para o Kibana

Problema Soluçãopágina User and groups (Usuários e grupos) do console doAmazon Cognito.

O Kibana não está carregando ou nãoestá funcionando corretamente.

A função autenticada do Amazon Cognito precisa depermissões es:ESHttp* para o domínio (/*) a fim deacessar e usar o Kibana. Verifique se você adicionou umapolítica de acesso conforme especificado em the sectioncalled “Permitir a função autenticada” (p. 107).

Invalid identity poolconfiguration. Check assignedIAM roles for this pool.

O Amazon Cognito não consegue assumir a funçãoautenticada. Se você tiver usado uma função preexistente emvez de criar uma nova para o grupo de identidades, modifiquea relação de confiança para a função autenticada:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity" } ]}

Como alternativa, você pode criar uma nova função usando oconsole do Amazon Cognito.

Token is not from a supportedprovider of this identitypool.

Este erro incomum pode ocorrer quando você remover ocliente do aplicativo a partir do grupo de usuários. Tente abriro Kibana em uma nova sessão do navegador.

Desabilitar a autenticação do Amazon Cognito parao Kibana

Use o procedimento a seguir para desabilitar a autenticação do Amazon Cognito para o Kibana.

Para desabilitar a autenticação do Amazon Cognito para o Kibana (console)

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.3. No painel de navegação, em My domains, escolha o domínio que você deseja configurar.4. Escolha Configure cluster.5. Em Kibana authentication (Autenticação do Kibana), desmarque a caixa de seleção Enable Amazon

Cognito for authentication (Habilitar o Amazon Cognito para autenticação).6. Selecione Enviar.

Versão da API 2015-01-01114

Page 123: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorExcluir domínios que usam a autenticação

do Amazon Cognito para o Kibana

Important

Se você não precisar mais do grupo de usuários do Amazon Cognito e do grupo de identidades,exclua-os. Do contrário, você pode continuar a ser cobrado.

Excluir domínios que usam a autenticação doAmazon Cognito para o Kibana

Para evitar que domínios que usem a autenticação do Amazon Cognito para o Kibana fiquem presos emum estado de configuração de Processing (Processamento), exclua domínios do Amazon ES antes deexcluir os grupos de usuários e identidades do Amazon Cognito associados.

Versão da API 2015-01-01115

Page 124: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Suporte a VPC para domínios doAmazon Elasticsearch Service

Uma virtual private cloud (VPC) é uma rede virtual dedicada à sua conta da AWS. Ela é isolada de maneiralógica das outras redes virtuais na Nuvem AWS. Você pode executar recursos da AWS, como domínios doAmazon ES, em sua VPC.

Colocar um domínio do Amazon ES em uma VPC permite uma comunicação segura entre o Amazon ESe os outros serviços na VPC, sem a necessidade de um gateway da Internet, dispositivo NAT ou conexãoVPN. Todo o tráfego permanece com segurança na Nuvem AWS. Devido ao seu isolamento lógico, osdomínios que residem em uma VPC contam com uma camada adicional de segurança se comparados aosdomínios que utilizam endpoints públicos.

Para oferecer suporte a VPCs, o Amazon ES coloca um endpoint em uma ou duas sub-redes da VPC.Uma sub-rede é uma gama de endereços IP na VPC. Se você habilitar o reconhecimento da zona (p. 48)para o seu domínio, o Amazon ES colocará um endpoint em duas sub-redes. As sub-redes devem estarem zonas de disponibilidade diferentes na mesma região. Se você não habilitar o reconhecimento da zona,o Amazon ES colocará um endpoint somente em uma sub-rede.

A ilustração a seguir mostra a arquitetura da VPC quando o reconhecimento da zona não está ativado.

A ilustração a seguir mostra a arquitetura da VPC quando o reconhecimento da zona está ativado.

Versão da API 2015-01-01116

Page 125: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

O Amazon ES também coloca uma interface de rede elástica (ENI) na VPC de cada um dos seus nósde dados. O Amazon ES atribui a cada ENI um endereço IP privado do intervalo de endereço IPv4 dasub-rede. O serviço também atribui um nome de host DNS público (que é o endpoint de domínio) aosendereços IP. Você deve usar um serviço de DNS público para resolver o endpoint (que é um nome dehost DNS) para os endereços IP apropriados dos nós de dados:

• Se sua VPC usa o servidor DNS fornecido pela Amazon com a opção enableDnsSupport definidacomo true (o valor padrão), a resolução do endpoint do Amazon ES será bem-sucedida.

• Se sua VPC usa um servidor DNS privado e o servidor tem acesso aos servidores DNS autorizadospúblicos para resolver nomes de host de DNS, a resolução do endpoint do Amazon ES também serábem-sucedida.

Como os endereços IP podem mudar, você deve resolver o endpoint do domínio periodicamente paraque sempre possa acessar os nós de dados corretos. Recomendamos que você defina o intervalo deresolução do DNS para um minuto. Se você estiver usando um cliente, também deve garantir que o cachedo DNS no cliente seja limpo.

Note

O Amazon ES não oferece suporte a endereços IPv6 com uma VPC. Você pode usar uma VPCcom IPv6 ativado, mas o domínio usará endereços IPv4.

Tópicos• Limitações (p. 118)• Sobre políticas de acesso em domínios da VPC (p. 118)

Versão da API 2015-01-01117

Page 126: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorLimitações

• Teste dos domínios da VPC (p. 119)• Antes de começar: pré-requisitos de acesso à VPC (p. 120)• Como criar uma VPC (p. 121)• Reserva de endereços IP em uma sub-rede da VPC (p. 122)• Função vinculada ao serviço para acesso à VPC (p. 123)• Migração do acesso público ao acesso via VPC (p. 123)• Documentação do Amazon VPC (p. 123)

LimitaçõesAtualmente, operar um domínio do Amazon ES de uma VPC apresenta as seguintes limitações:

• Você pode iniciar seu domínio de uma VPC ou usar um endpoint público, mas não pode fazer ambos.Você deve escolher uma opção ou outra ao criar seu domínio.

• Se você executar um novo domínio de uma VPC, não será possível alternar posteriormente para umendpoint público. O inverso também é verdadeiro: se você criar um domínio com um endpoint público,não será possível colocá-lo em uma VPC. Em vez disso, você deve criar um novo domínio e migrar seusdados.

• Você não pode iniciar seu domínio em uma VPC que usa locação dedicada. É necessário usar uma VPCcom locação definida como Padrão.

• Após colocar um domínio dentro de uma VPC, não será possível movê-lo para uma VPC diferente. Noentanto, você pode alterar as sub-redes e as configurações do security group.

• Em comparação com domínios públicos, domínios VPC exibem menos informações no console doAmazon ES. Especificamente, a guia Cluster health não inclui informações de estilhaço, e a guia Indicesnão está presente.

• Atualmente, o Amazon ES não oferece suporte à integração com o Amazon Kinesis Data Firehose paradomínios que residem em uma VPC. Para usar este serviço com o Amazon ES, você deve usar umdomínio com acesso público.

• Para acessar a instalação padrão do Kibana em um domínio o qual reside em uma VPC, os usuáriosdevem ter acesso à VPC. Este processo varia de acordo com a configuração de rede, mas geralmenteenvolve a conexão a uma VPN ou rede gerenciada ou o uso de um servidor de proxy. Para saber mais,consulte o the section called “Sobre políticas de acesso em domínios da VPC” (p. 118), o Guia dousuário da Amazon VPC e o the section called “Controlar acesso ao Kibana” (p. 98).

Sobre políticas de acesso em domínios da VPCColocar seu domínio do Amazon ES em uma VPC fornece uma camada de segurança forte e inerente.Quando você cria um domínio com acesso público, o endpoint é composto da seguinte forma:

https://search-domain-name-identifier.region.es.amazonaws.com

Como o rótulo "público" sugere, esse endpoint é acessível de qualquer dispositivo conectado à Internet,embora você possa (e deva) controlar o acesso a ele (p. 31). Se você acessar o endpoint em umnavegador da Web, poderá receber uma mensagem Not Authorized, mas a solicitação atingirá odomínio.

Quando você cria um domínio com acesso à VPC, o endpoint se assemelha a um endpoint público:

Versão da API 2015-01-01118

Page 127: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorTeste dos domínios da VPC

https://vpc-domain-name-identifier.region.es.amazonaws.com

Se você tentar acessar o endpoint em um navegador da Web, no entanto, poderá descobrir que asolicitação está ultrapassando o tempo limite. Para executar até mesmo solicitações GET básicas, seucomputador deve ser capaz de se conectar à VPC. Essa conexão geralmente assume a forma de umaVPN, de uma rede gerenciada ou de um servidor de proxy. Para obter detalhes sobre as várias formasque podem ser apresentadas, consulte Cenários e exemplos no Guia do usuário da Amazon VPC. Paraobter um exemplo focalizado em desenvolvimento, consulte the section called “Teste dos domínios daVPC” (p. 119).

Além deste requisito de conectividade, as VPCs permitem que você gerencie o acesso ao domínio pormeio de grupos de segurança. Para muitos casos de uso, essa combinação de recursos de segurança ésuficiente e pode ser conveniente aplicar uma política de acesso aberta ao domínio.

Trabalhar com uma política de acesso aberta não significa que qualquer pessoa na Internet pode acessaro domínio do Amazon ES. Pelo contrário, isso significa que, se uma solicitação chega ao domínio doAmazon ES com a permissão dos security groups apropriados, o domínio aceita a solicitação semverificações de segurança adicionais.

Para uma camada adicional de segurança, recomendamos o uso de políticas de acesso que especifiquemusuários ou funções do IAM. A aplicação de uma dessas políticas significa que, para que o domínio aceiteuma solicitação, os grupos de segurança devem permiti-la e assiná-la com credenciais válidas.

Note

Como os security groups já aplicam políticas de acesso baseadas em IP, não é possível aplicarpolíticas de acesso baseadas em IP aos domínios do Amazon ES que residem em uma VPC. Sevocê usa o acesso público, as políticas baseadas em IP ainda estão disponíveis.

Teste dos domínios da VPCA segurança avançada de uma VPC pode tornar a conexão com seu domínio e a execução de testesbásicos um verdadeiro desafio. Se você já tiver um domínio de VPC do Amazon ES e preferir não criar umservidor VPN, tente o processo a seguir:

1. Para a política de acesso do domínio, escolha Do not require signing request with IAM credential (Nãoexigir solicitação de assinatura com credenciais do IAM). Sempre é possível atualizar essa configuraçãodepois de concluir o teste.

2. Crie uma instância do Amazon EC2 do Amazon Linux na mesma VPC, sub-rede e grupo de segurançacomo o domínio do Amazon ES.

Como essa instância é para fins de teste e precisa fazer muito pouco trabalho, escolha um tipo deinstância de custo reduzido, como o t2.micro. Atribua um endereço IP público à instância e crie umnovo par de chaves ou escolha um existente. Se você criar uma nova chave, faça download dela emseu diretório ~/.ssh.

Para saber mais sobre a criação de instâncias, consulte Conceitos básicos de instâncias do Linux doAmazon EC2.

3. Adicione um gateway da Internet à VPC.4. Na tabela de rotas da VPC, adicione uma nova rota. Em Destination (Destino), especifique um bloco

CIDR que contém o endereço IP público do computador. Em Target (Destino), especifique o gateway daInternet que você acabou de criar.

Por exemplo, você pode especificar 123.123.123.123/32 somente para seu computador ou123.123.123.0/24 para vários computadores.

Versão da API 2015-01-01119

Page 128: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPré-requisitos

5. Para o grupo de segurança, especifique duas regras de entrada:

Type Protocolo Intervalo de Portas Origem

SSH (22) TCP (6) 22 your-cidr-block

HTTPS (443) TCP (6) 443 your-security-group-id

A primeira regra permite que você use SSH em sua instância do EC2. A segunda permite que ainstância do EC2 se comunique com o domínio do Amazon ES por meio de HTTPS.

6. No terminal, execute o comando a seguir:

ssh -i ~/.ssh/your-key.pem ec2-user@your-ec2-instance-public-ip -N -L 9200:vpc-your-amazon-es-domain.region.es.amazonaws.com:443

Esse comando cria um túnel SSH que encaminha solicitações para https://localhost:9200 para odomínio do Amazon ES por meio da instância do EC2. Por padrão, o Elasticsearch escuta o tráfegona porta 9200. A especificação dessa porta simula uma instalação do Elasticsearch local, mas usequalquer porta que você desejar.

O comando não fornece comentários e é executado indefinidamente. Para interrompê-lo, pressioneCtrl + C.

7. Navegue até https://localhost:9200/_plugin/kibana/ no navegador da web. Talvez você precise confirmaruma exceção de segurança.

Como alternativa, você pode enviar solicitações para https://localhost:9200 usando curl, Postman ou alinguagem de programação de sua preferência.

Tip

Se você encontrar erros de curl devido a uma incompatibilidade de certificado, tente osinalizador --insecure.

Antes de começar: pré-requisitos de acesso à VPCAntes de estabelecer uma conexão entre uma VPC e seu novo domínio do Amazon ES, você deve fazer oseguinte:

• Criar uma VPC

Para criar sua VPC, você pode usar o console da Amazon VPC, a CLI da AWS ou um dos SDKs daAWS. Você deve criar uma sub-rede na VPC, ou duas sub-redes se você habilitar o reconhecimento dazona (p. 48). Para mais informações, leia Criação de uma VPC (p. 121). Se você já tiver uma VPC,ignore esta etapa.

• Reservar endereços IP

O Amazon ES permite a conexão de uma VPC a um domínio, colocando interfaces de rede em umasub-rede da VPC. Cada interface de rede está associada a um endereço IP. Você deve reservar umnúmero suficiente de endereços IP na sub-rede para as interfaces de rede. Para obter mais informações,consulte Reservar endereços IP em uma sub-rede da VPC (p. 122).

Versão da API 2015-01-01120

Page 129: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComo criar uma VPC

Como criar uma VPCPara criar sua VPC, você pode usar o console da Amazon VPC, a CLI da AWS ou um dos SDKs da AWS.A VPC deve ter uma sub-rede ou duas sub-redes se você habilitar o reconhecimento da zona (p. 48). Asduas sub-redes devem estar em zonas de disponibilidade diferentes na mesma região.

O procedimento a seguir mostra como usar o console da Amazon VPC para criar uma VPC com umasub-rede pública, reservar endereços IP para a sub-rede e criar um grupo de segurança para controlar oacesso ao domínio do Amazon ES. Para outras configurações da VPC, consulte Cenários e exemplos noGuia do usuário da Amazon VPC.

Para criar uma VPC (console)

1. Faça login no Console de Gerenciamento da AWS e abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

2. No painel de navegação, escolha VPC Dashboard.3. Escolha Start VPC Wizard.4. Na página Select a VPC Configuration, selecione VPC with a Single Public Subnet.5. Na página VPC with a Single Public Subnet, mantenha as opções padrão e escolha Create VPC.6. Na mensagem de confirmação exibida, escolha Close.7. Se você pretende habilitar o reconhecimento da zona (p. 48) para o domínio do Amazon ES, você

deve criar uma segunda sub-rede em uma zona de disponibilidade diferente na mesma região. Sevocê não pretende habilitar o reconhecimento da zona, siga para a etapa 8.

a. No painel de navegação, escolha Sub-redes.b. Selecione Create Subnet.c. Na caixa de diálogo Create Subnet, você pode criar uma tag de nome para ajudar a identificar a

sub-rede posteriormente.d. Em VPC, escolha a VPC recém-criada.e. Em Availability Zone, escolha uma zona de disponibilidade diferente da escolhida para a primeira

sub-rede. As zonas de disponibilidade de ambas as sub-redes devem estar na mesma região.f. Para IPv4 CIDR block, configure um bloco CIDR grande o suficiente para fornecer endereços IP

suficientes para o Amazon ES para uso durante as atividades de manutenção. Para obter maisinformações, consulte Reservar endereços IP em uma sub-rede da VPC (p. 122).

Note

Os domínios do Amazon ES que usam o acesso a VPC não oferecem suporte aendereços IPv6. Você pode usar uma VPC com IPv6 ativado, mas os ENIs terãoendereços IPv4.

g. Escolha Yes, Create.8. No painel de navegação, escolha Sub-redes.9. Na lista de sub-redes, localize sua sub-rede (ou sub-redes, se você criou uma segunda sub-rede na

etapa 7). Na coluna Available IPv4 (IPv4 disponível), confirme se você possui um número suficiente deendereços IPv4.

10. Anote o ID da sub-rede e a zona de disponibilidade. Você precisará dessas informações mais tardequando iniciar o domínio do Amazon ES e adicionar uma instância do Amazon EC2 à sua VPC.

11. Crie um grupo de segurança de Amazon VPC. Use esse security group para controlar o acesso aodomínio do Amazon ES.

a. No painel de navegação, selecione Grupos de segurança.b. Escolha Create Security Group.

Versão da API 2015-01-01121

Page 130: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorReserva de endereços IP em uma sub-rede da VPC

c. Na caixa de diálogo Create Security Group (Criar grupo de segurança), digite uma tag de nome,um nome de grupo e forneça uma descrição. Para VPC, escolha o ID de sua VPC.

d. Escolha Yes, Create.12. Defina uma regra de entrada de rede para seu security group. Esta regra permite que você se conecte

ao domínio do Amazon ES.

a. No painel de navegação, escolha Security Groups (Grupos de segurança) e selecione o securitygroup recém-criado.

b. Na parte inferior da página, escolha a guia Inbound Rules.c. Escolha Edit e escolha HTTPS (443).d. Escolha Salvar.

Agora você já pode iniciar um domínio do Amazon ES (p. 10) na sua Amazon VPC.

Reserva de endereços IP em uma sub-rede da VPCO Amazon ES conecta um domínio a uma VPC colocando interfaces de rede em uma sub-rede da VPC(ou duas sub-redes da VPC, caso você habilite o reconhecimento de zona (p. 48)). Cada interface de redeestá associada a um endereço IP. Antes de criar o domínio do Amazon ES, você deve ter um númerosuficiente de endereços IP disponíveis na sub-rede da VPC para acomodar as interfaces de rede.

O número de endereços IP exigidos para o Amazon ES depende do seguinte:

• O número de nós de dados no seu domínio. (Os nós principais não são considerados.)• Se você habilitar o reconhecimento da zona (p. 48). Se você habilitar o reconhecimento da zona,

precisará de apenas metade do número de endereços IP por sub-rede que seriam necessários docontrário.

A fórmula básica é a seguinte: o número de endereços IP reservados em cada sub-rede é três vezes onúmero de nós, dividido por dois se o reconhecimento da zona estiver habilitado.

Exemplos

• Se um domínio tiver 10 nós de dados e o reconhecimento da zona estiver habilitado, a contagem de IPserá 10 / 2 * 3 = 15.

• Se um domínio tiver 10 nós de dados e o reconhecimento da zona estiver desativado, a contagem de IPserá 10 * 3 = 30.

Ao criar o domínio, o Amazon ES reserva os endereços IP. Você pode ver as interfaces de rede eseus endereços IP associados na seção Network Interfaces do console do Amazon EC2 em https://console.aws.amazon.com/ec2/. A coluna Description mostra qual domínio do Amazon ES está associado àinterface de rede.

Tip

Recomendamos que você crie sub-redes dedicadas para os endereços IP reservados para oAmazon ES. Ao usar sub-redes dedicadas, você evita a sobreposição com outros aplicativos eserviços e garante a possibilidade de reservar endereços IP adicionais se precisar escalar seucluster no futuro. Para obter mais informações, consulte Como criar uma sub-rede na VPC.

Versão da API 2015-01-01122

Page 131: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorFunção vinculada ao serviço para acesso à VPC

Função vinculada ao serviço para acesso à VPCUma função vinculada ao serviço é um tipo exclusivo de função do IAM que delega permissões para umserviço de forma que ele possa criar e gerenciar recursos em seu nome. O Amazon ES requer uma funçãovinculada ao serviço para acessar sua VPC, criar o endpoint do domínio e colocar as interfaces de rede emuma sub-rede da sua VPC.

O Amazon ES cria a função automaticamente quando você usa o console do Amazon ES para criar umdomínio dentro de uma VPC. Para que essa criação automática seja bem-sucedida, você precisa terpermissões para a ação iam:CreateServiceLinkedRole. Para saber mais, consulte Permissões defunção vinculada ao serviço no Guia do usuário do IAM.

Depois que o Amazon ES criar a função, você poderá visualizá-la(AWSServiceRoleForAmazonElasticsearchService) usando o console do IAM.

Note

Se você criar um domínio que usa um endpoint público, o Amazon ES não precisa da funçãovinculada ao serviço e, portanto, não a cria.

Para obter mais informações sobre as permissões dessa função e como excluí-la, consulte Uso de funçõesvinculadas ao serviço (p. 260).

Migração do acesso público ao acesso via VPCAo criar um domínio, você especifica se deve haver um endpoint público ou residir em uma VPC. Após tersido criado, você não poderá mudar de um para o outro. Em vez disso, você deve criar um novo domínioe reindexar ou migrar manualmente seus dados. Os snapshots representam uma maneira convenientede migração de dados. Para obter informações sobre a realização e restauração de snapshots, consulteComo trabalhar com snapshots de índice (p. 86).

Documentação do Amazon VPCA Amazon VPC tem seu próprio conjunto de documentação para descrever como criar e usar sua AmazonVPC. A tabela a seguir disponibiliza links para guias sobre Amazon VPC.

Descrição Documentação

Como começar a usar a Amazon VPC Guia de conceitos básicos do Amazon VPC

Como usar a Amazon VPC por meio do Consolede gerenciamento da AWS

Guia do usuário da Amazon VPC

Descrições completas de todos os comandos daAmazon VPC

Referência de linha de comando do Amazon EC2(Os comandos da Amazon VPC fazem parte dareferência do Amazon EC2.)

Descrições completas das ações de API, tipos dedados e erros da Amazon VPC

Amazon EC2 API Reference (As ações de APIda Amazon VPC fazem parte da referência doAmazon EC2.)

Informações para o administrador da rede queconfigura o gateway no final de uma conexão VPNIPsec opcional

Guia de administrador de rede do Amazon VPC

Versão da API 2015-01-01123

Page 132: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDocumentação do Amazon VPC

Para obter informações mais detalhadas sobre o Amazon Virtual Private Cloud, consulte Amazon VirtualPrivate Cloud.

Versão da API 2015-01-01124

Page 133: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDimensionamento de domínios do Amazon ES

Melhores práticas do AmazonElasticsearch Service

Esses tópicos abordam algumas considerações para a operação de domínios do Amazon ElasticsearchService e fornecem diretrizes gerais que se aplicam a muitos casos de uso.

Tópicos• Dimensionamento de domínios do Amazon ES (p. 125)• Nós principais dedicados (p. 128)• Alarmes do CloudWatch recomendados (p. 131)

Dimensionamento de domínios do Amazon ESNão existe nenhum método de dimensionamento infalível de domínios do Amazon ES, mas ao começarcom a compreensão de suas necessidades de armazenamento, do serviço e do próprio Elasticsearch vocêpode fazer uma estimativa inicial embasada de suas necessidades de hardware. Essa estimativa podeservir como um ponto de partida útil para a maioria dos aspectos mais importantes do dimensionamento dedomínios: testá-los com cargas de trabalho e monitorar seu desempenho.

Tópicos• Cálculo de requisitos de armazenamento (p. 125)• Como escolher o número de estilhaços (p. 126)• Escolha dos tipos de instância e testes (p. 127)

Cálculo de requisitos de armazenamentoA maioria das cargas de trabalho do Elasticsearch pode ser classificada em uma das duas categoriasamplas:

• índice de longa duração: você escreve o código que processa os dados em um ou mais índices doElasticsearch e, em seguida, atualiza esses índices periodicamente à medida que os dados de origemsão alterados. Alguns exemplos comuns são pesquisa de sites, documentos e comércio eletrônico.

• índices contínuos: os dados fluem de modo contínuo em um conjunto de índices temporários, com umperíodo de indexação e janela de retenção, como um conjunto de índices diários que são retidos porduas semanas. Alguns exemplos comuns são análises de log, processamento de séries temporais eanálise de cliques.

Para cargas de trabalho de índice de longa duração, você pode examinar os dados de origem no discoe determinar facilmente a quantidade de espaço de armazenamento que eles consomem. Se os dadosvierem de várias fontes, basta adicionar essas fontes.

Para índices contínuos, você pode multiplicar o volume de dados gerados durante um períodorepresentativo pelo período de retenção. Por exemplo, se você gerar 200 MiB de dados de log por hora,

Versão da API 2015-01-01125

Page 134: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComo escolher o número de estilhaços

são 4,7 GiB por dia, que é 66 GiB de dados em um determinado momento, se você tiver um período deretenção de duas semanas.

O tamanho de seus dados de origem, no entanto, é apenas um aspecto dos seus requisitos dearmazenamento. Também é necessário considerar o seguinte:

1. Número de réplicas: cada réplica é uma cópia completa de um índice e precisa da mesma quantidadede espaço em disco. Por padrão, cada índice do Elasticsearch tem uma réplica. Recomendamos pelomenos uma para evitar a perda de dados. As réplicas também melhoram o desempenho da pesquisa,portanto, é aconselhável ter mais réplica se tiver uma carga de trabalho com uso intensivo de leitura.

2. Sobrecarga de indexação do Elasticsearch: o tamanho de um índice no disco varia, mas normalmente é10% maior do que os dados de origem. Após a indexação dos seus dados, você pode usar a API _cat/indices e o valor pri.store.size para calcular a sobrecarga exata. A API _cat/allocationtambém fornece um resumo útil.

3. Espaço reservado para o sistema operacional: por padrão, o Linux reserva 5% do sistema de arquivospara o usuário root para processos críticos, recuperação do sistema e para se proteger contraproblemas ocasionados pela fragmentação do disco.

4. Sobrecarga do Amazon ES: o Amazon ES reserva 20% do espaço de armazenamento de cadainstância (até 20 GiB), para segmentar fusões, logs e outras operações internas.

Por causa desse máximo de 20 GiB, a quantidade total de espaço reservado pode variar muito,dependendo do número de instâncias em seu domínio. Por exemplo, um domínio pode ter trêsinstâncias m4.xlarge.elasticsearch, cada uma com 500 GiB de espaço de armazenamento, paraum total de 1,46 TiB. Nesse caso, o total de espaço reservado é apenas 60 GiB. Outro domínio pode ter10 instâncias m3.medium.elasticsearch, cada uma com 100 GiB de espaço de armazenamento,para um total de 0,98 TiB. Aqui, o total de espaço reservado é 200 GiB, embora o primeiro domínio seja50% maior.

Na fórmula a seguir, aplicamos uma estimativa de "pior caso" para sobrecarga que é precisa paradomínios com menos de 100 GiB de espaço de armazenamento por instância e superalocações parainstâncias maiores.

Em resumo, se em determinado momento você tiver 66 GiB de dados e quiser uma réplica, seu requisitode armazenamento mínimo será mais próximo de 66 * 2 * 1,1 / 0,95 / 0,8 = 191 GiB. Você pode generalizaresse cálculo da seguinte maneira:

Dados de origem * (1+Número de réplicas) * (1+Sobrecarga de indexação)/(1 - Espaço reservado peloLinux)/(1 – Sobrecarga do Amazon ES) = Requisito de armazenamento mínimo

Ou você pode usar esta versão simplificada:

Dados de origem * (1 + Número de réplicas) * 1,45 = Requisito de armazenamento mínimo

Espaço de armazenamento insuficiente é uma das causas mais comuns de instabilidade do cluster;portanto, você deve verificar todos os números ao escolher tipos de instância, contagens de instâncias evolumes de armazenamento (p. 127).

Note

Se o requisito mínimo de armazenamento ultrapassar 1 PB, consulte Escala depetabytes (p. 133).

Como escolher o número de estilhaçosDepois de entender os requisitos de armazenamento, você poderá investigar a sua estratégia deindexação. Cada índice do Elasticsearch é dividido em algum número de estilhaços. Como você não pode

Versão da API 2015-01-01126

Page 135: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEscolha dos tipos de instância e testes

alterar facilmente o número de estilhaços principais para um índice existente, decida sobre a contagem deestilhaços antes de indexar seu primeiro documento.

O objetivo geral da escolha de um número de estilhaços é distribuir um índice uniformemente por todosos nós de dados no cluster. No entanto, esses estilhaços não devem ser muito grandes nem muitonumerosos. Uma boa regra é tentar manter o tamanho do estilhaço entre 10 – 50 GiB. Estilhaços grandespodem dificultar a recuperação de falhas do Elasticsearch, no entanto, como cada estilhaço usa algumaquantidade de CPU e memória, ter muitos estilhaços pequenos pode causar problemas de desempenho eerros de memória. Em outras palavras, os estilhaços devem ser pequenos o suficiente para que a instânciado Amazon ES subjacente possa lidar com eles, mas não tão pequenos de modo que sobrecarreguem ohardware desnecessariamente.

Por exemplo, suponha que você tenha 66 GiB de dados. Você não espera que esse número aumente aolongo do tempo e deseja manter seus estilhaços em torno de 30 GiB cada um. Seu número de estilhaços,portanto, deve ser aproximadamente 66 * 1,1/30 = 3. Você pode generalizar esse cálculo da seguintemaneira:

(Dados de origem+Espaço para crescer) * (1+Sobrecarga de Indireto)/Tamanho desejado do estilhaço =Número aproximado de estilhaços principais

Essa equação ajuda a compensar o crescimento ao longo do tempo. Se você espera que os mesmos67 GiB de dados quadruplique nos próximos anos, o número aproximado de estilhaços será (66+198) *1,1/30 = 10. No entanto, lembre-se de que você ainda não tem esses 198 GiB de dados extras. Verifiquese essa preparação para o futuro não cria desnecessariamente estilhaços muito pequenos que consomemenormes quantidades de CPU e memória. Nesse caso, 66 * 1,1/10 estilhaços = 7,26 GiB por estilhaço,o que consumirá recursos adicionais e está abaixo do intervalo de tamanho recomendado. Você podeconsiderar a abordagem intermediária de seis estilhaços, o resulta em estilhaços de 12 GiB hoje eestilhaços de 48 GiB no futuro. Em seguida, novamente, você pode preferir começar com três estilhaços ereindexar seus dados quando os estilhaços ultrapassarem 50 GiB.

Note

Por padrão, os índices do Elasticsearch são divididos em cinco estilhaços principais. Você podeespecificar configurações diferentes ao criar um índice (p. 57).

Escolha dos tipos de instância e testesDepois de calcular os requisitos de armazenamento e escolher o número de estilhaços de queprecisa, você pode começar a tomar decisões quanto ao hardware. Os requisitos de hardware variamdrasticamente por carga de trabalho, mas ainda podemos fazer algumas recomendações básicas.

Em geral, os limites de armazenamento (p. 232) para cada tipo de instância são mapeados para aquantidade de CPU e memória que pode ser necessária para cargas de trabalho leves. Por exemplo,uma instância m4.large.elasticsearch tem um tamanho máximo de volume do EBS de 512 GiB,2 núcleos de vCPUs e 8 GiB de memória. Se o seu cluster tiver muitos estilhaços, executar agregaçõesdesgastantes, atualizar os documentos com frequência ou processar um grande número de consultas,esses recursos poderão ser insuficientes para suas necessidades. Se você acredita que seu cluster estáem uma dessas categorias, tente começar com uma configuração mais próxima de 2 núcleos de vCPU e 8GiB de memória para cada 100 GiB de seu requisito de armazenamento.

Tip

Para obter um resumo dos recursos de hardware que são alocados para cada tipo de instância,consulte Definição de preço do Amazon Elasticsearch Service.

No entanto, até mesmo esses recursos podem ser insuficientes. Alguns usuários do Elasticsearch relatamque eles precisam desses recursos muitas vezes para atender aos seus requisitos. Localizar o hardware

Versão da API 2015-01-01127

Page 136: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNós principais dedicados

certo para sua carga de trabalho significa fazer uma estimativa inicial embasada, testar cargas de trabalhorepresentativas, ajustar e testar novamente:

1. Para começar, recomendamos um mínimo de três ou mais instâncias para evitar possíveisproblemas do Elasticsearch, como o problema de cérebro dividido. Se você tiver três nós principaisdedicados (p. 128), ainda recomendamos um mínimo de dois nós de dados para replicação.

2. Se você tiver um requisito de 184 GiB de armazenamento e o número mínimo de trêsinstâncias recomendado, você usará a equação 184/3 = 61 GiB para encontrar a quantidade dearmazenamento necessária a cada instância. Neste exemplo, você pode selecionar três instânciasm4.large.elasticsearch para o seu cluster, cada uma usando um volume de armazenamento doEBS de 90 GiB, para que você tenha uma rede de segurança e espaço para crescer ao longo do tempo.Essa configuração fornece 6 núcleos de vCPU e 24 GiB de memória, portanto, é adequada para cargasde trabalho mais leves.

Para obter um exemplo mais substancial, considere um requisito de armazenamento de 14 TiB e umacarga de trabalho pesada. Nesse caso, você pode optar por iniciar testes com 2 * 144 = 288 núcleosde vCPU e 8 * 144 = 1.152 GiB de memória. Esses números funcionam para aproximadamente 18instâncias do i3.4xlarge.elasticsearch. Se você não precisa do armazenamento local rápido,também pode testar 18 instâncias r4.4xlarge.elasticsearch, cada uma usando um volume dearmazenamento do EBS de 1 TiB.

Se o cluster incluir centenas de terabytes de dados, consulte Escala de petabytes (p. 133).3. Depois de configurar o cluster, você pode adicionar o índice (p. 57), executar alguns testes de cliente

representativos usando um conjunto de dados realista e monitorar métricas do CloudWatch (p. 50) paraver como o cluster lida com a carga de trabalho.

4. Se o desempenho atender às suas necessidades, os testes forem bem-sucedidos e as métricas doCloudWatch estiverem normais, o cluster estará pronto para uso. Lembre-se de definir alarmes doCloudWatch (p. 131) para detectar problemas de utilização de recursos.

Se o desempenho não for aceitável, os testes falharem ou CPUUtilization ou JVMMemoryPressureestiverem altas, pode ser necessário escolher um tipo de instância diferente (ou adicionar instâncias)e continuar o teste. À medida que você adiciona instâncias, o Elasticsearch faz o rebalanceamentoautomaticamente da distribuição de estilhaços em todo o cluster.

Como é mais fácil medir a capacidade em excesso em um cluster sobrecarregado do que o déficit emum cluster não sobrecarregado, recomendamos começar com um cluster maior do que você imaginaseja necessário, testar e reduzir para um cluster eficiente que tenha os recursos adicionais para garantiroperações estáveis durante períodos de maior atividade.

Os clusters de produção ou os clusters com estados complexos se beneficiam de nós principaisdedicados (p. 128), que melhoram o desempenho e a confiabilidade do cluster.

Nós principais dedicadosO Amazon Elasticsearch Service usa nós principais dedicados para aumentar a estabilidade do cluster. Umnó principal dedicado executa tarefas de gerenciamento de cluster, mas não mantém dados nem respondea solicitações de upload de dados. Essa transferência de tarefas de gerenciamento de cluster aumenta aestabilidade do seu domínio.

É recomendável alocar três nós principais dedicados a cada domínio de produção do Amazon ES:

1. Um nó principal dedicado significa que você não tem backup em caso de falha.2. Dois nós principais dedicados significam que seu cluster não tem o quorum necessário de nós para

escolher um novo nó principal em caso de falha.

Versão da API 2015-01-01128

Page 137: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNós principais dedicados

Quorum é o Número de nós principais dedicados/2+1 (arredondado para o número inteiro maispróximo), que o Amazon ES define como discovery.zen.minimum_master_nodes quando vocêcria seu domínio.

Neste caso, 2/2 + 1 = 2. Como um nó principal dedicado falhou e existe apenas um backup, o clusternão tem um quorum e não pode selecionar um novo principal.

3. Três nós principais dedicados, o número recomendado, fornecem dois nós de backup em caso de falhade um nó principal e o quorum necessário (2) para selecionar um novo principal.

4. Ter quatro nós principais dedicados não é melhor do que ter três e poderá causar problemas se vocêusar o reconhecimento de zona (p. 48).• Se um nó principal falhar, você tem o quorum (3) para escolher um novo principal. Se dois nós

falharem, você perderá esse quorum, da mesma forma com três nós principais dedicados.• Se cada zona de disponibilidade tiver dois nós principais dedicados e as regiões não puderem se

comunicar umas com as outras, nenhuma região terá o quorum para escolher um novo principal.5. A disponibilidade de cinco nós principais dedicados funciona tão bem quanto de três e permite que você

perca dois nós e mantenha, ao mesmo tempo, um quorum, mas, como apenas um nó principal dedicadoestá ativo em um determinado momento, com essa configuração você paga por quatro nós ociosos.Muitos clientes acham esse nível de proteção de failover excessivo.

Note

Se o cluster não tiver o quorum necessário para escolher um novo nó principal, ocorrerão falhasnas solicitações de gravação e leitura para o cluster. Esse comportamento é diferente do padrãodo Elasticsearch.

Nós principais dedicados executam as seguintes tarefas de gerenciamento de cluster:

• Controlam todos os nós no cluster.• Controlam o número de índices no cluster.• Controlam o número de estilhaços pertencentes a cada índice.• Mantêm informações de roteamento para nós no cluster.• Atualizam o estado do cluster após alterações de estado, como criação de um índice e adição ou

remoção de nós no cluster.• Replicam alterações no estado do cluster em todos os nós no cluster.• Monitoram a integridade de todos os nós do cluster, enviando sinais de pulsação, sinais periódicos que

monitoram a disponibilidade de nós de dados no cluster.

O exemplo a seguir mostra um domínio do Amazon ES com dez instâncias. Sete das instâncias são nós dedados e três são nós principais dedicados. Somente um dos nós principais dedicados está ativo; os doisnós principais dedicados de cor cinza aguardam como backup em caso de falha do nó principal dedicadoativo. Todas as solicitações de carregamento de dados são atendidas por sete nós de dados, e todas astarefas de gerenciamento de cluster são transferidas para o nó principal dedicado ativo.

Versão da API 2015-01-01129

Page 138: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNós principais dedicados

Embora os nós principais dedicados não realizem solicitações de pesquisa e consulta, seu tamanho estáamplamente correlacionado com o número de instâncias, índices e estilhaços que elas podem gerenciar.Para clusters de produção, recomendamos os seguintes tipos de instâncias para nós principais dedicados.Essas recomendações se baseiam em cargas de trabalho usuais e podem variar de acordo com suasnecessidades.

Contagem de instância Tipo de instância principal dedicada mínimarecomendado

5–10 m3.medium.elasticsearch

10–20 m4.large.elasticsearch

20–50 c4.xlarge.elasticsearch

50–100 c4.2xlarge.elasticsearch

• Para saber as recomendações de nós principais dedicados para clusters grandes, consulte Escala depetabytes (p. 133).

• Para obter informações sobre como determinadas alterações de configuração podem afetar os nósprincipais dedicados, consulte the section called “Sobre alterações de configuração” (p. 45).

Versão da API 2015-01-01130

Page 139: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAlarmes do CloudWatch recomendados

• Para obter esclarecimentos sobre os limites de contagem de instâncias, consulte the section called“Limites de cluster e instância” (p. 232).

• Para obter mais informações sobre tipos específicos de instância, incluindo vCPU, memória e preços,consulte Preços de instância do Amazon Elasticsearch.

Alarmes do CloudWatch recomendadosOs alarmes do CloudWatch executam uma ação quando uma métrica do CloudWatch excede um valorespecificado por algum período. Por exemplo, o AWS pode enviar um e-mail se o status de integridade docluster permanecer red por mais do que um minuto. Esta seção inclui alguns alarmes recomendados ecomo responder a eles.

Para obter mais informações sobre como definir alarmes, consulte Como criar alarmes do AmazonCloudWatch no Guia do usuário do Amazon CloudWatch.

Alarme Problema

Máximo deClusterStatus.redé >= 1 por 1 minuto, 1período consecutivo

Pelo menos um estilhaço principal e suas réplicas não estão alocados paraum nó. Consulte the section called “Status de cluster vermelho” (p. 144).

Máximo deClusterStatus.yellowé >= 1 por 1 minuto, 1período consecutivo

Pelo menos um estilhaço de réplica não está alocado para um nó. Consultethe section called “Status de cluster amarelo” (p. 146).

Mínimo deFreeStorageSpace é<= 20480 por 1 minuto, 1período consecutivo

Um nó no seu cluster tem 20 GiB de espaço de armazenamento livre.Consulte the section called “Falta de espaço de armazenamentodisponível” (p. 147). Esse valor é em MiB; portanto, em vez de 20.480,recomendamos defini-lo como 25% do espaço de armazenamento para cadanó.

ClusterIndexWritesBlockedé >= 1 por 5 minutos, 1período consecutivo

O cluster está bloqueando solicitações de gravação. Consulte the sectioncalled “ClusterBlockException” (p. 147).

Mínimo de Nodes é <x por 1 dia, 1 períodoconsecutivo

x é o número de nós em seu cluster. Esse alarme indica que pelo menos umnó no cluster permaneceu inacessível por um dia. Consulte the section called“Falha em nós de cluster” (p. 148).

Máximo deAutomatedSnapshotFailureé >= 1 por 1 minuto, 1período consecutivo

Ocorreu falha em um snapshot automatizado. Essa falha normalmente éo resultado de um status de integridade vermelho do cluster. Consulte thesection called “Status de cluster vermelho” (p. 144).

Para obter um resumo de todos os snapshots automatizados e algumasinformações sobre falhas, você também pode tentar o seguinte:

GET domain_endpoint/_snapshot/cs-automated/_all

Média deCPUUtilization é >=80% por 15 minutos, 3períodos consecutivos

100% de utilização da CPU não é raro, mas médias altas contínuas sãoproblemáticas. Considere o uso de tipos de instância maiores ou a adição deinstâncias.

Versão da API 2015-01-01131

Page 140: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAlarmes do CloudWatch recomendados

Alarme Problema

Máximo deJVMMemoryPressure é>= 80% por 15 minutos,1 período consecutivo

O cluster poderá apresentar erros de memória insuficiente se o usoaumentar. Considere a escalabilidade vertical. O Amazon ES usa metadeda RAM de uma instância para o heap do Java, com um tamanho de heapde 32 GiB. Você pode dimensionar instâncias verticalmente até 64 GiB deRAM, sendo que nesse ponto você poderá dimensionar horizontalmenteadicionando instâncias.

Média deMasterCPUUtilizationé >= 50% por 15minutos, 3 períodosconsecutivos

Máximo deMasterJVMMemoryPressureé >= 80% por 15minutos, 1 períodoconsecutivo

Considere o uso de tipos de instância maiores para os nós principaisdedicados (p. 128). Devido à sua função na estabilidade do cluster eimplantações azuis/verdes (p. 45), os nós principais dedicados devem teruma média de uso de CPU menor do que os nós de dados.

KMSKeyError é >= 1por 1 minuto, 1 períodoconsecutivo

A chave de criptografia do KMS que é usada para criptografar dados emrepouso no seu domínio está desativada. Reative-a para restaurar asoperações normais. Para saber mais, consulte the section called “Criptografiaem repouso” (p. 135).

KMSKeyInaccessibleé >= 1 por 1 minuto, 1período consecutivo

A chave de criptografia do KMS que é usada para criptografar dados emrepouso em seu domínio foi excluída ou revogou suas concessões para oAmazon ES. Você não pode recuperar domínios nesse estado, mas se tiverum snapshot manual, poderá usá-lo para migrar para um novo domínio. Parasaber mais, consulte the section called “Criptografia em repouso” (p. 135).

Note

Se você deseja apenas visualizar métricas, consulte Monitoramento de métricas doCloudWatch (p. 50).

Versão da API 2015-01-01132

Page 141: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Escala de petabytes para AmazonElasticsearch Service

O Amazon Elasticsearch Service oferece armazenamento de domínios de até 1,5 PB. Você podeconfigurar um domínio com 100 tipos de instância i3.16xlarge.elasticsearch, cada um com 15TB de armazenamento. Devido à grande diferença em escala, as recomendações para domínios dessetamanho diferem de nossas recomendações gerais (p. 125). Esta seção descreve as considerações paraa criação de domínios, custos, armazenamento, tamanho de estilhaço e nós principais dedicados. Apesarde referências frequentes aos tipos de instância i3, as recomendações de tamanho do estilhaço e do nóprincipal dedicada nesta seção se aplicam a qualquer domínio que se aproxima da escala de petabytes.

Criação de domínios

Domínios desse tamanho excedem o limite padrão de 20 instâncias por domínio. Para solicitar umaumento do limite de serviço de até 100 instâncias por domínio, abra um chamado no AWS SupportCenter.

Definição de preço

Antes de criar um domínio desse tamanho, verifique a página Definição de preço do AmazonElasticsearch Service para garantir que os custos associados atendam às suas expectativas.

Armazenamento

Os tipos de instância i3 são especificamente projetados para fornecer armazenamento NVMe localrápido. Como esse armazenamento local tende a oferecer benefícios de desempenho consideráveisem comparação com o Amazon Elastic Block Store, os volumes do EBS não são uma opção quandovocê seleciona esses tipos de instância no Amazon ES.

Tamanho e contagem de estilhaços

Uma diretriz comum do Elasticsearch é não exceder 50 GB por estilhaço. Considerando o número deestilhaços necessários para acomodar grandes domínios e os recursos disponíveis para instânciasi3.16xlarge.elasticsearch, recomendamos um tamanho de estilhaço de 100 GB.

Por exemplo, se você tiver 450 TB de dados de origem e quiser uma réplica, seu requisito dearmazenamento mínimo será mais próximo de 450 TB * 2 * 1,1/0.95 = 1.04 PB. Para obteruma explicação sobre esse cálculo, consulte the section called “Cálculo de requisitos dearmazenamento” (p. 125). Embora 1.04 PB/15 TB = 70 instâncias, você pode selecionar 80 ou maisinstâncias i3.16xlarge.elasticsearch para obter uma rede de segurança de armazenamentoe espaço para alguma variação na quantidade de dados ao longo do tempo. Cada instância adicionaoutros 20 GiB ao seu requisito de armazenamento mínimo, ainda que para discos deste tamanho,esses 20 GiB sejam quase insignificantes.

O controle do número de estilhaços é algo complexo. Os usuários do Elasticsearch muitas vezesmudam índices diariamente e mantêm os dados por uma ou duas semanas. Nesta situação, podeser útil distinguir entre estilhaços "ativos" e "inativos". Estilhaços ativos estão sendo gravados oulidos ativamente. Estilhaços inativos podem servir para uma solicitação de leitura ocasional, massão essencialmente ociosos. Em geral, você deve manter o número de estilhaços ativos abaixo dealguns milhares. À medida que o número de estilhaços ativos se aproxima de 10.000, surgem riscosde desempenho e de estabilidade consideráveis.

Para calcular o número de estilhaços principais, use esta fórmula: 450.000 GB * 1,1/100 GBpor estilhaço = 4,950 estilhaços. Ao dobrar esse número para contabilizar réplicas, temos 9.900estilhaços, o que representa uma grande preocupação se todos os estilhaços estão ativos. No

Versão da API 2015-01-01133

Page 142: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

entanto, se você mudar índices e apenas 1/7 ou 1/14 dos estilhaços estão ativos em um determinadodia (1414 ou 707 estilhaços, respectivamente), o cluster poderá funcionar normalmente. Comosempre, a etapa mais importante do dimensionamento e da configuração de seu domínio é executartestes de cliente representativos usando um conjunto de dados realista.

Nós principais dedicados

É recomendável alocar três nós principais dedicados a cada domínio do Amazon ES de produção. Noentanto, em vez de nossas diretrizes comuns para nós principais dedicados (p. 128), recomendamostipos mais potentes de instâncias para domínios desse tamanho. A tabela a seguir mostra os tipos deinstância recomendados para nós principais dedicados para domínios grandes.

Contagem de instância Tipo de instância principal dedicada mínima recomendado

5–10 m4.large.elasticsearch

10–20 c4.xlarge.elasticsearch

20–50 c4.2xlarge.elasticsearch

50–100 c4.4xlarge.elasticsearch

Versão da API 2015-01-01134

Page 143: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriptografia em repouso

A criptografia no AmazonElasticsearch Service

Estes tópicos abrangem como habilitar a criptografia de dados em repouso e a criptografia de nó a nó parao domínio do Amazon Elasticsearch Service.

Tópicos• Criptografia de dados em repouso do Amazon Elasticsearch Service (p. 135)• Criptografia de nó a nó para o Amazon Elasticsearch Service (p. 137)

Criptografia de dados em repouso do AmazonElasticsearch Service

Os domínios do Amazon ES oferecem criptografia de dados em repouso, um recurso de segurançaque ajuda a impedir o acesso não autorizado aos seus dados. O recurso usa o AWS Key ManagementService (AWS KMS) para armazenar e gerenciar suas chaves de criptografia. Se ativado, ele criptografa osseguintes aspectos de um domínio:

• Índices• Snapshots automatizados• Logs do Elasticsearch• Arquivos de troca• Todos os outros dados no diretório do aplicativo

Os seguintes itens não são criptografados quando você ativa a criptografia de dados em repouso, masvocê pode executar etapas adicionais para protegê-los:

• Snapshots manuais: no momento, não é possível usar chaves mestras do KMS para criptografarsnapshots manuais. No entanto, você pode usar a criptografia no lado do servidor com chavesgerenciadas pelo S3 para criptografar o bucket que você usa como repositório de snapshots. Para obterinstruções, consulte the section called “Registro de um repositório de snapshots manuais” (p. 88).

• Logs lentos e erro: se você publicar logs (p. 26) e desejar criptografá-los, criptografe seu grupo de logsdo CloudWatch Logs usando a mesma chave mestra do AWS KMS usada pelo domínio do Amazon ES.Para obter mais informações, consulte Criptografar dados de log no CloudWatch Logs usando o AWSKMS, no Amazon CloudWatch Logs User Guide.

Para saber como criar chaves mestras do AWS KMS, consulte Criação de chaves no AWS KeyManagement Service Developer Guide.

Ativação da criptografia de dados em repousoPor padrão, os domínios não criptografam dados em repouso e você não pode configurar os domíniosexistentes para usar o recurso. Para ativar o recurso, você deve criar outro domínio (p. 10) e migrar seusdados. A criptografia de dados em repouso requer o Elasticsearch 5.1 ou posterior.

Versão da API 2015-01-01135

Page 144: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDesativação da criptografia de dados em repouso

Para usar o console do Amazon ES para criar um domínio que criptografa dados em repouso, você deveter permissões somente leitura para o AWS KMS, como a seguinte política baseada em identidade:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*" ], "Resource": "*" } ]}

Se você quiser usar uma chave diferente de (Default) aws/es ((Padrão) aws/es), também deve terpermissões para criar concessões para a chave. Essas permissões normalmente assumem a forma deuma política baseada em recursos que você especifica ao criar a chave.

Se você quiser manter sua chave exclusiva no Amazon ES, poderá adicionar a condiçãokms:ViaService à política principal:

"Condition": { "StringEquals": { "kms:ViaService": "es.us-west-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" }}

Para obter mais informações, consulte Como usar políticas de chave no AWS KMS no AWS KeyManagement Service Developer Guide.

Warning

Se você excluir a chave usada para criptografar um domínio, o domínio ficará inacessível. Aequipe do Amazon ES não pode ajudá-lo a recuperar seus dados. O AWS KMS exclui as chavesmestras apenas depois de um período de espera de pelo menos sete dias, para que a equipe doAmazon ES possa entrar em contato com você se detectar que o seu domínio está correndo risco.

Desativação da criptografia de dados em repousoDepois de configurar um domínio para criptografar dados em repouso, você não pode desativar aconfiguração. Em vez disso, você pode tirar um snapshot manual (p. 86) do domínio existente, criar outrodomínio (p. 10), migrar seus dados e excluir o domínio anterior.

Monitoramento de domínios que criptografam dadosem repousoDomínios que criptografam dados em repouso têm duas métricas adicionais: KMSKeyError eKMSKeyInaccessible. Para obter descrições completas dessas métricas, consulte the section called“Métricas de cluster” (p. 50). Você pode visualizá-las usando o console do Amazon ES ou o console doAmazon CloudWatch.

Versão da API 2015-01-01136

Page 145: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorOutras considerações

Tip

Cada métrica representa um problema significativo de um domínio, portanto, recomendamos criaralarmes do CloudWatch para ambas. Para obter mais informações, consulte the section called“Alarmes do CloudWatch recomendados” (p. 131).

Outras considerações• A mudança de chaves automática preserva as propriedades de suas chaves mestras do AWS KMS

e, portanto, a rotação não afeta sua capacidade de acessar os dados do Elasticsearch. Os domínioscriptografados do Amazon ES não dão suporte à mudança de chaves manual, que envolve a criação deuma nova chave mestra e a atualização das referências à chave antiga. Para saber mais, consulte Comomudar chaves mestre de cliente no AWS Key Management Service Developer Guide.

• Certos tipos de instâncias não são compatíveis com a criptografia de dados em repouso. Para obtermais detalhes, consulte the section called “Tipos de instâncias compatíveis” (p. 152).

• A criptografia de dados em repouso não está disponível na região cn-north-1 (Pequim) e cn-northwest-1(Ningxia).

• O Kibana ainda funciona nos domínios que criptografam dados em repouso.• Domínios que criptografam dados em repouso usam outro nome de repositório para seus snapshots

automatizados. Para obter mais informações, consulte the section called “Restauração desnapshots” (p. 91).

• A criptografia de um domínio do Amazon ES requer duas concessões, e cada chave de criptografiatem um limite de 500 concessões por principal. Esse limite significa que o número máximo de domíniosdo Amazon ES que você pode criptografar usando uma única chave é 250. Atualmente, o Amazon ESoferece suporte a, no máximo, 100 domínios por conta, portanto, esse limite de concessões não temimportância. No entanto, se o limite de domínios por conta aumentar, o limite de concessões poderá setornar relevante.

Se, nesse momento, você precisar criptografar mais de 250 domínios, poderá criar chaves adicionais. Aschaves são regionais, não globais, portanto, se você opera em mais de uma região da AWS, já precisade várias chaves.

Criptografia de nó a nó para o AmazonElasticsearch Service

A criptografia de nó a nó fornece uma camada adicional de segurança sobre os recursos padrão doAmazon ES.

Cada domínio do Amazon ES — independentemente de o domínio usar o acesso à VPC — reside em suaprópria VPC dedicada. Essa arquitetura impede que possíveis invasores interceptem o tráfego entre nósdo Elasticsearch e mantém o cluster seguro. Por padrão, no entanto, o tráfego na VPC não é criptografado.A criptografia de nó a nó permite a criptografia TLS para todas as comunicações dentro da VPC.

Se você enviar dados ao Amazon ES por HTTPS, a criptografia de nó a nó ajudará a garantir que seusdados permaneçam criptografados enquanto o Elasticsearch os distribui (e redistribui) por todo o cluster.Se os dados chegarem sem estarem criptografados por HTTP, o Amazon ES os criptografará depois deatingir o cluster.

Como habilitar a criptografia de nó a nóPor padrão, os domínios não usam a criptografia de nó a nó, e você não pode configurar os domíniosexistentes para usar o recurso. Para ativar o recurso, você deve criar outro domínio (p. 10) e migrar seusdados (p. 96). A criptografia de nó a nó requer o Elasticsearch 6.0 ou posterior.

Versão da API 2015-01-01137

Page 146: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComo desabilitar a criptografia de nó a nó

Como desabilitar a criptografia de nó a nóDepois de configurar um domínio para usar a criptografia de nó a nó, você não pode desativar aconfiguração. Em vez disso, você pode tirar um snapshot manual (p. 86) do domínio criptografado, criaroutro domínio (p. 10), migrar seus dados e excluir o domínio anterior.

Outras considerações• A criptografia de nó a nó não está disponível na região cn-north-1 (Pequim) e cn-northwest-1 (Ningxia).• O Kibana ainda funciona em domínios que usam a criptografia de nó a nó.

Versão da API 2015-01-01138

Page 147: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCódigo de exemplo

Uso do Curator para girar dados noAmazon Elasticsearch Service

Este capítulo tem um código de exemplo para usar o AWS Lambda e o Curator para gerenciar índices esnapshots. O Curator oferece vários filtros para ajudá-lo a identificar índices e snapshots que atendema determinados critérios, como índices criados há mais de 60 dias ou snapshots que não conseguiramconcluir.

Embora o Curator seja normalmente usado como uma interface de linha de comando (CLI), ele tambémapresenta uma API Python, o que significa que você pode usá-la em funções do Lambda.

Para obter mais informações sobre como configurar as funções do Lambda e criar pacotes de implantação,consulte the section called “Carregamento de dados em streaming no Amazon ES por meio do AmazonS3” (p. 69). Para obter mais informações, consulte AWS Lambda Developer Guide. Este capítulo contémapenas o código de exemplo, as configurações básicas, os triggers e as permissões.

Tópicos• Código de exemplo (p. 139)• Configurações básicas (p. 142)• Triggers (p. 142)• Permissões (p. 142)

Código de exemploO código de exemplo a seguir usa o Curator e o cliente Python Elasticsearch oficial para excluir qualqueríndice cujo nome contenha um time stamp indicando que os dados têm mais de 30 dias. Por exemplo, seum nome de índice for my-logs-2014.03.02, o índice será excluído. A exclusão ocorre mesmo quevocê crie o índice hoje, pois esse filtro usa o nome do índice para determinar a idade.

O código também contém alguns exemplos comentados de outros filtros comuns, incluindo um quedetermina a idade por data de criação. O AWS SDK para Python (boto3) e a biblioteca requests-aws4authassinam as solicitações para o Amazon ES.

Warning

Ambos os exemplos de código nesta seção excluem dados — potencialmente uma grandequantidade deles. Modifique e teste cada amostra em um domínio não crítico até que você estejasatisfeito com seu comportamento.

Exclusão de índice

import boto3from requests_aws4auth import AWS4Authfrom elasticsearch import Elasticsearch, RequestsHttpConnectionimport curator

host = '' # For example, search-my-domain.region.es.amazonaws.comregion = '' # For example, us-west-1

Versão da API 2015-01-01139

Page 148: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCódigo de exemplo

service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

# Lambda execution starts here.def lambda_handler(event, context):

# Build the Elasticsearch client. es = Elasticsearch( hosts = [{'host': host, 'port': 443}], http_auth = awsauth, use_ssl = True, verify_certs = True, connection_class = RequestsHttpConnection )

# A test document. document = { "title": "Moneyball", "director": "Bennett Miller", "year": "2011" }

# Index the test document so that we have an index that matches the timestring pattern. # You can delete this line and the test document if you already created some test indices. es.index(index="movies-2017.01.31", doc_type="movie", id="1", body=document)

index_list = curator.IndexList(es)

# Filters by age, anything with a time stamp older than 30 days in the index name. index_list.filter_by_age(source='name', direction='older', timestring='%Y.%m.%d', unit='days', unit_count=30)

# Filters by naming prefix. # index_list.filter_by_regex(kind='prefix', value='my-logs-2017')

# Filters by age, anything created more than one month ago. # index_list.filter_by_age(source='creation_date', direction='older', unit='months', unit_count=1)

print("Found %s indices to delete" % len(index_list.indices))

# If our filtered list contains any indices, delete them. if index_list.indices: curator.DeleteIndices(index_list).do_action()

Você deve atualizar os valores para host e region.

O próximo exemplo de código excluirá qualquer snapshot que tenha mais de duas semanas. Ele tambémcaptura um novo snapshot.

Exclusão de snapshot

import boto3from datetime import datetimefrom requests_aws4auth import AWS4Authfrom elasticsearch import Elasticsearch, RequestsHttpConnectionimport loggingimport curator

# Adding a logger isn't strictly required, but helps with understanding Curator's requests and debugging.

Versão da API 2015-01-01140

Page 149: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCódigo de exemplo

logger = logging.getLogger('curator')logger.addHandler(logging.StreamHandler())logger.setLevel(logging.INFO)

host = '' # For example, search-my-domain.region.es.amazonaws.comregion = '' # For example, us-west-1service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

now = datetime.now()# Clunky, but this approach keeps colons out of the URL.date_string = '-'.join((str(now.year), str(now.month), str(now.day), str(now.hour), str(now.second)))

snapshot_name = 'my-snapshot-prefix-' + date_stringrepository_name = 'my-repo'

# Lambda execution starts here.def lambda_handler(event, context):

# Build the Elasticsearch client. es = Elasticsearch( hosts = [{'host': host, 'port': 443}], http_auth = awsauth, use_ssl = True, verify_certs = True, connection_class = RequestsHttpConnection, timeout = 120 # Deleting snapshots can take a while, so keep the connection open for long enough to get a response. )

try: # Get all snapshots in the repository. snapshot_list = curator.SnapshotList(es, repository=repository_name)

# Filter by age, any snapshot older than two weeks. # snapshot_list.filter_by_age(source='creation_date', direction='older', unit='weeks', unit_count=2)

# Delete the old snapshots. curator.DeleteSnapshots(snapshot_list, retry_interval=30, retry_count=3).do_action() except (curator.exceptions.SnapshotInProgress, curator.exceptions.NoSnapshots, curator.exceptions.FailedExecution) as e: print(e)

# Split into two try blocks. We still want to try and take a snapshot if deletion failed. try: # Get the list of indices. # You can filter this list if you didn't want to snapshot all indices. index_list = curator.IndexList(es)

# Take a new snapshot. This operation can take a while, so we don't want to wait for it to complete. curator.Snapshot(index_list, repository=repository_name, name=snapshot_name, wait_for_completion=False).do_action() except (curator.exceptions.SnapshotInProgress, curator.exceptions.FailedExecution) as e: print(e)

Você deve atualizar os valores para host, region, snapshot_name e repository_name. Se a saídafor muito detalhada para suas necessidades, você pode alterar logging.INFO para logging.WARN.

Versão da API 2015-01-01141

Page 150: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorConfigurações básicas

Como capturar e excluir snapshots pode ser um pouco demorado, esse código é mais sensível à conexãoe a limitações de tempo do Lambda — assim como código de registro adicional. No cliente Elasticsearch,você pode ver se vamos definir esse tempo limite para 120 segundos. Se a função DeleteSnapshotslevar mais tempo para obter uma resposta do domínio do Amazon ES, pode ser necessário aumentaresse valor. Você também deve aumentar o tempo limite da função do Lambda de seu valor padrão de trêssegundos. Para um valor recomendado, consulte the section called “Configurações básicas” (p. 142).

Configurações básicasRecomendamos as seguintes configurações para os exemplos de código neste capítulo.

Código de exemplo Memória Tempo limite

Exclusão de índice 128 MB 10 segundos

Exclusão de snapshot 128 MB 3 minutos

TriggersEm vez de reagir a algum evento (como um arquivo carregado para o Amazon S3), essas funções devemser programadas. Você pode preferir executar essas funções com mais ou menos frequência.

Código de exemplo Serviço Tipo de regra Expressão de exemplo

Exclusão de índice Eventos do CloudWatch Expressão deprogramação

rate(1 day)

Exclusão de snapshot Eventos do CloudWatch Expressão deprogramação

rate(4 hours)

PermissõesAmbas as funções do Lambda neste capítulo precisam de permissões básicas de registro das quais todasas funções do Lambda precisam, além de permissões do método HTTP para o domínio do Amazon ES:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "arn:aws:logs:us-west-1:123456789012:*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-1:123456789012:log-group:/aws/lambda/your-lambda-function:*" ]

Versão da API 2015-01-01142

Page 151: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPermissões

}, { "Effect": "Allow", "Action": [ "es:ESHttpPost", "es:ESHttpGet", "es:ESHttpPut", "es:ESHttpDelete" ], "Resource": "arn:aws:es:us-west-1:123456789012:domain/my-domain/*" } ]}

Versão da API 2015-01-01143

Page 152: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNão é possível acessar o Kibana

Solução de problemas com oAmazon Elasticsearch Service

Esta seção descreve como identificar e resolver problemas comuns do Amazon Elasticsearch Service.Consulte as informações nesta seção antes de entrar em contato com o AWS Support.

Não é possível acessar o KibanaO endpoint do Kibana não oferece suporte a solicitações assinadas. Se a política de controle de acessodo seu domínio apenas concede acesso a determinados usuários ou funções do IAM e se você não tiverconfigurado o Autenticação para o Kibana (p. 103), você poderá receber a seguinte mensagem de erroquando você tentar acessar o Kibana:

"User: anonymous is not authorized to perform: es:ESHttpGet"

Se o domínio do Amazon ES usar o acesso da VPC, você poderá não receber esse erro. Em vez disso,a solicitação pode atingir o tempo limite. Para saber mais sobre como corrigir esse problema e as váriasopções de configuração disponíveis, consulte the section called “Controlar acesso ao Kibana” (p. 98), thesection called “Sobre políticas de acesso em domínios da VPC” (p. 118) e Controle de acesso (p. 31).

Não é possível acessar o domínio VPCConsulte the section called “Sobre políticas de acesso em domínios da VPC” (p. 118) e the section called“Teste dos domínios da VPC” (p. 119).

Status de cluster vermelhoUm status de cluster vermelho significa que pelo menos um estilhaço principal e suas réplicas não estãoalocados para um nó. O Amazon ES para de fazer snapshots automáticos, até mesmo de índices íntegros,enquanto o status de cluster vermelho persiste.

As causas mais comuns do status vermelho para o cluster são nós de cluster que apresentamfalha (p. 148) e o travamento do processamento do Elasticsearch devido a uma carga contínua deprocessos pesados.

Note

O Amazon ES armazena até 14 snapshots diários automatizados por 30 dias. Portanto, se ostatus de cluster vermelho persistir por mais de 16 dias, poderá ocorrer perda permanente dedados. Se seu domínio do Amazon ES entrar em um status de cluster vermelho, o AWS Supportpoderá entrar em contato com você para perguntar se deseja resolver o problema por contaprópria ou se deseja que a equipe de suporte ajude. Você também pode definir um alarme doCloudWatch (p. 131) para notificá-lo quando ocorrer um status de cluster vermelho.

Em última análise, estilhaços vermelhos causam clusters vermelhos e índices vermelhos causamestilhaços vermelhos. Para identificar os índices que estão causando o status de cluster vermelho, oElasticsearch tem algumas APIs úteis.

• GET /_cluster/allocation/explain escolhe o primeiro estilhaço sem atribuição que eleencontrar e explica por que ele não pode ser alocado para um nó:

Versão da API 2015-01-01144

Page 153: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRecuperação de uma carga

contínua de processamento pesado

{ "index": "test4", "shard": 0, "primary": true, "current_state": "unassigned", "can_allocate": "no", "allocate_explanation": "cannot allocate because allocation is not permitted to any of the nodes"}

• GET /_cat/indices?v mostra o status de integridade, o número de documentos e o uso do discopara cada índice:

health status index uuid pri rep docs.count docs.deleted store.size pri.store.sizegreen open test1 30h1EiMvS5uAFr2t5CEVoQ 5 0 820 0 14mb 14mbgreen open test2 sdIxs_WDT56afFGu5KPbFQ 1 0 0 0 233b 233bgreen open test3 GGRZp_TBRZuSaZpAGk2pmw 1 1 2 0 14.7kb 7.3kbred open test4 BJxfAErbTtu5HBjIXJV_7A 1 0green open test5 _8C6MIXOSxCqVYicH3jsEA 1 0 7 0 24.3kb 24.3kb

A exclusão de índices vermelhos é a maneira mais rápida de corrigir um status de cluster vermelho.Dependendo do motivo para o status de cluster vermelho, você pode dimensionar o domínio doAmazon ES para usar tipos de instância maiores, um maior número de instâncias ou mais locais dearmazenamento EBS, e tentar recriar os índices problemáticos.

Se a exclusão de um índice problemático não é viável, você pode restaurar um snapshot (p. 91), excluirdocumentos do índice, alterar as configurações de índice, reduzir o número de réplicas ou excluir outrosíndices para liberar espaço em disco. O importante é resolver o status de cluster vermelho antes dereconfigurar o domínio do Amazon ES. A reconfiguração de um domínio com um status de clustervermelho pode agravar o problema e fazer com que o domínio fique preso em um estado de configuraçãoProcessing (Em processamento) até que você resolva o status.

Recuperação de uma carga contínua deprocessamento pesadoPara determinar se um status de cluster vermelho deve-se a uma carga contínua de processamentopesado em um nó de dados, monitore as métricas de cluster a seguir.

Métrica relevante Descrição Recuperação

JVMMemoryPressure Especifica a porcentagem do heap doJava usada para todos os nós de dadosem um cluster. Visualize a estatísticaMaximum (Máximo) para essa métricae procure quedas ainda menores napressão de memória enquanto o coletorde lixo Java falhar na recuperaçãode memória suficiente. Esse padrãoprovavelmente se deve a consultas

Defina disjuntores dememória para JVM. Paraobter mais informações,consulte the section called“OutOfMemoryError emJVM” (p. 147).

Se o problema persistir, excluaíndices desnecessários, reduzao número ou a complexidade

Versão da API 2015-01-01145

Page 154: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorStatus de cluster amarelo

Métrica relevante Descrição Recuperaçãocomplexas ou a campos de dadosgrandes.

Com 75% de memória em uso, oElasticsearch aciona o coletor de lixoConcurrent Mark Sweep (CMS), que éexecutado junto com outros processospara manter as pausas e interrupçõesao mínimo. Se o CMS falhar narecuperação de memória suficiente eo uso permanecer acima de 75%, oElasticsearch acionará um algoritmo decoleta de lixo diferente que interromperáou atrasará outros processos paraliberar memória suficiente e impedir umerro de memória insuficiente.

Com 95% de memória em uso, oElasticsearch eliminará os processosque tentarem alocar memória. Ele podeeliminar um processo crítico e desativarum ou mais nós no cluster.

A API _nodes/stats/jvm ofereceum resumo útil das estatísticas do JVM,do uso do grupo de memórias e dasinformações sobre coleta de lixo:

GET elasticsearch_domain/_nodes/stats/jvm?pretty

das solicitações para odomínio, adicione instâncias ouuse tipos de instância maiores.

CPUUtilization Especifica a porcentagem de recursosda CPU usados para nós de dadosem um cluster. Visualize a estatísticaMaximum para essa métrica e procureum padrão contínuo de uso intenso.

Adicione nós de dados ouaumente o tamanho dos tiposde instância dos nós de dadosexistentes. Para obter maisinformações, consulte thesection called “Configuraçãode domínios do AmazonES” (p. 16).

Nós Especifica o número de nós em umcluster. Visualize a estatística Minimum(Mínimo) para essa métrica. Esse valoroscila quando o serviço implanta umanova frota de instâncias para um cluster.

Adicione nós de dados. Paraobter mais informações,consulte the section called“Configuração de domínios doAmazon ES” (p. 16).

Status de cluster amareloStatus de cluster amarelo significa que estilhaços principais de todos os índices estão alocados a nósem um cluster, mas os estilhaços de réplica de pelo menos um índice não estão. Os clusters de nó únicosempre inicializam com um status de cluster amarelo porque não existe nenhum outro nó ao qual oAmazon ES possa atribuir uma réplica. Para obter o status de cluster verde, aumente a contagem de nós.Para obter mais informações, consulte the section called “Dimensionamento de domínios do AmazonES” (p. 125) e the section called “Configuração de domínios do Amazon ES” (p. 16).

Versão da API 2015-01-01146

Page 155: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorClusterBlockException

ClusterBlockExceptionVocê pode receber um erro ClusterBlockException pelos motivos a seguir.

Falta de espaço de armazenamento disponívelSe nenhum nó tiver espaço de armazenamento suficiente para acomodar a realocação de estilhaços,algumas operações básicas de gravação, como adição de documentos e criação de índices, podemcomeçar a falhar. the section called “Cálculo de requisitos de armazenamento” (p. 125) fornece um resumode como o Amazon ES usa o espaço em disco.

Para evitar problemas, monitore a métrica FreeStorageSpace no console do Amazon ES e criealarmes do CloudWatch (p. 131) para serem acionados quando o FreeStorageSpace ficar abaixode determinado limite. GET /_cat/allocation?v também fornece um resumo útil de alocação deestilhaços e do uso do disco. Para resolver problemas associados à falta de espaço de armazenamento,dimensione o domínio do Amazon ES para usar tipos de instância maiores, um número maior de instânciasou mais armazenamento EBS. Para obter instruções, consulte the section called “Configuração dedomínios do Amazon ES” (p. 16).

Bloqueio de discos em virtude de pouca memóriaQuando a métrica JVMMemoryPressure fica acima de 92% por 30 minutos, o Amazon ES acionaum mecanismo de proteção e bloqueia todas as operações de gravação para impedir que o clusterentre no status vermelho. Quando a proteção for ativada, ocorrerão falhas nas operações de gravaçãodevido a um erro ClusterBlockException, novos índices não poderão ser criados, e o erroIndexCreateBlockException ocorrerá.

Quando a métrica JVMMemoryPressure retorna para 88% ou menos durante cinco minutos, a proteção édesativada e as operações de gravação no cluster são desbloqueadas.

OutOfMemoryError em JVMNormalmente, OutOfMemoryError em JVM significa que um dos seguintes disjuntores para JVM foiatingido.

Disjuntor Descrição Propriedade de configuração de cluster

Disjuntor principal Porcentagem total dememória do heap de JVMpermitida para todos osdisjuntores. O valor padrão é70%.

indices.breaker.total.limit

Disjuntor de dados decampo

Porcentagem de memória doheap de JVM com permissãopara carregar um únicocampo de dados na memória.O valor padrão é 60%.Se você carregar dadoscom campos grandes, érecomendável aumentar esselimite.

indices.breaker.fielddata.limit

Versão da API 2015-01-01147

Page 156: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorFalha em nós de cluster

Disjuntor Descrição Propriedade de configuração de cluster

Disjuntor desolicitações

Porcentagem de memóriado heap de JVM permitidapara estruturas de dadosusados para responder auma solicitação de serviço.O valor padrão é 40%.Se suas solicitações deserviço exigirem cálculo deagregações, é recomendávelaumentar esse limite.

indices.breaker.request.limit

Falha em nós de clusterAs instâncias do Amazon EC2 podem apresentar encerramentos inesperados e reinicializações.Normalmente, o Amazon ES reinicia os nós para você. No entanto, é possível que um ou mais nós em umcluster do Elasticsearch permaneçam em condição de falha.

Para verificar essa condição, abra o painel do domínio no console do Amazon ES. Escolha a guia Clusterhealth (Integridade do cluster) e, em seguida, a métrica Nodes (Nós). Veja se o número de nós relatado éinferior ao número que você configurou para seu cluster. Se a métrica mostrar que um ou mais nós estãoinativos por mais de um dia, entre em contato com o AWS Support.

Você também pode definir um alarme do CloudWatch (p. 131) para notificá-lo quando ocorrer esseproblema.

Note

A métrica Nodes não é precisa durante as alterações na configuração do cluster e durante amanutenção de rotina do serviço. Esse comportamento é esperado. A métrica logo informará onúmero correto de nós do cluster. Para saber mais, consulte the section called “Sobre alteraçõesde configuração” (p. 45).

Para proteger seus clusters contra encerramentos e reinicializações inesperadas no nó, crie pelo menosuma réplica para cada índice no domínio do Amazon ES.

Não é possível fechar o índiceO Amazon ES não é compatível com a API _close. Se você estiver restaurando um índice de umsnapshot, poderá excluir o índice existente (antes ou depois de reindexá-lo). A outra opção é usar oscampos rename_pattern e rename_replacement para renomear o índice ao restaurá-lo:

POST /_snapshot/my-repository/my-snapshot/_restore{ "indices": "my-index-1,myindex-2", "include_global_state": true, "rename_pattern": "my-index-(\\d)", "rename_replacement": "restored-my-index-$1"}

Se você planeja reindexar, reduzir ou dividir um índice, provavelmente desejará parar de gravar nele antesde executar a operação.

Versão da API 2015-01-01148

Page 157: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNão é possível executar o SSH no nó

Não é possível executar o SSH no nóNão é possível usar o SSH para acessar qualquer um dos nós em seu cluster do Elasticsearch nemmodificar elasticsearch.yml diretamente. Em vez disso, use o console, a AWS CLI ou SDKs paraconfigurar o domínio. Você também pode especificar algumas configurações no nível do cluster usandoas APIs REST do Elasticsearch. Para saber mais, consulte Referência sobre a API de configuração doAmazon ES (p. 169) e the section called “Operações compatíveis do Elasticsearch” (p. 153).

Se você precisar de mais informações sobre o desempenho do cluster, poderá publicar logs de erro e logslentos no CloudWatch (p. 26).

Erro de snapshot "Inválido para a classe dearmazenamento do objeto"

Os snapshots do Amazon ES não são compatíveis com a classe de armazenamento do Glacier. Vocêpoderá encontrar esse erro ao tentar listar os snapshots se o bucket do S3 incluir uma regra de ciclo devida que faz a transição de objetos para a classe de armazenamento do Glacier.

Se você precisar restaurar um snapshot do bucket, restaure os objetos do Glacier, copie os objetos em umnovo bucket e registre o novo bucket (p. 88) como um repositório de snapshots.

Cabeçalho de host inválidoO Amazon ES exige que os clientes especifiquem Host em cabeçalhos de solicitação. Um valor Hostválido é o endpoint do domínio sem https://, como:

Host: search-my-sample-domain-ih2lhn2ew2scurji.us-west-2.es.amazonaws.com

Se você receber um erro Invalid Host Header, verifique se o seu cliente inclui o endpoint do domíniodo Amazon ES (e não, por exemplo, seu endereço IP) no cabeçalho Host.

Erro de navegador ao usar o KibanaSeu navegador encapsula mensagens de erro do serviço em objetos de resposta HTTP quando vocêusa o Kibana para visualizar dados em seu domínio do Amazon ES. Você pode usar ferramentas dedesenvolvedor normalmente disponíveis em navegadores da web, como Modo de Desenvolvedor noChrome, para visualizar erros de serviço subjacentes e auxiliar suas operações de depuração.

Para visualizar erros de serviço no Chrome

1. No menu, escolha View, Developer, Developer Tools.2. Escolha a guia Network.3. Na coluna Status, escolha qualquer sessão HTTP com status 500.

Para visualizar erros de serviço no Firefox

1. No menu, escolha Tools, Web Developer, Network.

Versão da API 2015-01-01149

Page 158: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorOperação não autorizada após escolher o acesso da VPC

2. Escolha qualquer sessão HTTP com status 500.3. Escolha a guia Response para visualizar a resposta do serviço.

Operação não autorizada após escolher o acessoda VPC

Ao criar um novo domínio usando o console do Amazon ES, você tem a opção de escolher um acesso daVPC ou acesso público. Se você escolher VPC access (Acesso da VPC), o Amazon ES realizará consultaspara obter informações da VPC e falhará se você não tiver as permissões adequadas:

You are not authorized to perform this operation. (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation

Para habilitar esta consulta, você deve ter acesso às operações ec2:DescribeVpcs,ec2:DescribeSubnets e ec2:DescribeSecurityGroups. Esse requisito se aplica somente aoconsole. Se você usar a CLI da AWS para criar e configurar um domínio com um VPC endpoint, nãoprecisará de acesso a essas operações.

Carregamento travado após criar o domínio VPCDepois de criar um novo domínio que usa o acesso da VPC, o Estado de configuração do domínio podeficar travado em Carregando. Se esse problema ocorrer, provavelmente o AWS Security Token Service(AWS STS) está desativado para a sua região.

Para adicionar VPC endpoints à sua VPC, o Amazon ES precisa assumir a funçãoAWSServiceRoleForAmazonElasticsearchService. Assim, o AWS STS deve ser ativado para criarnovos domínios que usam acesso da VPC em uma determinada região. Para saber mais sobre a ativaçãoe a desativação do AWS STS, consulte o Guia do usuário do IAM.

Erro de certificado ao usar o SDKComo os SDKs das AWS usam os certificados de CA do computador, as alterações feitas nos certificadosnos servidores da AWS podem provocar falhas de conexão quando você tenta usar um SDK. Asmensagens de erro variam, mas geralmente contêm o seguinte texto:

Failed to query Elasticsearch...SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Você pode impedir essas falhas mantendo os certificados de CA do computador e o sistema operacionalatualizados. Se encontrar esse problema em um ambiente corporativo e não gerenciar seu computador,talvez tenha de pedir a um administrador para auxiliá-lo no processo de atualização.

A lista a seguir mostra as versões mínimas de sistema operacional e Java:

• As versões do Microsoft Windows que têm atualizações de janeiro de 2005 ou posteriores instaladascontêm pelo menos uma das CAs necessárias em sua lista de confiança.

• O Mac OS X 10.4 com Java para Mac OS X 10.4 Release 5 (fevereiro de 2007), Mac OS X 10.5 (outubrode 2007) e versões posteriores contêm pelo menos uma das CAs necessárias em sua lista de confiança.

Versão da API 2015-01-01150

Page 159: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorErro de certificado ao usar o SDK

• O Red Hat Enterprise Linux 5 (março de 2007), 6 e 7 e o CentOS 5, 6 e 7 contêm pelo menos uma dasCAs necessárias em sua lista de CAs confiáveis padrão.

• Java 1.4.2_12 (maio de 2006), 5 Update 2 (março de 2005) e todas as versões mais recentes, comoJava 6 (dezembro de 2006), 7 e 8, contêm pelo menos uma das CAs necessárias em sua lista de CAsconfiáveis padrão.

As três autoridades de certificação são:

• Amazon Root CA 1• Starfield Services Root Certificate Authority – G2• Starfield Class 2 Certification Authority

Os certificados raiz das duas primeiras autoridades estão disponíveis em Amazon Trust Services,mas manter o computador atualizado é a solução mais simples. Para saber mais sobre os certificadosfornecidos pelo ACM, consulte Perguntas frequentes sobre o AWS Certificate Manager.

Note

No momento, os domínios do Amazon ES na região us-east-1 usam certificados de umaautoridade diferente. Pretendemos atualizar a região para usar essas novas autoridades decertificação em um futuro próximo.

Versão da API 2015-01-01151

Page 160: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorTipos de instâncias compatíveis

Referência geral do AmazonElasticsearch Service

O Amazon Elasticsearch Service (Amazon ES) comporta uma variedade de instâncias, operações, plug-inse outros recursos.

Tópicos• Tipos de instâncias compatíveis (p. 152)• Operações compatíveis do Elasticsearch (p. 153)• Plug-ins compatíveis (p. 161)• Outros recursos compatíveis (p. 164)

Tipos de instâncias compatíveisO Amazon ES é compatível com os tipos de instância a seguir. Nem todas as regiões são compatíveiscom todos os tipos de instância. Para detalhes de disponibilidade, consulte Definição de preço do AmazonElasticsearch Service.

Para obter informações sobre qual tipo de instância é apropriado para seu caso de uso, consulte thesection called “Dimensionamento de domínios do Amazon ES” (p. 125), the section called “Limites detamanhos de volume do EBS” (p. 232) e the section called “Limites de rede” (p. 234).

Tipo de instância Restrições

C4  

I2  

I3 Os tipos de instância I3 não suportam volumes de armazenamento do EBS erequerem o Elasticsearch versão 5.1 ou mais recente.

M3 Os tipos de instâncias M3 não oferecem suporte à criptografia de dados em repouso.

M4  

R3 Os tipos de instâncias R3 não oferecem suporte à criptografia de dados em repouso.

R4  

T2 • Você só poderá usar os tipos de instância T2 se a contagem de instâncias de seudomínio for 10 ou menos.

• O tipo de instância t2.micro.elasticsearch só oferece suporte aoElasticsearch 2.3 e 1.5.

• Os tipos de instâncias T2 não oferecem suporte à criptografia de dados emrepouso.

Tip

Você pode usar diferentes tipos de instâncias para nós principais dedicados (p. 128) e nós dedados.

Versão da API 2015-01-01152

Page 161: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorOperações compatíveis do Elasticsearch

Operações compatíveis do ElasticsearchO Amazon ES oferece suporte a várias versões do Elasticsearch. Os tópicos a seguir mostram asoperações que o Amazon ES comporta em cada versão.

Tópicos• Diferenças notáveis de API (p. 153)• Versão 6.3 (p. 154)• Versão 6.2 (p. 155)• Versão 6.0 (p. 156)• Versão 5.6 (p. 157)• Versão 5.5 (p. 158)• Versão 5.3 (p. 158)• Versão 5.1 (p. 159)• Versão 2.3 (p. 160)• Versão 1.5 (p. 160)

Diferenças notáveis de APIConfigurações do clusterAntes do Elasticsearch 5.3, a API _cluster/settings nos domínios do Amazon ES ofereciam suporteapenas ao método PUT HTTP, e não ao método GET. As versões mais recentes oferecem suporte aométodo GET, conforme mostrado no exemplo a seguir:

GET https://domain.region.es.amazonaws.com/_cluster/settings?pretty

Um retorno de exemplo se segue:

{ "persistent" : { "cluster" : { "routing" : { "allocation" : { "cluster_concurrent_rebalance" : "2" } } }, "indices" : { "recovery" : { "max_bytes_per_sec" : "20mb" } } }, "transient" : { "cluster" : { "routing" : { "allocation" : { "exclude" : { "di_number" : "2" } } } } }

Versão da API 2015-01-01153

Page 162: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVersão 6.3

}

• cluster_concurrent_rebalance especifica o número de estilhaços que podem ser realocados anovos nós em qualquer momento específico.

• max_bytes_per_sec é a velocidade máxima de transferência de dados que o Elasticsearch usadurante um evento de recuperação.

• di_number é um valor interno do Amazon ES usado para copiar estilhaços em novas instâncias dedomínio após alterações de configuração.

ShrinkA API _shrink pode causar falhas em atualizações, alterações de configuração e exclusões de domínio.Não recomendamos usá-la em domínios que executam o Elasticsearch versões 5.3 ou 5.1. Essas versõestêm um erro que pode causar falha na restauração de snapshots de índices reduzidos.

Se você usar a API _shrink em outras versões do Elasticsearch, faça a seguinte solicitação antes deiniciar a operação de redução:

PUT https://domain.region.es.amazonaws.com/source-index/_settings{ "settings": { "index.routing.allocation.require._name": "name-of-the-node-to-shrink-to", "index.blocks.read_only": true }}

Em seguida, faça a seguinte solicitação após concluir a operação de redução:

PUT https://domain.region.es.amazonaws.com/source-index/_settings{ "settings": { "index.routing.allocation.require._name": null, "index.blocks.read_only": false }}

Versão 6.3No Elasticsearch 6.3, o Amazon ES comporta as operações a seguir.

• /_alias

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cache/clear (somenteÍndice)

• /_cat

• /_cluster/allocation/explain

• /_cluster/health

• /_cluster/pending_tasks

• /_delete_by_query1

• /_explain

• /_field_stats

• /_flush

• /_forcemerge (somenteÍndice)

• /_ingest

• /_mapping

• /_mget

• /_msearch

• /_mtermvectors

• /_scripts3

/_search2

• /_search profile

• /_segments (somente Índice)• /_shard_stores

• /_shrink5

• /_snapshot

• /_split

• /_stats

• /_status

• /_tasks

Versão da API 2015-01-01154

Page 163: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVersão 6.2

• /_cluster/settings paravárias propriedades4:• action.auto_create_index

• action.search.shard_count.limit

• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• /_cluster/state

• /_cluster/stats

• /_count

• /_nodes

• /_plugin/kibana

• /_rank_eval

• /_recovery (somente Índice)• /_refresh

• /_reindex1

• /_rollover

• /_template

• /_termvectors (somenteÍndice)

• /_update3

• /_update_by_query1

• /_validate

1. Essas operações podem ser interrompidas por alterações na configuração de cluster. É recomendávelusar a operação /_tasks com essas operações para verificar se as solicitações foram concluídas comêxito.

2. Solicitações de DELETE para /_search/scroll com um corpo de mensagem deve especificar"Content-Length" no cabeçalho HTTP. A maioria dos clientes adicionam esse cabeçalho porpadrão. Para evitar um problema com caracteres = nos valores scroll_id, use o corpo da solicitação,e não a string de consulta, para passar os valores do scroll_id para o Amazon ES.

3. Para saber as considerações sobre o uso de scripts, consulte the section called “Outros recursoscompatíveis” (p. 164).

4. Refere-se ao método PUT. Para obter informações sobre o método GET, consulte the section called“Diferenças notáveis de API” (p. 153).

5. Consulte the section called “Shrink” (p. 154).

Versão 6.2No Elasticsearch 6.2, o Amazon ES comporta as operações a seguir.

• /_alias

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cache/clear (somenteÍndice)

• /_cat

• /_cluster/allocation/explain

• /_cluster/health

• /_cluster/pending_tasks

• /_cluster/settings paravárias propriedades4:• action.auto_create_index

• action.search.shard_count.limit

• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• /_delete_by_query1

• /_explain

• /_field_stats

• /_flush

• /_forcemerge (somenteÍndice)

• /_ingest

• /_mapping

• /_mget

• /_msearch

• /_mtermvectors

• /_nodes

• /_plugin/kibana

• /_rank_eval

• /_recovery (somente Índice)• /_refresh

• /_reindex1

• /_rollover

• /_scripts3

/_search2

• /_search profile

• /_segments (somente Índice)• /_shard_stores

• /_shrink5

• /_snapshot

• /_split

• /_stats

• /_status

• /_tasks

• /_template

• /_termvectors (somenteÍndice)

• /_update3

• /_update_by_query1

• /_validate

Versão da API 2015-01-01155

Page 164: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVersão 6.0

• /_cluster/state

• /_cluster/stats

• /_count

1. Essas operações podem ser interrompidas por alterações na configuração de cluster. É recomendávelusar a operação /_tasks com essas operações para verificar se as solicitações foram concluídas comêxito.

2. Solicitações de DELETE para /_search/scroll com um corpo de mensagem deve especificar"Content-Length" no cabeçalho HTTP. A maioria dos clientes adicionam esse cabeçalho porpadrão. Para evitar um problema com caracteres = nos valores scroll_id, use o corpo da solicitação,e não a string de consulta, para passar os valores do scroll_id para o Amazon ES.

3. Para saber as considerações sobre o uso de scripts, consulte the section called “Outros recursoscompatíveis” (p. 164).

4. Refere-se ao método PUT. Para obter informações sobre o método GET, consulte the section called“Diferenças notáveis de API” (p. 153).

5. Consulte the section called “Shrink” (p. 154).

Versão 6.0No Elasticsearch 6.0, o Amazon ES comporta as operações a seguir.

• /_alias

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cache/clear (somenteÍndice)

• /_cat

• /_cluster/allocation/explain

• /_cluster/health

• /_cluster/pending_tasks

• /_cluster/settings paravárias propriedades4:• action.auto_create_index

• action.search.shard_count.limit

• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• /_cluster/state

• /_cluster/stats

• /_count

• /_delete_by_query1

• /_explain

• /_field_stats

• /_flush

• /_forcemerge (somenteÍndice)

• /_ingest

• /_mapping

• /_mget

• /_msearch

• /_mtermvectors

• /_nodes

• /_plugin/kibana

• /_recovery (somente Índice)• /_refresh

• /_reindex1

• /_rollover

• /_scripts3

/_search2

• /_search profile

• /_segments (somente Índice)• /_shard_stores

• /_shrink5

• /_snapshot

• /_stats

• /_status

• /_tasks

• /_template

• /_termvectors (somenteÍndice)

• /_update3

• /_update_by_query1

• /_validate

1. Essas operações podem ser interrompidas por alterações na configuração de cluster. É recomendávelusar a operação /_tasks com essas operações para verificar se as solicitações foram concluídas comêxito.

Versão da API 2015-01-01156

Page 165: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVersão 5.6

2. Solicitações de DELETE para /_search/scroll com um corpo de mensagem deve especificar"Content-Length" no cabeçalho HTTP. A maioria dos clientes adicionam esse cabeçalho porpadrão. Para evitar um problema com caracteres = nos valores scroll_id, use o corpo da solicitação,e não a string de consulta, para passar os valores do scroll_id para o Amazon ES.

3. Para saber as considerações sobre o uso de scripts, consulte the section called “Outros recursoscompatíveis” (p. 164).

4. Refere-se ao método PUT. Para obter informações sobre o método GET, consulte the section called“Diferenças notáveis de API” (p. 153).

5. Consulte the section called “Shrink” (p. 154).

Versão 5.6No Elasticsearch 5.6, o Amazon ES comporta as operações a seguir.

• /_alias

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cache/clear (somenteÍndice)

• /_cat

• /_cluster/allocation/explain

• /_cluster/health

• /_cluster/pending_tasks

• /_cluster/settings paravárias propriedades4:• action.auto_create_index

• action.search.shard_count.limit

• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• /_cluster/state

• /_cluster/stats

• /_count

• /_delete_by_query1

• /_explain

• /_field_stats

• /_flush

• /_forcemerge (somenteÍndice)

• /_ingest

• /_mapping

• /_mget

• /_msearch

• /_mtermvectors

• /_nodes

• /_plugin/kibana

• /_recovery (somente Índice)• /_refresh

• /_reindex1

• /_rollover

• /_scripts3

/_search2

• /_search profile

• /_segments (somente Índice)• /_shard_stores

• /_shrink5

• /_snapshot

• /_stats

• /_status

• /_tasks

• /_template

• /_termvectors (somenteÍndice)

• /_update3

• /_update_by_query1

• /_validate

1. Essas operações podem ser interrompidas por alterações na configuração de cluster. É recomendávelusar a operação /_tasks com essas operações para verificar se as solicitações foram concluídas comêxito.

2. Solicitações de DELETE para /_search/scroll com um corpo de mensagem deve especificar"Content-Length" no cabeçalho HTTP. A maioria dos clientes adicionam esse cabeçalho porpadrão. Para evitar um problema com caracteres = nos valores scroll_id, use o corpo da solicitação,e não a string de consulta, para passar os valores do scroll_id para o Amazon ES.

3. Para saber as considerações sobre o uso de scripts, consulte the section called “Outros recursoscompatíveis” (p. 164).

4. Refere-se ao método PUT. Para obter informações sobre o método GET, consulte the section called“Diferenças notáveis de API” (p. 153).

Versão da API 2015-01-01157

Page 166: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVersão 5.5

5. Consulte the section called “Shrink” (p. 154).

Versão 5.5No Elasticsearch 5.5, o Amazon ES comporta as operações a seguir.

• /_alias

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cache/clear (somenteÍndice)

• /_cat

• /_cluster/allocation/explain

• /_cluster/health

• /_cluster/pending_tasks

• /_cluster/settings paravárias propriedades4:• action.auto_create_index

• action.search.shard_count.limit

• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• /_cluster/state

• /_cluster/stats

• /_count

• /_delete_by_query1

• /_explain

• /_field_stats

• /_flush

• /_forcemerge (somenteÍndice)

• /_ingest

• /_mapping

• /_mget

• /_msearch

• /_mtermvectors

• /_nodes

• /_plugin/kibana

• /_recovery (somente Índice)• /_refresh

• /_reindex1

• /_rollover

• /_scripts3

/_search2

• /_search profile

• /_segments (somente Índice)• /_shard_stores

• /_shrink5

• /_snapshot

• /_stats

• /_status

• /_tasks

• /_template

• /_termvectors (somenteÍndice)

• /_update3

• /_update_by_query1

• /_validate

1. Essas operações podem ser interrompidas por alterações na configuração de cluster. É recomendávelusar a operação /_tasks com essas operações para verificar se as solicitações foram concluídas comêxito.

2. Solicitações de DELETE para /_search/scroll com um corpo de mensagem deve especificar"Content-Length" no cabeçalho HTTP. A maioria dos clientes adicionam esse cabeçalho porpadrão. Para evitar um problema com caracteres = nos valores scroll_id, use o corpo da solicitação,e não a string de consulta, para passar os valores do scroll_id para o Amazon ES.

3. Para saber as considerações sobre o uso de scripts, consulte the section called “Outros recursoscompatíveis” (p. 164).

4. Refere-se ao método PUT. Para obter informações sobre o método GET, consulte the section called“Diferenças notáveis de API” (p. 153).

5. Consulte the section called “Shrink” (p. 154).

Versão 5.3No Elasticsearch 5.3, o Amazon ES comporta as operações a seguir.

• /_alias • /_delete_by_query1 • /_search2

Versão da API 2015-01-01158

Page 167: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVersão 5.1

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cache/clear (somente Índice)• /_cat

• /_cluster/allocation/explain

• /_cluster/health

• /_cluster/pending_tasks

• /_cluster/settings para váriaspropriedades4:• action.auto_create_index

• action.search.shard_count.limit

• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• /_cluster/state

• /_cluster/stats

• /_count

• /_explain

• /_field_stats

• /_flush

• /_forcemerge(somente Índice)

• /_ingest

• /_mapping

• /_mget

• /_msearch

• /_mtermvectors

• /_nodes

• /_plugin/kibana

• /_recovery (somenteÍndice)

• /_refresh

• /_reindex1

• /_rollover

• /_search profile

• /_segments(somente Índice)

• /_shard_stores

• /_shrink5

• /_snapshot

• /_stats

• /_status

• /_tasks

• /_template

• /_termvectors(somente Índice)

• /_update3

• /_update_by_query1

• /_validate

1. Essas operações podem ser interrompidas por alterações na configuração de cluster. É recomendávelusar a operação /_tasks com essas operações para verificar se as solicitações foram concluídas comêxito.

2. Solicitações de DELETE para /_search/scroll com um corpo de mensagem deve especificar"Content-Length" no cabeçalho HTTP. A maioria dos clientes adicionam esse cabeçalho porpadrão. Para evitar um problema com caracteres = nos valores scroll_id, use o corpo da solicitação,e não a string de consulta, para passar os valores do scroll_id para o Amazon ES.

3. Para saber as considerações sobre o uso de scripts, consulte the section called “Outros recursoscompatíveis” (p. 164).

4. Refere-se ao método PUT. Para obter informações sobre o método GET, consulte the section called“Diferenças notáveis de API” (p. 153).

5. Consulte the section called “Shrink” (p. 154).

Versão 5.1No Elasticsearch 5.1, o Amazon ES comporta as operações a seguir.

• /_alias

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cache/clear (somente Índice)• /_cat

• /_cluster/allocation/explain

• /_cluster/health

• /_count

• /_delete_by_query1

• /_explain

• /_field_stats

• /_flush

• /_forcemerge(somente Índice)

• /_ingest

• /_mapping

• /_mget

• /_rollover

• /_search2

• /_search profile

• /_segments(somente Índice)

• /_shard_stores

• /_shrink4

• /_snapshot

• /_stats

• /_status

Versão da API 2015-01-01159

Page 168: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVersão 2.3

• /_cluster/pending_tasks

• /_cluster/settings para váriaspropriedades (somente PUT):• action.auto_create_index

• action.search.shard_count.limit

• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• /_cluster/state

• /_cluster/stats

• /_msearch

• /_mtermvectors

• /_nodes

• /_plugin/kibana

• /_recovery (somenteÍndice)

• /_refresh

• /_reindex1

• /_tasks

• /_template

• /_termvectors(somente Índice)

• /_update3

• /_update_by_query1

• /_validate

1. Essas operações podem ser interrompidas por alterações na configuração de cluster. É recomendávelusar a operação /_tasks com essas operações para verificar se as solicitações foram concluídas comêxito.

2. Solicitações de DELETE para /_search/scroll com um corpo de mensagem deve especificar"Content-Length" no cabeçalho HTTP. A maioria dos clientes adicionam esse cabeçalho porpadrão. Para evitar um problema com caracteres = nos valores scroll_id, use o corpo da solicitação,e não a string de consulta, para passar os valores do scroll_id para o Amazon ES.

3. Para saber as considerações sobre o uso de scripts, consulte the section called “Outros recursoscompatíveis” (p. 164).

4. Consulte the section called “Shrink” (p. 154).

Versão 2.3No Elasticsearch 2.3, o Amazon ES comporta as operações a seguir.

• /_alias

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cache/clear (somente Índice)• /_cat

• /_cluster/health

• /_cluster/settings para quatropropriedades (somente PUT):• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• threadpool.bulk.queue_size

• /_cluster/stats

• /_count

• /_flush

• /_forcemerge(somente Índice)

• /_mapping

• /_mget

• /_msearch

• /_nodes

• /_percolate

• /_plugin/kibana

• /_recovery(somente Índice)

• /_refresh

• /_search

• /_segments(somente Índice)

• /_snapshot

• /_stats

• /_status

• /_template

Versão 1.5No Elasticsearch 1.5, o Amazon ES comporta as operações a seguir.

Versão da API 2015-01-01160

Page 169: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPlug-ins compatíveis

• /_alias

• /_aliases

• /_all

• /_analyze

• /_bulk

• /_cat

• /_cluster/health

• /_cluster/settings para quatro propriedades(somente PUT):• indices.breaker.fielddata.limit

• indices.breaker.request.limit

• indices.breaker.total.limit

• threadpool.bulk.queue_size

• /_cluster/stats

• /_count

• /_flush

• /_mapping

• /_mget

• /_msearch

• /_nodes

• /_percolate

• /_plugin/kibana

• /_plugin/kibana3

• /_refresh

• /_search

• /_snapshot

• /_stats

• /_status

• /_template

Plug-ins compatíveisOs domínios do Amazon ES já vêm com plug-ins que se encontram disponíveis na comunidade doElasticsearch. O serviço implanta e gerencia automaticamente os plug-ins para você.

Note

O Kibana é um plug-in presente nas versões mais antigas do Amazon ES e um aplicativo Node.jsnas versões mais recentes. Todos os domínios do Amazon ES incluem uma versão pré-instaladado Kibana.

Versão da Elasticsearch Plug-ins

6.3 • ICU Analysis• Ingest Attachment Processor• Ingest User Agent Processor• Japanese (kuromoji) Analysis• Mapper Murmur3• Mapper Size• Phonetic Analysis• Smart Chinese Analysis• Stempel Polish Analysis• Ukrainian Analysis• Análise da Seunjeon Korean

6.2 • ICU Analysis• Ingest Attachment Processor• Ingest User Agent Processor• Japanese (kuromoji) Analysis• Mapper Murmur3• Mapper Size• Phonetic Analysis• Smart Chinese Analysis• Stempel Polish Analysis

Versão da API 2015-01-01161

Page 170: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPlug-ins compatíveis

Versão da Elasticsearch Plug-ins• Ukrainian Analysis• Análise da Seunjeon Korean

6.0 • ICU Analysis• Ingest Attachment Processor• Ingest User Agent Processor• Japanese (kuromoji) Analysis• Mapper Murmur3• Mapper Size• Phonetic Analysis• Smart Chinese Analysis• Stempel Polish Analysis• Ukrainian Analysis• Análise da Seunjeon Korean

5.6 • ICU Analysis• Ingest Attachment Processor• Ingest User Agent Processor• Japanese (kuromoji) Analysis• Mapper Attachments• Mapper Murmur3• Mapper Size• Phonetic Analysis• Smart Chinese Analysis• Stempel Polish Analysis• Ukrainian Analysis• Análise da Seunjeon Korean

5.5 • ICU Analysis• Ingest Attachment Processor• Ingest User Agent Processor• Japanese (kuromoji) Analysis• Mapper Attachments• Mapper Murmur3• Mapper Size• Phonetic Analysis• Smart Chinese Analysis• Stempel Polish Analysis• Ukrainian Analysis• Análise da Seunjeon Korean

Versão da API 2015-01-01162

Page 171: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPlug-ins de saída

Versão da Elasticsearch Plug-ins

5.3 • ICU Analysis• Ingest Attachment Processor• Ingest User Agent Processor• Japanese (kuromoji) Analysis• Mapper Attachments• Mapper Murmur3• Mapper Size• Phonetic Analysis• Smart Chinese Analysis• Stempel Polish Analysis• Ukrainian Analysis• Análise da Seunjeon Korean

5.1 • ICU Analysis• Ingest Attachment Processor• Ingest User Agent Processor• Japanese (kuromoji) Analysis• Mapper Murmur3• Phonetic Analysis• Smart Chinese Analysis• Stempel Polish Analysis• Análise da Seunjeon Korean

2.3 • ICU Analysis• Japanese (kuromoji) Analysis• Kibana 4• Phonetic Analysis

1.5 • ICU Analysis• Japanese (kuromoji) Analysis• Kibana 3 (no endpoint _plugin/kibana3/)• Kibana 4

Plug-ins de saídaO Amazon ES é compatível com dois plug-ins de saída do Logstash para transmitir dados no Amazon ES:o plug-in de saída padrão do Elasticsearch e o plug-in logstash-output-amazon-es, que assina e exportaeventos do Logstash para o Amazon ES.

Para obter mais informações sobre o Logstash, consulte the section called “Carregamento de grandesvolumes de dados com plug-in do Logstash” (p. 101).

Versão da API 2015-01-01163

Page 172: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorOutros recursos compatíveis

Outros recursos compatíveisbootstrap.mlockall

Esse serviço permite que bootstrap.mlockall, em elasticsearch.yml, bloqueia a memóriaJVM e impede que o sistema operacional a troque para o disco. Isso se aplica a todos os tipos deinstância compatíveis, exceto os seguintes:• t2.micro.elasticsearch

• t2.small.elasticsearch

• t2.medium.elasticsearch

Módulo de scripting

Esse serviço é compatível com scripting para domínios do Elasticsearch 5.x e mais recentes. Esseserviço não comporta scripting para a 1.5 ou 2.3.

As opções de script compatíveis incluem as seguintes:• Painless• Lucene Expressions• Mustache

Para os domínios do Elasticsearch 5.5 e mais recentes, o Amazon ES oferece suporte aos scriptsarmazenados usando o endpoint _scripts. Os domínios do Elasticsearch 5.3 e 5.1 comportamsomente scripts em linha.

Transporte de TCP

Esse serviço é compatível com HTTP na porta 80, mas não comporta transporte de TCP.

Versão da API 2015-01-01164

Page 173: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorJava

Usar os SDKs da AWS com oAmazon Elasticsearch Service

Este capítulo inclui exemplos de como usar os SDKs da AWS para interagir com a API de configuraçãodo Amazon Elasticsearch Service. Esses exemplos de códigos mostram como criar, atualizar e excluirdomínios do Amazon ES.

Important

Para obter exemplos de como interagir com as APIs do Elasticsearch, como _index, _bulk,_search e _snapshot, consulte Solicitações de assinatura da HTTP (p. 61).

JavaEste primeiro exemplo usa o AWS SDK for Java para criar um domínio, atualizar sua configuração eexcluí-lo. Remova os comentários das chamadas para waitForDomainProcessing (e comente aschamadas para deleteDomain) para permitir que o domínio fique online e seja utilizável.

package com.amazonaws.samples;

import java.util.concurrent.TimeUnit;

import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;import com.amazonaws.regions.Regions;import com.amazonaws.services.elasticsearch.AWSElasticsearch;import com.amazonaws.services.elasticsearch.AWSElasticsearchClientBuilder;import com.amazonaws.services.elasticsearch.model.CreateElasticsearchDomainRequest;import com.amazonaws.services.elasticsearch.model.CreateElasticsearchDomainResult;import com.amazonaws.services.elasticsearch.model.DeleteElasticsearchDomainRequest;import com.amazonaws.services.elasticsearch.model.DeleteElasticsearchDomainResult;import com.amazonaws.services.elasticsearch.model.DescribeElasticsearchDomainRequest;import com.amazonaws.services.elasticsearch.model.DescribeElasticsearchDomainResult;import com.amazonaws.services.elasticsearch.model.EBSOptions;import com.amazonaws.services.elasticsearch.model.ElasticsearchClusterConfig;import com.amazonaws.services.elasticsearch.model.NodeToNodeEncryptionOptions;import com.amazonaws.services.elasticsearch.model.ResourceNotFoundException;import com.amazonaws.services.elasticsearch.model.SnapshotOptions;import com.amazonaws.services.elasticsearch.model.UpdateElasticsearchDomainConfigRequest;import com.amazonaws.services.elasticsearch.model.UpdateElasticsearchDomainConfigResult;import com.amazonaws.services.elasticsearch.model.VolumeType;

/** * Sample class demonstrating how to use the AWS SDK for Java to create, update, * and delete Amazon Elasticsearch Service domains. */

public class AESSample {

public static void main(String[] args) {

final String domainName = "my-test-domain";

// Build the client using the default credentials chain. // You can use the AWS CLI and run `aws configure` to set access key, secret // key, and default region.

Versão da API 2015-01-01165

Page 174: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorJava

final AWSElasticsearch client = AWSElasticsearchClientBuilder .standard() // Unnecessary, but lets you use a region different than your default. .withRegion(Regions.US_WEST_2) // Unnecessary, but if desired, you can use a different provider chain. .withCredentials(new DefaultAWSCredentialsProviderChain()) .build();

// Create a new domain, update its configuration, and delete it. createDomain(client, domainName); // waitForDomainProcessing(client, domainName); updateDomain(client, domainName); // waitForDomainProcessing(client, domainName); deleteDomain(client, domainName); }

/** * Creates an Amazon Elasticsearch Service domain with the specified options. * Some options require other AWS resources, such as an Amazon Cognito user pool * and identity pool, whereas others require just an instance type or instance * count. * * @param client * The AWSElasticsearch client to use for the requests to Amazon * Elasticsearch Service * @param domainName * The name of the domain you want to create */ private static void createDomain(final AWSElasticsearch client, final String domainName) {

// Create the request and set the desired configuration options CreateElasticsearchDomainRequest createRequest = new CreateElasticsearchDomainRequest() .withDomainName(domainName) .withElasticsearchVersion("6.3") .withElasticsearchClusterConfig(new ElasticsearchClusterConfig() .withDedicatedMasterEnabled(true) .withDedicatedMasterCount(3) // Small, inexpensive instance types for testing. Not recommended for production // domains. .withDedicatedMasterType("t2.small.elasticsearch") .withInstanceType("t2.small.elasticsearch") .withInstanceCount(5)) // Many instance types require EBS storage. .withEBSOptions(new EBSOptions() .withEBSEnabled(true) .withVolumeSize(10) .withVolumeType(VolumeType.Gp2)) // You can uncomment this line and add your account ID, a user name, and the // domain name to add an access policy. // .withAccessPolicies("{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::123456789012:user/user-name\"]},\"Action\":[\"es:*\"],\"Resource\":\"arn:aws:es:region:123456789012:domain/domain-name/*\"}]}") .withNodeToNodeEncryptionOptions(new NodeToNodeEncryptionOptions() .withEnabled(true));

// Make the request. System.out.println("Sending domain creation request..."); CreateElasticsearchDomainResult createResponse = client.createElasticsearchDomain(createRequest); System.out.println("Domain creation response from Amazon Elasticsearch Service:"); System.out.println(createResponse.getDomainStatus().toString());

Versão da API 2015-01-01166

Page 175: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorJava

}

/** * Updates the configuration of an Amazon Elasticsearch Service domain with the * specified options. Some options require other AWS resources, such as an * Amazon Cognito user pool and identity pool, whereas others require just an * instance type or instance count. * * @param client * The AWSElasticsearch client to use for the requests to Amazon * Elasticsearch Service * @param domainName * The name of the domain to update */ private static void updateDomain(final AWSElasticsearch client, final String domainName) { try { // Updates the domain to take automated snapshots at noon and use three data // instances instead of five. // You can uncomment the Cognito lines and fill in the strings to enable Cognito // authentication for Kibana. final UpdateElasticsearchDomainConfigRequest updateRequest = new UpdateElasticsearchDomainConfigRequest() .withDomainName(domainName) .withSnapshotOptions(new SnapshotOptions() .withAutomatedSnapshotStartHour(12)) // .withCognitoOptions(new CognitoOptions() // .withEnabled(true) // .withUserPoolId("user-pool-id") // .withIdentityPoolId("identity-pool-id") // .withRoleArn("role-arn")) .withElasticsearchClusterConfig(new ElasticsearchClusterConfig() .withInstanceCount(3));

System.out.println("Sending domain update request..."); final UpdateElasticsearchDomainConfigResult updateResponse = client .updateElasticsearchDomainConfig(updateRequest); System.out.println("Domain update response from Amazon Elasticsearch Service:"); System.out.println(updateResponse.toString()); } catch (ResourceNotFoundException e) { System.out.println("Domain not found. Please check the domain name."); } }

/** * Deletes an Amazon Elasticsearch Service domain. Deleting a domain can take * several minutes. * * @param client * The AWSElasticsearch client to use for the requests to Amazon * Elasticsearch Service * @param domainName * The name of the domain that you want to delete */ private static void deleteDomain(final AWSElasticsearch client, final String domainName) { try { final DeleteElasticsearchDomainRequest deleteRequest = new DeleteElasticsearchDomainRequest() .withDomainName(domainName);

System.out.println("Sending domain deletion request..."); final DeleteElasticsearchDomainResult deleteResponse = client.deleteElasticsearchDomain(deleteRequest);

Versão da API 2015-01-01167

Page 176: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorJava

System.out.println("Domain deletion response from Amazon Elasticsearch Service:"); System.out.println(deleteResponse.toString()); } catch (ResourceNotFoundException e) { System.out.println("Domain not found. Please check the domain name."); } }

/** * Waits for the domain to finish processing changes. New domains typically take * 10-15 minutes to initialize. Most updates to existing domains take a similar * amount of time. This method checks every 15 seconds and finishes only when * the domain's processing status changes to false. * * @param client * The AWSElasticsearch client to use for the requests to Amazon * Elasticsearch Service * @param domainName * The name of the domain that you want to check */ private static void waitForDomainProcessing(final AWSElasticsearch client, final String domainName) { // Create a new request to check the domain status. final DescribeElasticsearchDomainRequest describeRequest = new DescribeElasticsearchDomainRequest() .withDomainName(domainName);

// Check whether the domain is processing, which usually takes 10-15 minutes // after creation or a configuration change. // This loop checks every 15 seconds. DescribeElasticsearchDomainResult describeResponse = client.describeElasticsearchDomain(describeRequest); while (describeResponse.getDomainStatus().isProcessing()) { try { System.out.println("Domain still processing..."); TimeUnit.SECONDS.sleep(15); describeResponse = client.describeElasticsearchDomain(describeRequest); } catch (InterruptedException e) { e.printStackTrace(); } }

// Once we exit that loop, the domain is available System.out.println("Amazon Elasticsearch Service has finished processing changes for your domain."); System.out.println("Domain description response from Amazon Elasticsearch Service:"); System.out.println(describeResponse.toString()); }}

Versão da API 2015-01-01168

Page 177: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAções

Referência sobre a API deconfiguração do AmazonElasticsearch Service

Essa referência descreve as ações, os tipos de dados e os erros na API de configuração do AmazonElasticsearch Service. A API de configuração é uma API REST que pode ser usada para criar e configurardomínios do Amazon ES em HTTP. Além disso, é possível usar a AWS CLI e o console para configurardomínios do Amazon ES. Para obter mais informações, consulte Criação e configuração de domínios doAmazon ES (p. 10).

• Ações (p. 169)• Tipos de dados (p. 216)• Erros (p. 231)

AçõesA tabela a seguir fornece uma referência rápida sobre o método HTTP requerido por cada operação para ainterface REST da API de configuração do Amazon Elasticsearch Service. A descrição de cada operaçãotambém inclui o método HTTP necessário.

Note

Todas as solicitações de serviço de configuração devem ser assinadas. Para obter maisinformações, consulte Assinatura de solicitações de serviço do Amazon Elasticsearch (p. 35)neste guia e Processo de autenticação do Signature Version 4 no AWS General Reference.

Action Método HTTP

AddTags (p. 170) POST

CreateElasticsearchDomain (p. 171) POST

DeleteElasticsearchDomain (p. 176) DELETE

DeleteElasticsearchServiceRole (p. 178) DELETE

DescribeElasticsearchDomain (p. 179) GET

DescribeElasticsearchDomainConfig (p. 181) GET

DescribeElasticsearchDomains (p. 184) POST

DescribeElasticsearchInstanceTypeLimits (p. 187)GET

DescribeReservedElasticsearchInstanceOfferings (p. 190)GET

DescribeReservedElasticsearchInstances (p. 191)GET

Versão da API 2015-01-01169

Page 178: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAddTags

Action Método HTTP

GetCompatibleElasticsearchVersions (p. 193)GET

GetUpgradeHistory (p. 195) GET

GetUpgradeStatus (p. 197) GET

ListDomainNames (p. 198) GET

ListElasticsearchInstanceTypeDetails (p. 199)GET

ListElasticsearchInstanceTypes (p. 201) GET

ListElasticsearchVersions (p. 203) GET

ListTags (p. 204) GET

PurchaseReservedElasticsearchInstance (p. 205)POST

RemoveTags (p. 206) POST

StartElasticsearchServiceSoftwareUpdate (p. 208)POST

StopElasticsearchServiceSoftwareUpdate (p. 209)POST

UpdateElasticsearchDomainConfig (p. 210) POST

UpgradeElasticsearchDomain (p. 215) POST

AddTagsAnexa tags de recurso a um domínio do Amazon ES. Para obter mais informações, consulte Marcação dedomínios do Amazon ES (p. 53).

SintaxePOST /2015-01-01/tags{ "ARN": "<DOMAIN_ARN>", "TagList": [ { "Key": "<TAG_KEY>", "Value": "<TAG_VALUE>" } ]}

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação.

Corpo da solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

TagList TagList (p. 229) Sim Lista de tags de recurso

Versão da API 2015-01-01170

Page 179: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCreateElasticsearchDomain

Parâmetro Tipo de dados Obrigatório?Descrição

ARN ARN (p. 217) Sim Nome de recurso da Amazon(ARN) para o domínio doAmazon ES ao qual vocêdeseja anexar tags de recurso.

Elementos de respostaNão aplicável. A operação AddTags não retorna uma estrutura de dados.

ErrosA operação AddTags não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• LimitExceededException (p. )• ValidationException (p. )• InternalException (p. )

ExemploO exemplo a seguir anexa uma única tag de recurso com uma chave de tag project ao logs domínio doAmazon ES:

Solicitação

POST es.<AWS_REGION>.amazonaws.com/2015-01-01/tags{ "ARN": "<DOMAIN_ARN>", "TagList": [ { "Key": "project", "Value": "trident" } ]}

Resposta

HTTP/1.1 200 OKx-amzn-RequestId: 5a6a5790-536c-11e5-9cd2-b36dbf43d89eContent-Type: application/jsonContent-Length: 0Date: Sat, 05 Sep 2015 01:20:55 GMT

CreateElasticsearchDomainCria um novo domínio do Amazon ES. Para obter mais informações, consulte the section called “ Criaçãode domínios do Amazon ES” (p. 10).

Note

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

Versão da API 2015-01-01171

Page 180: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCreateElasticsearchDomain

Sintaxe

POST /2015-01-01/es/domain{ "DomainName": "<DOMAIN_NAME>", "ElasticsearchVersion": "<VERSION>", "ElasticsearchClusterConfig": { "InstanceType": "<INSTANCE_TYPE>", "InstanceCount": <INSTANCE_COUNT>, "DedicatedMasterEnabled": "<TRUE|FALSE>", "DedicatedMasterCount": <INSTANCE_COUNT>, "DedicatedMasterType": "<INSTANCE_TYPE>", "ZoneAwarenessEnabled": "<TRUE|FALSE>" }, "EBSOptions": { "EBSEnabled": "<TRUE|FALSE>", "VolumeType": "<VOLUME_TYPE>", "VolumeSize": "<VOLUME_SIZE>", "Iops": "<VALUE>" }, "VPCOptions": { "SubnetIds": [ "<SUBNET_ID>" ], "SecurityGroupIds": [ "<SECURITY_GROUP_ID>" ] }, "CognitoOptions": { "IdentityPoolId": "us-west-1:12345678-1234-1234-1234-123456789012", "RoleArn": "arn:aws:iam::123456789012:role/my-kibana-role", "Enabled": true, "UserPoolId": "us-west-1_121234567" }, "AccessPolicies": "<ACCESS_POLICY_DOCUMENT>", "SnapshotOptions": { "AutomatedSnapshotStartHour": <START_HOUR> }, "LogPublishingOptions": { "SEARCH_SLOW_LOGS": { "CloudWatchLogsLogGroupArn":"<ARN>", "Enabled":true }, "INDEX_SLOW_LOGS": { "CloudWatchLogsLogGroupArn":"<ARN>", "Enabled":true } }, "EncryptionAtRestOptions": { "Enabled": true, "KmsKeyId": "<KEY_ID>" }, "AdvancedOptions": { "rest.action.multi.allow_explicit_index": "<TRUE|FALSE>", "indices.fielddata.cache.size": "<PERCENTAGE_OF_HEAP>" }, "NodeToNodeEncryptionOptions": { "Enabled": true|false }}

Versão da API 2015-01-01172

Page 181: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCreateElasticsearchDomain

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação HTTP.

Corpo da solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName DomainName (p. 219) Sim Nome do domínio do Amazon ESa ser criado.

ElasticsearchVersionString Não Versão de Elasticsearch. Quandonão especificada, a 1.5 é usadacomo padrão. Para obter alista completa de versõescompatíveis, consulte the sectioncalled “Versões Elasticsearchcompatíveis” (p. 2).

ElasticsearchClusterConfigElasticsearchClusterConfig (p. 220)Não Contêiner para a configuração decluster de um domínio do AmazonES.

EBSOptions EBSOptions (p. 220) Não Contêiner para os parâmetrosnecessários para permitirarmazenamento EBS para umdomínio do Amazon ES. Paraobter mais informações, consulteConfiguração de armazenamentoEBS (p. 19).

VPCOptions VPCOptions (p. 230) Não Contêiner dos valores necessáriospara configurar os domínios deacesso da VPC. Se você nãoespecificar esses valores, oAmazon ES criará o domínio comum endpoint público. Para sabermais, consulte Suporte a VPC paradomínios do Amazon ElasticsearchService (p. 116).

CognitoOptions CognitoOptions (p. 218) Não Pares de chave/valor paraconfigurar o Amazon ES para usara autenticação Amazon Cognitopara o Kibana.

AccessPolicies String Não Documento de política do IAMque especifica políticas deacesso para o novo domínio doAmazon ES. Para obter maisinformações, consulte Controle deacesso (p. 31).

SnapshotOptions SnapshotOptions (p. 228) Não Contêiner de parâmetrosnecessários para configurarsnapshots automatizados deíndices de domínio. Para obter

Versão da API 2015-01-01173

Page 182: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCreateElasticsearchDomain

Parâmetro Tipo de dados Obrigatório?Descriçãomais informações, consulteConfiguração de snapshots (p. 24).

AdvancedOptions AdvancedOptions (p. 216) Não Pares de chave/valor paraespecificar opções deconfiguração avançada. Paraobter mais informações, consulteConfiguração de opçõesavançadas (p. 25).

LogPublishingOptionsLogPublishingOptions (p. 225)Não de pares de chave-valor paraconfigurar a publicação de logslentos.

EncryptionAtRestOptionsEncryptionAtRestOptions (p. 224)Não Pares de chave-valor para ativar acriptografia em repouso.

NodeToNodeEncryptionOptionsNodeToNodeEncryptionOptions (p. 226)Não Habilita a criptografia de nó a nó.

Elementos de resposta

Campo Tipo de dados Descrição

DomainStatus ElasticsearchDomainStatus (p. 222)Especifica o status e a configuração de umnovo domínio do Amazon ES.

ErrosCreateElasticsearchDomain não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• DisabledOperationException (p. )• InternalException (p. )• InvalidTypeException (p. )• LimitExceededException (p. )• ResourceAlreadyExistsException (p. )• ValidationException (p. )

ExemploEste exemplo demonstra o seguinte:

• Cria um domínio do Amazon ES chamado streaming-logs• Configura um cluster com seis nós de dados (i3.large) e três nós principais dedicados (c4.large)• Habilita o reconhecimento de zona.• Configura o acesso da VPC para o domínio• Habilita a criptografia em repouso e a criptografia de nó a nó

Solicitação

Versão da API 2015-01-01174

Page 183: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCreateElasticsearchDomain

POST https://es.us-west-1.amazonaws.com/2015-01-01/es/domain{ "DomainName": "streaming-logs", "ElasticsearchVersion": "6.3", "ElasticsearchClusterConfig": { "InstanceType": "i3.large.elasticsearch", "InstanceCount": 6, "DedicatedMasterEnabled": "true", "DedicatedMasterCount": 3, "DedicatedMasterType": "c4.large.elasticsearch", "ZoneAwarenessEnabled": "true" }, "EncryptionAtRestOptions": { "Enabled": true, "KmsKeyId": "1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a" }, "NodeToNodeEncryptionOptions": { "Enabled": true }, "VPCOptions": { "SubnetIds": [ "subnet-87654321", "subnet-12345678" ] }}

Resposta

{ "DomainStatus": { "ARN": "arn:aws:es:us-west-1:123456789012:domain/streaming-logs", "AccessPolicies": "", "AdvancedOptions": { "rest.action.multi.allow_explicit_index": "true" }, "CognitoOptions": { "Enabled": false, "IdentityPoolId": null, "RoleArn": null, "UserPoolId": null }, "Created": true, "Deleted": false, "DomainId": "123456789012/streaming-logs", "DomainName": "streaming-logs", "EBSOptions": { "EBSEnabled": false, "Iops": null, "VolumeSize": null, "VolumeType": null }, "ElasticsearchClusterConfig": { "DedicatedMasterCount": 3, "DedicatedMasterEnabled": true, "DedicatedMasterType": "c4.large.elasticsearch", "InstanceCount": 6, "InstanceType": "i3.large.elasticsearch", "ZoneAwarenessEnabled": true }, "ElasticsearchVersion": "6.3", "EncryptionAtRestOptions": { "Enabled": true,

Versão da API 2015-01-01175

Page 184: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDeleteElasticsearchDomain

"KmsKeyId": "arn:aws:kms:us-west-1:123456789012:key/1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a" }, "Endpoint": null, "Endpoints": null, "LogPublishingOptions": null, "NodeToNodeEncryptionOptions": { "Enabled": true }, "Processing": true, "ServiceSoftwareOptions": { "AutomatedUpdateDate": 0, "Cancellable": false, "CurrentVersion": "LEGACY", "Description": "There is no software update available for this domain.", "NewVersion": "", "UpdateAvailable": false, "UpdateStatus": "COMPLETED" }, "SnapshotOptions": { "AutomatedSnapshotStartHour": 0 }, "UpgradeProcessing": false, "VPCOptions": { "AvailabilityZones": [ "us-west-1b", "us-west-1c" ], "SecurityGroupIds": [ "sg-12345678" ], "SubnetIds": [ "subnet-12345678", "subnet-87654321" ], "VPCId": "vpc-12345678" } }}

DeleteElasticsearchDomainExclui um domínio do Amazon ES e todos os respectivos dados. Não é possível recuperar um domíniodepois que ele é excluído.

Sintaxe

DELETE /2015-01-01/es/domain/<DOMAIN_NAME>

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName DomainName (p. 219) Sim Nome do domínio do Amazon ESque você deseja excluir.

Versão da API 2015-01-01176

Page 185: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDeleteElasticsearchDomain

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

DomainStatus ElasticsearchDomainStatus (p. 222)Especifica a configuração do domínio doAmazon ES especificado.

ErrosA operação DeleteElasticsearchDomain não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• InternalException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )

ExemploO exemplo a seguir exclui o domínio weblogs:

Solicitação

DELETE es.<AWS_REGION>.amazonaws.com/2015-01-01/es/domain/weblogs

Resposta

HTTP/1.1 200 OK{ "DomainStatus": { "ARN": "arn:aws:es:us-west-1:123456789012:domain/weblogs", "AccessPolicies": "", "AdvancedOptions": { "rest.action.multi.allow_explicit_index": "true" }, "Created": true, "Deleted": true, "DomainId": "123456789012/weblogs", "DomainName": "weblogs", "EBSOptions": { "EBSEnabled": false, "EncryptionEnabled": null, "Iops": null, "VolumeSize": null, "VolumeType": null }, "ElasticsearchClusterConfig": { "DedicatedMasterCount": 3, "DedicatedMasterEnabled": true, "DedicatedMasterType": "m3.medium.elasticsearch", "InstanceCount": 6,

Versão da API 2015-01-01177

Page 186: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDeleteElasticsearchServiceRole

"InstanceType": "m3.medium.elasticsearch", "ZoneAwarenessEnabled": true }, "ElasticsearchVersion": "5.5", "EncryptionAtRestOptions": { "Enabled": true, "KmsKeyId": "arn:aws:kms:us-west-1:123456789012:key/1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a" }, "Endpoint": null, "Endpoints": null, "Processing": true, "SnapshotOptions": { "AutomatedSnapshotStartHour": 0 }, "VPCOptions": { "AvailabilityZones": [ "us-west-1b", "us-west-1c" ], "SecurityGroupIds": [ "sg-12345678" ], "SubnetIds": [ "subnet-87654321", "subnet-12345678" ], "VPCId": "vpc-12345678" } }}

DeleteElasticsearchServiceRoleExclui uma função vinculada ao serviço entre o Amazon ES e o Amazon EC2. Essa função fornecepermissões do Amazon ES para colocar VPC endpoints em sua VPC. Uma função vinculada ao serviçodeve estar em vigor para que domínios com VPC endpoints sejam criados ou funcionem corretamente.

Note

Essa ação só funciona se nenhum domínio estiver usando a função vinculada ao serviço.

Sintaxe

DELETE /2015-01-01/es/role

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de respostaNão aplicável. A operação DeleteElasticsearchServiceRole não retorna uma estrutura de dados.

Versão da API 2015-01-01178

Page 187: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchDomain

ErrosDeleteElasticsearchServiceRole não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• InternalException (p. )• ValidationException (p. )

ExemploO exemplo a seguir demonstra a exclusão da função vinculada ao serviço:

Solicitação

DELETE es.<AWS_REGION>.amazonaws.com/2015-01-01/es/role

Resposta

Se bem-sucedida, esta ação não oferece resposta.

DescribeElasticsearchDomainDescreve a configuração para o domínio do Amazon ES especificado, como ID de domínio, endpoint deserviço do domínio e ARN do domínio.

Sintaxe

GET /2015-01-01/es/domain/<DOMAIN_NAME>

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório? Descrição

DomainName DomainName (p. 219) Sim Nome do domíniodo Amazon ESque você desejadescrever.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

DomainStatus ElasticsearchDomainStatus (p. 222)Configuração do domínio do Amazon ESespecificado.

Versão da API 2015-01-01179

Page 188: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchDomain

ErrosDescribeElasticsearchDomain não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• InternalException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )

ExemploO exemplo a seguir retorna uma descrição do domínio streaming-logs:

Solicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/domain/streaming-logs

Resposta

{ "DomainStatus": { "ARN": "arn:aws:es:us-west-1:123456789012:domain/streaming-logs", "AccessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-west-1:123456789012:domain/streaming-logs/*\",\"Condition\":{\"IpAddress\":{\"aws:SourceIp\":[\"11.222.333.11\",\"11.222.333.12\",\"11.222.333.13\",\"11.222.333.14\",\"11.222.333.15\"]}}}]}", "AdvancedOptions": { "rest.action.multi.allow_explicit_index": "true" }, "Created": true, "Deleted": false, "DomainId": "123456789012/streaming-logs", "DomainName": "streaming-logs", "EBSOptions": { "EBSEnabled": true, "EncryptionEnabled": false, "Iops": null, "VolumeSize": 11, "VolumeType": "gp2" }, "ElasticsearchClusterConfig": { "DedicatedMasterCount": 2, "DedicatedMasterEnabled": false, "DedicatedMasterType": "m4.large.elasticsearch", "InstanceCount": 2, "InstanceType": "t2.small.elasticsearch", "ZoneAwarenessEnabled": false }, "ElasticsearchVersion": "5.5", "EncryptionAtRestOptions": { "Enabled": true, "KmsKeyId": "arn:aws:kms:us-west-1:123456789012:key/1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a" }, "CognitoOptions": { "IdentityPoolId": "us-west-1:12345678-1234-1234-1234-123456789012", "RoleArn": "arn:aws:iam::123456789012:role/my-kibana-role", "Enabled": true, "UserPoolId": "us-west-1_121234567"

Versão da API 2015-01-01180

Page 189: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchDomainConfig

}, "Endpoint": "search-streaming-logs-oojmrbhufr27n44zdri52wukdy.us-west-1.es.amazonaws.com", "Endpoints": null, "Processing": false, "SnapshotOptions": { "AutomatedSnapshotStartHour": 8 }, "ServiceSoftwareOptions": { "AutomatedUpdateDate": 1530185603, "Cancellable": false, "CurrentVersion": "LEGACY", "Description": "A new software release R1234567 is available. This release will be automatically deployed if no action is taken.", "NewVersion": "R1234567", "UpdateAvailable": true, "UpdateStatus": "ELIGIBLE" } "VPCOptions": null }}

DescribeElasticsearchDomainConfigExibe a configuração de um domínio do Amazon ES.

SintaxeGET /2015-01-01/es/domain/<DOMAIN_NAME>/config

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName DomainName (p. 219) Sim Nome do domínio do AmazonES.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

DomainConfig ElasticsearchDomainConfig (p. 221)Configuração do domínio do AmazonES.

ErrosA operação DescribeElasticsearchDomainConfig não pode retornar nenhum dos erros a seguir:

• BaseException (p. )

Versão da API 2015-01-01181

Page 190: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchDomainConfig

• InternalException (p. )• ResourceNotFoundException (p. )

ExemploO exemplo a seguir retorna uma descrição da configuração do domínio logs:

Solicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/domain/logs/config

Resposta

HTTP/1.1 200 OK{ "DomainConfig": { "AccessPolicies": { "Options": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-west-1:123456789012:domain/logs/*\"}]}", "Status": { "CreationDate": 1499817484.04, "PendingDeletion": false, "State": "Active", "UpdateDate": 1500308955.652, "UpdateVersion": 17 } }, "AdvancedOptions": { "Options": { "indices.fielddata.cache.size": "", "rest.action.multi.allow_explicit_index": "true" }, "Status": { "CreationDate": 1499817484.04, "PendingDeletion": false, "State": "Active", "UpdateDate": 1499818054.108, "UpdateVersion": 5 } }, "EBSOptions": { "Options": { "EBSEnabled": true, "EncryptionEnabled": false, "Iops": 0, "VolumeSize": 10, "VolumeType": "gp2" }, "Status": { "CreationDate": 1499817484.04, "PendingDeletion": false, "State": "Active", "UpdateDate": 1499818054.108, "UpdateVersion": 5 } }, "ElasticsearchClusterConfig": { "Options": { "DedicatedMasterCount": 2, "DedicatedMasterEnabled": false, "DedicatedMasterType": "m4.large.elasticsearch",

Versão da API 2015-01-01182

Page 191: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchDomainConfig

"InstanceCount": 2, "InstanceType": "m4.large.elasticsearch", "ZoneAwarenessEnabled": false }, "Status": { "CreationDate": 1499817484.04, "PendingDeletion": false, "State": "Active", "UpdateDate": 1499966854.612, "UpdateVersion": 13 } }, "ElasticsearchVersion": { "Options": "5.5", "Status": { "PendingDeletion": false, "State": "Active", "CreationDate": 1436913638.995, "UpdateVersion": 6, "UpdateDate": 1436914324.278 }, "Options": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-east-1:123456789012:domain/logs/*\"}]}" }, "EncryptionAtRestOptions": { "Options": { "Enabled": true, "KmsKeyId": "arn:aws:kms:us-west-1:123456789012:key/1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a" }, "Status": { "CreationDate": 1509490412.757, "PendingDeletion": false, "State": "Active", "UpdateDate": 1509490953.717, "UpdateVersion": 6 } }, "LogPublishingOptions":{ "Status":{ "CreationDate":1502774634.546, "PendingDeletion":false, "State":"Processing", "UpdateDate":1502779590.448, "UpdateVersion":60 }, "Options":{ "INDEX_SLOW_LOGS":{ "CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1:123456789012:log-group:sample-domain", "Enabled":true }, "SEARCH_SLOW_LOGS":{ "CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1:123456789012:log-group:sample-domain", "Enabled":true } } }, "SnapshotOptions": { "Options": { "AutomatedSnapshotStartHour": 6 }, "Status": { "CreationDate": 1499817484.04,

Versão da API 2015-01-01183

Page 192: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchDomains

"PendingDeletion": false, "State": "Active", "UpdateDate": 1499818054.108, "UpdateVersion": 5 } }, "VPCOptions": { "Options": { "AvailabilityZones": [ "us-west-1b" ], "SecurityGroupIds": [ "sg-12345678" ], "SubnetIds": [ "subnet-12345678" ], "VPCId": "vpc-12345678" }, "Status": { "CreationDate": 1499817484.04, "PendingDeletion": false, "State": "Active", "UpdateDate": 1499818054.108, "UpdateVersion": 5 } } }}

DescribeElasticsearchDomainsDescreve a configuração do domínio para até cinco domínios do Amazon ES especificados. Asinformações incluem ID de domínio, endpoint de serviço do domínio e ARN do domínio.

SintaxePOST /2015-01-01/es/domain-info{ "DomainNames": [ "<DOMAIN_NAME>", "<DOMAIN_NAME>", ]}

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação HTTP.

Corpo da solicitação

Campo Tipo de dados Obrigatório?Descrição

DomainNames DomainNameList (p. 220)Sim Matriz de domínios do Amazon ES no formatoa seguir:

{"DomainNames":["<Domain_Name>","<Domain_Name>"...]

Versão da API 2015-01-01184

Page 193: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchDomains

Elementos de resposta

Campo Tipo de dados Descrição

DomainStatusList ElasticsearchDomainStatusList (p. 224)Lista que contém o status de cadadomínio do Amazon ES solicitado.

ErrosA operação DescribeElasticsearchDomains não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• InternalException (p. )• ValidationException (p. )

ExemploO exemplo a seguir retorna uma descrição dos domínios logs e streaming-logs:

Solicitação

POST es.<AWS_REGION>.amazonaws.com/2015-01-01/es/domain-info/{ "DomainNames": [ "logs", "streaming-logs" ]}

Resposta

HTTP/1.1 200 OK{ "DomainStatusList": [ { "ElasticsearchClusterConfig": { "DedicatedMasterEnabled": true, "InstanceCount": 3, "ZoneAwarenessEnabled": false, "DedicatedMasterType": "m3.medium.elasticsearch", "InstanceType": "m3.medium.elasticsearch", "DedicatedMasterCount": 3 }, "ElasticsearchVersion": "5.5", "EncryptionAtRestOptions": { "Enabled": true, "KmsKeyId": "arn:aws:kms:us-west-1:123456789012:key/1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a" }, "Endpoint": "search-streaming-logs-okga24ftzsbz2a2hzhsqw73jpy.us-east-1.es.example.com", "Created": true, "Deleted": false, "DomainName": "streaming-logs", "EBSOptions": { "EBSEnabled": false

Versão da API 2015-01-01185

Page 194: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchDomains

}, "VPCOptions": { "SubnetIds": [ "subnet-d1234567" ], "VPCId": "vpc-12345678", "SecurityGroupIds": [ "sg-123456789" ], "AvailabilityZones": [ "us-east-1" ] }, "SnapshotOptions": { "AutomatedSnapshotStartHour": 0 }, "DomainId": "123456789012/streaming-logs", "AccessPolicies": "", "Processing": false, "AdvancedOptions": { "rest.action.multi.allow_explicit_index": "true", "indices.fielddata.cache.size": "" }, "ARN": "arn:aws:es:us-east-1:123456789012:domain/streaming-logs" }, { "ElasticsearchClusterConfig": { "DedicatedMasterEnabled": true, "InstanceCount": 1, "ZoneAwarenessEnabled": false, "DedicatedMasterType": "search.m3.medium", "InstanceType": "search.m3.xlarge", "DedicatedMasterCount": 3 }, "ElasticsearchVersion": "5.5", "EncryptionAtRestOptions": { "Enabled": true, "KmsKeyId": "arn:aws:kms:us-west-1:123456789012:key/1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a" }, "Endpoint": "search-logs-p5st2kbt77diuihoqi6omd7jiu.us-east-1.es.example.com", "Created": true, "Deleted": false, "DomainName": "logs", "EBSOptions": { "Iops": 4000, "VolumeSize": 512, "VolumeType": "io1", "EBSEnabled": true }, "VPCOptions": { "SubnetIds": [ "subnet-d1234567" ], "VPCId": "vpc-12345678", "SecurityGroupIds": [ "sg-123456789" ], "AvailabilityZones": [ "us-east-1" ] }, "SnapshotOptions": { "AutomatedSnapshotStartHour": 0 }, "DomainId": "123456789012/logs",

Versão da API 2015-01-01186

Page 195: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchInstanceTypeLimits

"AccessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-east-1:123456789012:domain/logs/*\"}]}", "Processing": false, "AdvancedOptions": { "rest.action.multi.allow_explicit_index": "true" }, "ARN": "arn:aws:es:us-east-1:123456789012:domain/logs" } ]}

DescribeElasticsearchInstanceTypeLimitsDescreve os limites de número de instâncias, armazenamento e nós principais para uma determinadaversão do Elasticsearch e tipo de instância.

Sintaxe

GET 2015-01-01/es/instanceTypeLimits/{ElasticsearchVersion}/{InstanceType}?domainName={DomainName}

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

ElasticsearchVersionString Sim Versão do Elasticsearch. Paraver uma lista das versões comsuporte, consulte the sectioncalled “Versões Elasticsearchcompatíveis” (p. 2).

InstanceType String Sim Tipo de instância. Paravisualizar tipos de instânciapor região, consulte Definiçãode preço do AmazonElasticsearch Service.

DomainName DomainName (p. 219) Não O nome de um domínioexistente. Especifique apenasse precisar dos limites para umdomínio existente.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

LimitsByRole Mapa Mapa contendo todos os limites de tipo deinstância aplicáveis. "data" refere-se a

Versão da API 2015-01-01187

Page 196: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchInstanceTypeLimits

Campo Tipo de dados Descriçãonós de dados. "master" refere-se a nósprincipais dedicados.

ErrosA operação DescribeElasticsearchInstanceTypeLimits não pode retornar nenhum dos erros aseguir:

• BaseException (p. )• InternalException (p. )• InvalidTypeException (p. )• LimitExceededException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )

ExemploO exemplo a seguir retorna uma descrição dos domínios logs e streaming-logs:

Solicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/instanceTypeLimits/6.0/m4.large.elasticsearch

Resposta

HTTP/1.1 200 OK{ "LimitsByRole": { "data": { "AdditionalLimits": [ { "LimitName": "MaximumNumberOfDataNodesWithoutMasterNode", "LimitValues": [ "10" ] } ], "InstanceLimits": { "InstanceCountLimits": { "MaximumInstanceCount": 20, "MinimumInstanceCount": 1 } }, "StorageTypes": [ { "StorageSubTypeName": "standard", "StorageTypeLimits": [ { "LimitName": "MaximumVolumeSize", "LimitValues": [ "100" ] }, {

Versão da API 2015-01-01188

Page 197: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeElasticsearchInstanceTypeLimits

"LimitName": "MinimumVolumeSize", "LimitValues": [ "10" ] } ], "StorageTypeName": "ebs" }, { "StorageSubTypeName": "io1", "StorageTypeLimits": [ { "LimitName": "MaximumVolumeSize", "LimitValues": [ "512" ] }, { "LimitName": "MinimumVolumeSize", "LimitValues": [ "35" ] }, { "LimitName": "MaximumIops", "LimitValues": [ "16000" ] }, { "LimitName": "MinimumIops", "LimitValues": [ "1000" ] } ], "StorageTypeName": "ebs" }, { "StorageSubTypeName": "gp2", "StorageTypeLimits": [ { "LimitName": "MaximumVolumeSize", "LimitValues": [ "512" ] }, { "LimitName": "MinimumVolumeSize", "LimitValues": [ "10" ] } ], "StorageTypeName": "ebs" } ] }, "master": { "AdditionalLimits": [ { "LimitName": "MaximumNumberOfDataNodesSupported", "LimitValues": [ "100" ] }

Versão da API 2015-01-01189

Page 198: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeReservedElasticsearchInstanceOfferings

], "InstanceLimits": { "InstanceCountLimits": { "MaximumInstanceCount": 5, "MinimumInstanceCount": 2 } }, "StorageTypes": null } }}

DescribeReservedElasticsearchInstanceOfferingsDescreve as ofertas de instâncias reservadas disponíveis para uma determinada região.

Sintaxe

GET /2015-01-01/es/reservedInstanceOfferings?offeringId={OfferingId}&maxResults={MaxResults}&nextToken={NextToken}

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

OfferingId String Não O ID da oferta.

MaxResults Integer Não Limita o número de resultados.Deve estar entre 30 e 100.

NextToken String Não Usado para paginação.Necessário apenas se umachamada de API anteriortiver produzido um resultadocontendo NextToken. Aceitauma entrada de próximo tokenpara retornar resultados paraa próxima página e forneceuma saída de próximo tokenna resposta, que os clientespodem usar para recuperarmais resultados.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

ReservedElasticsearchInstanceOfferingsReservedElasticsearchInstanceOfferingsContêiner de todas as informações sobreuma oferta de instância reservada. Para

Versão da API 2015-01-01190

Page 199: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeReservedElasticsearchInstances

Campo Tipo de dados Descriçãosaber mais, consulte the section called“Comprar instâncias reservadas (CLI daAWS)” (p. 237).

ErrosA operação DescribeReservedElasticsearchInstanceOfferings não pode retornar nenhum doserros a seguir:

• DisabledOperationException (p. )• InternalException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )

ExemploSolicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/reservedInstanceOfferings

Resposta

{ "ReservedElasticsearchInstanceOfferings": [ { "FixedPrice": 100.0, "ReservedElasticsearchInstanceOfferingId": "1a2a3a4a5-1a2a-3a4a-5a6a-1a2a3a4a5a6a", "RecurringCharges": [ { "RecurringChargeAmount": 0.603, "RecurringChargeFrequency": "Hourly" } ], "UsagePrice": 0.0, "PaymentOption": "PARTIAL_UPFRONT", "Duration": 31536000, "ElasticsearchInstanceType": "m4.2xlarge.elasticsearch", "CurrencyCode": "USD" } ]}

DescribeReservedElasticsearchInstancesDescreve as instâncias que foram reservadas em uma determinada região.

Sintaxe

GET 2015-01-01/es/reservedInstances?reservationId={ReservationId}&maxResults={PageSize}&nextToken={NextToken}

Versão da API 2015-01-01191

Page 200: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDescribeReservedElasticsearchInstances

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

ReservationId String Não O ID da reserva, atribuídodepois que você compra umareserva.

MaxResults Integer Não Limita o número de resultados.Deve estar entre 30 e 100.

NextToken String Não Usado para paginação.Necessário apenas se umachamada de API anteriortiver produzido um resultadocontendo NextToken. Aceitauma entrada de próximo tokenpara retornar resultados paraa próxima página e forneceuma saída de próximo tokenna resposta, que os clientespodem usar para recuperarmais resultados.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

ReservedElasticsearchInstancesReservedElasticsearchInstancesContêiner de todas as informaçõessobre a instância reservada. Parasaber mais, consulte the section called“Comprar instâncias reservadas (CLI daAWS)” (p. 237).

ErrosA operação DescribeReservedElasticsearchInstances não pode retornar nenhum dos erros aseguir:

• DisabledOperationException (p. )• InternalException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )

ExemploSolicitação

Versão da API 2015-01-01192

Page 201: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorGetCompatibleElasticsearchVersions

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/reservedInstances

Resposta

{ "ReservedElasticsearchInstances": [ { "FixedPrice": 100.0, "ReservedElasticsearchInstanceOfferingId": "1a2a3a4a5-1a2a-3a4a-5a6a-1a2a3a4a5a6a", "ReservationName": "my-reservation", "PaymentOption": "PARTIAL_UPFRONT", "UsagePrice": 0.0, "ReservedElasticsearchInstanceId": "9a8a7a6a-5a4a-3a2a-1a0a-9a8a7a6a5a4a", "RecurringCharges": [ { "RecurringChargeAmount": 0.603, "RecurringChargeFrequency": "Hourly" } ], "State": "payment-pending", "StartTime": 1522872571.229, "ElasticsearchInstanceCount": 3, "Duration": 31536000, "ElasticsearchInstanceType": "m4.2xlarge.elasticsearch", "CurrencyCode": "USD" } ]}

GetCompatibleElasticsearchVersionsRetorna um mapa de versões do Elasticsearch e as versões para as quais você pode atualizar.

SintaxeGET /2015-01-01/es/compatibleVersions?domainName={DomainName}

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName DomainName (p. 219) Não O nome de um domínioexistente.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

ElasticsearchVersions Map Um mapa de versões doElasticsearch e as versões paraas quais você pode atualizar.

Versão da API 2015-01-01193

Page 202: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorGetCompatibleElasticsearchVersions

ErrosA operação GetCompatibleElasticsearchVersions não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• ResourceNotFoundException (p. )• DisabledOperationException (p. )• ValidationException (p. )• InternalException (p. )

ExemploO exemplo a seguir relaciona todos os três domínios pertencentes ao usuário atual:

Solicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/compatibleVersions

Resposta

{ "CompatibleElasticsearchVersions": [ { "SourceVersion": "6.0", "TargetVersions": [ "6.3" ] }, { "SourceVersion": "5.1", "TargetVersions": [ "5.6" ] }, { "SourceVersion": "6.2", "TargetVersions": [ "6.3" ] }, { "SourceVersion": "5.3", "TargetVersions": [ "5.6" ] }, { "SourceVersion": "5.5", "TargetVersions": [ "5.6" ] }, { "SourceVersion": "5.6", "TargetVersions": [ "6.3" ] } ]

Versão da API 2015-01-01194

Page 203: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorGetUpgradeHistory

}

GetUpgradeHistoryRetorna uma lista das 10 operações de atualização mais recentes do domínio.

SintaxeGET /2015-01-01/es/upgradeDomain/{DomainName}/history?maxResults={MaxResults}&amp;nextToken={NextToken}

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

MaxResults Integer Não Limita o número de resultados.Deve estar entre 30 e 100.

NextToken String Não Usado para paginação.Necessário apenas se umachamada de API anteriortiver produzido um resultadocontendo NextToken. Aceitauma entrada de próximo tokenpara retornar resultados paraa próxima página e forneceuma saída de próximo tokenna resposta, que os clientespodem usar para recuperarmais resultados.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

UpgradeHistoryList UpgradeHistoryList Contêiner para logs deresultados das últimas dezoperações de atualização.

ErrosA operação GetCompatibleElasticsearchVersions não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• ResourceNotFoundException (p. )• DisabledOperationException (p. )

Versão da API 2015-01-01195

Page 204: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorGetUpgradeHistory

• ValidationException (p. )• InternalException (p. )

ExemploO exemplo a seguir lista o histórico de atualização para o domínio determinado:

Solicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/upgradeDomain/my-domain/history

Resposta

{ "NextToken": null, "UpgradeHistories": [ { "StartTimestamp": 1532466876, "StepsList": [ { "Issues": [ "Upgrade automated snapshot 00010e1cbc.2018-07-24t21-14-40 in state FAILED could not be completed successfully" ], "ProgressPercent": null, "UpgradeStep": "SNAPSHOT", "UpgradeStepStatus": "FAILED" }, { "Issues": null, "ProgressPercent": null, "UpgradeStep": "PRE_UPGRADE_CHECK", "UpgradeStepStatus": "SUCCEEDED" } ], "UpgradeName": "Upgrade from 5.6 to 6.3", "UpgradeStatus": "FAILED" }, { "StartTimestamp": 1532388708, "StepsList": [ { "Issues": null, "ProgressPercent": null, "UpgradeStep": "PRE_UPGRADE_CHECK", "UpgradeStepStatus": "SUCCEEDED" } ], "UpgradeName": "Pre-Upgrade Check from 5.6 to 6.3", "UpgradeStatus": "SUCCEEDED" }, { "StartTimestamp": 1532378327, "StepsList": [ { "Issues": null, "ProgressPercent": null, "UpgradeStep": "UPGRADE", "UpgradeStepStatus": "SUCCEEDED" }, { "Issues": null,

Versão da API 2015-01-01196

Page 205: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorGetUpgradeStatus

"ProgressPercent": null, "UpgradeStep": "SNAPSHOT", "UpgradeStepStatus": "SUCCEEDED" }, { "Issues": null, "ProgressPercent": null, "UpgradeStep": "PRE_UPGRADE_CHECK", "UpgradeStepStatus": "SUCCEEDED" } ], "UpgradeName": "Upgrade from 5.3 to 5.6", "UpgradeStatus": "SUCCEEDED" } ]}

GetUpgradeStatusRetorna o status mais recente de uma atualização de versão do Elasticsearch do domínio.

Sintaxe

GET /2015-01-01/es/upgradeDomain/{DomainName}/status

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName DomainName (p. 219) Sim O nome de um domínioexistente.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

UpgradeStepItem UpgradeStepItem Contêiner para o status maisrecente de uma atualização deversão do domínio.

ErrosA operação GetCompatibleElasticsearchVersions não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• ResourceNotFoundException (p. )• DisabledOperationException (p. )

Versão da API 2015-01-01197

Page 206: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorListDomainNames

• ValidationException (p. )• InternalException (p. )

ExemploO exemplo a seguir lista o status de atualização para o domínio determinado:

Solicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/upgradeDomain/my-domain/status

Resposta

{ "StepStatus": "FAILED", "UpgradeName": "Upgrade from 5.6 to 6.3", "UpgradeStep": "SNAPSHOT"}

ListDomainNamesExibe o nome de todos os domínios do Amazon ES pertencentes ao usuário atual na região ativa.

Sintaxe

GET /2015-01-01/domain

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

DomainNameList DomainNameList (p. 220) Nome de todos os domínios doAmazon ES pertencentes aousuário atual.

ErrosA operação ListDomainNames não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• ValidationException (p. )

Versão da API 2015-01-01198

Page 207: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorListElasticsearchInstanceTypeDetails

ExemploO exemplo a seguir relaciona todos os três domínios pertencentes ao usuário atual:

Solicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/domain

Resposta

{ "DomainNames": [ { "DomainName": "logs" }, { "DomainName": "streaming-logs" } ]}

ListElasticsearchInstanceTypeDetailsLista todos os tipos de instância Elasticsearch que são compatíveis com uma determinada versão doElasticsearch e os recursos com que esses tipos de instância são compatíveis.

Sintaxe

GET 2015-01-01/es/instanceTypeDetails/{ElasticsearchVersion}?domainName={DomainName}&maxResults={MaxResults}&nextToken={NextToken}

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

ElasticsearchVersionString Sim A versão do Elasticsearch.

DomainName String Não O nome do domínio do AmazonES.

MaxResults Integer Não Limita o número de resultados.Deve estar entre 30 e 100.

NextToken String Não Usado para paginação. Necessárioapenas se uma chamada deAPI anterior tiver produzido umresultado contendo NextToken.Aceita uma entrada de próximotoken para retornar resultadospara a próxima página e forneceuma saída de próximo tokenna resposta, que os clientespodem usar para recuperar maisresultados.

Versão da API 2015-01-01199

Page 208: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorListElasticsearchInstanceTypeDetails

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

ElasticsearchInstanceTypesList Lista de tipos de instância compatíveis coma versão específica do Elasticsearch e osrecursos com que esses tipos de instânciasão compatíveis.

NextToken String Usado para paginação. Necessárioapenas se uma chamada de API anteriortiver produzido um resultado contendoNextToken. Aceita uma entrada de próximotoken para retornar resultados para apróxima página e fornece uma saída depróximo token na resposta, que os clientespodem usar para recuperar mais resultados.

ErrosListElasticsearchInstanceTypeDetails não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• InternalException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )

ExemploSolicitação

GET es.us-west-1.amazonaws.com/2015-01-01/es/instanceTypeDetails/6.2

Resposta

{ "ElasticsearchInstanceTypeDetails": [ { "AppLogsEnabled": true, "CognitoEnabled": true, "EncryptionEnabled": false, "InstanceType": "t2.small.elasticsearch" }, { "AppLogsEnabled": true, "CognitoEnabled": true, "EncryptionEnabled": false, "InstanceType": "t2.medium.elasticsearch"

Versão da API 2015-01-01200

Page 209: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorListElasticsearchInstanceTypes (Preterido)

}, { "AppLogsEnabled": true, "CognitoEnabled": true, "EncryptionEnabled": true, "InstanceType": "c4.large.elasticsearch" }, { "AppLogsEnabled": true, "CognitoEnabled": true, "EncryptionEnabled": true, "InstanceType": "c4.xlarge.elasticsearch" }, ... ], "NextToken": null}

ListElasticsearchInstanceTypes (Preterido)Lista todos os tipos de instância Elasticsearch que são suportados para uma determinada versão doElasticsearch. Essa ação está obsoleta. Use ListElasticsearchInstanceTypeDetails (p. 199).

Sintaxe

GET 2015-01-01/es/instanceTypes/{ElasticsearchVersion}?domainName={DomainName}&maxResults={MaxResults}&nextToken={NextToken}

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

ElasticsearchVersionString Sim A versão do Elasticsearch.

DomainName String Não O nome do domínio do AmazonES.

MaxResults Integer Não Limita o número de resultados.Deve estar entre 30 e 100.

NextToken String Não Usado para paginação. Necessárioapenas se uma chamada deAPI anterior tiver produzido umresultado contendo NextToken.Aceita uma entrada de próximotoken para retornar resultadospara a próxima página e forneceuma saída de próximo tokenna resposta, que os clientespodem usar para recuperar maisresultados.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Versão da API 2015-01-01201

Page 210: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorListElasticsearchInstanceTypes (Preterido)

Elementos de resposta

Campo Tipo de dados Descrição

ElasticsearchInstanceTypesList Lista de tipos de instância suportados paraa versão determinada do Elasticsearch.

NextToken String Usado para paginação. Necessárioapenas se uma chamada de API anteriortiver produzido um resultado contendoNextToken. Aceita uma entrada de próximotoken para retornar resultados para apróxima página e fornece uma saída depróximo token na resposta, que os clientespodem usar para recuperar mais resultados.

ErrosListElasticsearchInstanceTypes não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• InternalException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )

ExemploSolicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/instanceTypes/6.0

Resposta

{ "ElasticsearchInstanceTypes": [ "t2.small.elasticsearch", "t2.medium.elasticsearch", "r4.large.elasticsearch", "r4.xlarge.elasticsearch", "r4.2xlarge.elasticsearch", "r4.4xlarge.elasticsearch", "r4.8xlarge.elasticsearch", "r4.16xlarge.elasticsearch", "m4.large.elasticsearch", "m4.xlarge.elasticsearch", "m4.2xlarge.elasticsearch", "m4.4xlarge.elasticsearch", "m4.10xlarge.elasticsearch", "c4.large.elasticsearch", "c4.xlarge.elasticsearch", "c4.2xlarge.elasticsearch", "c4.4xlarge.elasticsearch", "c4.8xlarge.elasticsearch" ], "NextToken": null

Versão da API 2015-01-01202

Page 211: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorListElasticsearchVersions

}

ListElasticsearchVersionsLista todas as versões do Elasticsearch com suporte no Amazon ES.

SintaxeGET 2015-01-01/es/versions?maxResults={MaxResults}&nextToken={NextToken}

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

MaxResults Integer Não Limita o número de resultados.Deve estar entre 30 e 100.

NextToken String Não Usado para paginação. Necessárioapenas se uma chamada deAPI anterior tiver produzido umresultado contendo NextToken.Aceita uma entrada de próximotoken para retornar resultadospara a próxima página e forneceuma saída de próximo tokenna resposta, que os clientespodem usar para recuperar maisresultados.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

ElasticsearchVersions List Lista todas as versões do Elasticsearch comsuporte.

NextToken String Usado para paginação. Necessárioapenas se uma chamada de API anteriortiver produzido um resultado contendoNextToken. Aceita uma entrada de próximotoken para retornar resultados para apróxima página e fornece uma saída depróximo token na resposta, que os clientespodem usar para recuperar mais resultados.

ErrosListElasticsearchVersions não pode retornar nenhum dos erros a seguir:

Versão da API 2015-01-01203

Page 212: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorListTags

• BaseException (p. )• InternalException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )

ExemploSolicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/versions

Resposta

{ "ElasticsearchVersions": [ "6.0", "5.5", "5.3", "5.1", "2.3", "1.5" ], "NextToken": null}

ListTagsExibe todas as tags de recurso para um domínio do Amazon ES.

SintaxeGET /2015-01-01/tags?arn=<DOMAIN_ARN>

Parâmetros de solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

ARN ARN (p. 217) Sim Nome de recurso da Amazon (ARN) parao domínio do Amazon ES.

Corpo da solicitaçãoEssa operação não usa o corpo de solicitação HTTP.

Elementos de resposta

Campo Tipo de dados Descrição

TagList TagList (p. 229) Lista de tags de recurso. Para obter mais informações,consulte Marcação de domínios do AmazonElasticsearch Service (p. 53).

Versão da API 2015-01-01204

Page 213: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPurchaseReservedElasticsearchInstance

ErrosA operação ListTags não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )• InternalException (p. )

ExemploO exemplo a seguir relaciona as tags anexadas ao domínio logs:

Solicitação

GET es.<AWS_REGION>.amazonaws.com/2015-01-01/tags?arn=arn:aws:es:us-west-1:123456789012:domain/logs

Resposta

HTTP/1.1 200 OK{ "TagList": [ { "Key": "Environment", "Value": "MacOS" }, { "Key": "project", "Value": "trident" } ]}

PurchaseReservedElasticsearchInstanceCompra uma instância reservada.

SintaxePOST /2015-01-01/es/purchaseReservedInstanceOffering

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação HTTP.

Corpo da solicitação

Nome Tipo de dados Obrigatório?Descrição

ReservationNameString Sim Um nome descritivo para a reserva.

ReservedElasticsearchInstanceOfferingIdString Sim O ID da oferta.

Versão da API 2015-01-01205

Page 214: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRemoveTags

Nome Tipo de dados Obrigatório?Descrição

InstanceCount Inteiro Sim O número de instâncias que você desejareservar.

Elementos de resposta

Campo Tipo de dados Descrição

ReservationName String O nome da reserva.

ReservedElasticsearchInstanceIdString O ID da reserva.

ErrosA operação PurchaseReservedElasticsearchInstance não pode retornar nenhum dos erros aseguir:

• DisabledOperationException (p. )• InternalException (p. )• ResourceNotFoundException (p. )• ValidationException (p. )• LimitExceededException (p. )• ResourceAlreadyExistsException (p. )

ExemploSolicitação

POST es.<AWS_REGION>.amazonaws.com/2015-01-01/es/purchaseReservedInstanceOffering{ "ReservationName" : "my-reservation", "ReservedElasticsearchInstanceOfferingId" : "1a2a3a4a5-1a2a-3a4a-5a6a-1a2a3a4a5a6a", "InstanceCount" : 3}

Resposta

{ "ReservationName": "my-reservation", "ReservedElasticsearchInstanceId": "9a8a7a6a-5a4a-3a2a-1a0a-9a8a7a6a5a4a"}

RemoveTagsRemove as tags de recurso especificadas de um domínio do Amazon ES.

SintaxePOST es.<AWS_REGION>.amazonaws.com/2015-01-01/tags-removal{

Versão da API 2015-01-01206

Page 215: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorRemoveTags

"ARN": "<DOMAIN_ARN>", "TagKeys": [ "<TAG_KEY>", "<TAG_KEY>", ... ]}

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação HTTP.

Corpo da solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

ARN ARN (p. 217) Sim Nome de recurso da Amazon (ARN) de umdomínio do Amazon ES. Para obter maisinformações, consulte Identifiers for IAMEntities em Using AWS Identity and AccessManagement.

TagKeys TagKey (p. 229) Sim Lista de chaves de tag para tags de recursoque você deseja remover de um domínio doAmazon ES.

Elementos de respostaNão aplicável. A operação RemoveTags não retorna um elemento de resposta.

ErrosA operação RemoveTags não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• ValidationException (p. )• InternalException (p. )

ExemploO exemplo a seguir exclui uma tag de recurso com uma chave de tag project do domínio do AmazonES:

Solicitação

POST /2015-01-01/tags-removal{ "ARN": "<DOMAIN_ARN>", "TagKeys": [ "project" ]}

Essa operação não retorna um elemento de resposta.

Versão da API 2015-01-01207

Page 216: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorStartElasticsearchServiceSoftwareUpdate

StartElasticsearchServiceSoftwareUpdateAgenda uma atualização do software de serviço para um domínio do Amazon ES.

SintaxePOST es.<AWS_REGION>.amazonaws.com/2015-01-01/es/serviceSoftwareUpdate/start{ "DomainName": "<DOMAIN_NAME>"}

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação HTTP.

Corpo da solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName DomainName (p. 219) Sim Nome do domínio Amazon ES que desejaatualizar para o software de serviço maisrecente.

Elementos de resposta

Campo Tipo de dados Descrição

ServiceSoftwareOptionsServiceSoftwareOptionsContêiner para o estado do seu domínio em relação aosoftware de serviço mais recente.

ErrosA operação RemoveTags não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• ValidationException (p. )• InternalException (p. )• ResourceNotFoundException (p. )

ExemploO exemplo a seguir programa uma atualização do software de serviço para my-domain:

Solicitação

POST es.us-west-1.amazonaws.com/2015-01-01/es/serviceSoftwareUpdate/start{ "DomainName": "my-domain"}

Versão da API 2015-01-01208

Page 217: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorStopElasticsearchServiceSoftwareUpdate

Resposta

{ "ServiceSoftwareOptions": { "AutomatedUpdateDate": 1530185603, "Cancellable": true, "CurrentVersion": "LEGACY", "Description": "An update to release R1234567 has been requested and is pending. Before the update starts, you can cancel it any time", "NewVersion": "R1234567", "UpdateAvailable": false, "UpdateStatus": "PENDING_UPDATE" }}

StopElasticsearchServiceSoftwareUpdateInterrompe uma atualização do software de serviço agendado para um domínio do Amazon ES. Somentefunciona se o domínio UpdateStatus é PENDING_UPDATE.

Sintaxe

POST es.<AWS_REGION>.amazonaws.com/2015-01-01/es/serviceSoftwareUpdate/stop{ "DomainName": "<DOMAIN_NAME>"}

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação HTTP.

Corpo da solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName DomainName (p. 219) Sim Nome do domínio Amazon ES que desejaatualizar para o software de serviço maisrecente.

Elementos de resposta

Campo Tipo de dados Descrição

ServiceSoftwareOptionsServiceSoftwareOptions (p. 227)Contêiner para o estado do seu domínio em relação aosoftware de serviço mais recente.

ErrosA operação RemoveTags não pode retornar nenhum dos erros a seguir:

• BaseException (p. )

Versão da API 2015-01-01209

Page 218: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUpdateElasticsearchDomainConfig

• ValidationException (p. )• InternalException (p. )• ResourceNotFoundException (p. )

ExemploO exemplo a seguir interrompe uma atualização do software de serviço para my-domain:

Solicitação

POST es.us-west-1.amazonaws.com/2015-01-01/es/serviceSoftwareUpdate/stop{ "DomainName": "my-domain"}

Resposta

{ "ServiceSoftwareOptions": { "AutomatedUpdateDate": 1530185603, "Cancellable": false, "CurrentVersion": "LEGACY", "Description": "A new software release R1234567 is available. This release will be automatically deployed if no action is taken.", "NewVersion": "R1234567", "UpdateAvailable": true, "UpdateStatus": "ELIGIBLE" }}

UpdateElasticsearchDomainConfigModifica a configuração de um domínio do Amazon ES, como o tipo de instância e o número de instâncias.Basta especificar os valores que você deseja atualizar.

SintaxePOST /2015-01-01/es/domain/<DOMAIN_NAME>/config{ "ElasticsearchClusterConfig": { "InstanceType": "<INSTANCE_TYPE>", "Instance_Count": <INSTANCE_COUNT>, "DedicatedMasterEnabled": "<TRUE|FALSE>", "DedicatedMasterCount": <INSTANCE_COUNT>, "DedicatedMasterType": "<INSTANCE_COUNT>", "ZoneAwarenessEnabled": "<TRUE|FALSE>" }, "EBSOptions": { "EBSEnabled": "<TRUE|FALSE>", "VolumeType": "<VOLUME_TYPE>", "VolumeSize": "<VOLUME_SIZE>", "Iops": "<VALUE>" }, "VPCOptions": { "SubnetIds": [ "<SUBNET_ID>" ], "SecurityGroupIds": [

Versão da API 2015-01-01210

Page 219: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUpdateElasticsearchDomainConfig

"<SECURITY_GROUP_ID>" ] }, "AccessPolicies": "<ACCESS_POLICY_DOCUMENT>", "SnapshotOptions": { "AutomatedSnapshotStartHour": <START_HOUR>, "AdvancedOptions": { "rest.action.multi.allow_explicit_index": "<TRUE|FALSE>", "indices.fielddata.cache.size": "<PERCENTAGE_OF_HEAP>" } }, "LogPublishingOptions": { "SEARCH_SLOW_LOGS": { "CloudWatchLogsLogGroupArn":"<ARN>", "Enabled":true }, "INDEX_SLOW_LOGS": { "CloudWatchLogsLogGroupArn":"<ARN>", "Enabled":true } }}

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação HTTP.

Corpo da solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName DomainName (p. 219) Sim Nome do domínio do Amazon ESpara a qual você deseja atualizar aconfiguração.

ElasticsearchClusterConfigElasticsearchClusterConfig (p. 220)Não Alterações desejadas para aconfiguração do cluster, como otipo de instância e o número deinstâncias do EC2.

EBSOptions EBSOptions (p. 220) Não Tipo e tamanho dos volumes do EBSanexados aos nós de dados.

VPCOptions VPCOptions (p. 230) Não Contêiner dos valores necessáriospara configurar o Amazon ES parafuncionar com uma VPC. Para sabermais, consulte Suporte a VPC paradomínios do Amazon ElasticsearchService (p. 116).

SnapshotOptions SnapshotOptions (p. 228) Não Hora durante a qual o serviço obtémum snapshot diário automatizado dosíndices no domínio do Amazon ES.

AdvancedOptions AdvancedOptions (p. 216) Não Pares de chave/valor para especificaropções de configuração avançada.Para obter mais informações,consulte Configuração de opçõesavançadas (p. 25).

Versão da API 2015-01-01211

Page 220: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUpdateElasticsearchDomainConfig

Parâmetro Tipo de dados Obrigatório?Descrição

AccessPolicies String Não Especifica as políticas de acessopara o domínio do Amazon ES.Para obter mais informações,consulte Configuração de políticas deacesso (p. 22).

LogPublishingOptionsLogPublishingOptions (p. 225)Não String de pares de chave-valor paraconfigurar a publicação de logslentos.

CognitoOptions CognitoOptions (p. 218) Não Pares de chave/valor paraconfigurar o Amazon ES para usar aautenticação Amazon Cognito para oKibana.

Elementos de resposta

Campo Tipo de dados Descrição

DomainConfig String Status do domínio do Amazon ES após a atualização darespectiva configuração.

ErrosUpdateElasticsearchDomainConfig não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• InternalException (p. )• InvalidTypeException (p. )• LimitExceededException (p. )• ValidationException (p. )

ExemploO exemplo a seguir configura o snapshot diário automático para o domínio streaming-logs para queocorra durante uma hora, a partir de 3h00 GMT:

Solicitação

POST es.<AWS_REGION>.amazonaws.com/2015-01-01/es/domain/streaming-logs/config{ "SnapshotOptions": { "AutomatedSnapshotStartHour": 3 }}

Resposta

{ "DomainConfig": {

Versão da API 2015-01-01212

Page 221: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUpdateElasticsearchDomainConfig

"AccessPolicies": { "Options": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-west-1:123456789012:domain/streaming-logs/*\",\"Condition\":{\"IpAddress\":{\"aws:SourceIp\":[\"11.222.333.11\",\"11.222.333.12\",\"11.222.333.13\",\"11.222.333.14\",\"11.222.333.15\"]}}}]}", "Status": { "CreationDate": 1502213150.329, "PendingDeletion": false, "State": "Active", "UpdateDate": 1502213466.93, "UpdateVersion": 6 } }, "AdvancedOptions": { "Options": { "rest.action.multi.allow_explicit_index": "true" }, "Status": { "CreationDate": 1502213150.329, "PendingDeletion": false, "State": "Active", "UpdateDate": 1502213466.93, "UpdateVersion": 6 } }, "EBSOptions": { "Options": { "EBSEnabled": true, "EncryptionEnabled": false, "Iops": null, "VolumeSize": 11, "VolumeType": "gp2" }, "Status": { "CreationDate": 1502213150.329, "PendingDeletion": false, "State": "Active", "UpdateDate": 1502929669.653, "UpdateVersion": 23 } }, "ElasticsearchClusterConfig": { "Options": { "DedicatedMasterCount": 2, "DedicatedMasterEnabled": false, "DedicatedMasterType": "m4.large.elasticsearch", "InstanceCount": 2, "InstanceType": "t2.small.elasticsearch", "ZoneAwarenessEnabled": false }, "Status": { "CreationDate": 1502213150.329, "PendingDeletion": false, "State": "Active", "UpdateDate": 1502929669.653, "UpdateVersion": 23 } }, "ElasticsearchVersion": { "Options": "5.5", "Status": { "CreationDate": 1502213150.329, "PendingDeletion": false, "State": "Active", "UpdateDate": 1502213466.93,

Versão da API 2015-01-01213

Page 222: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUpdateElasticsearchDomainConfig

"UpdateVersion": 6 } }, "EncryptionAtRestOptions": { "Options": { "Enabled": true, "KmsKeyId": "arn:aws:kms:us-west-1:123456789012:key/1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a" }, "Status": { "CreationDate": 1509490412.757, "PendingDeletion": false, "State": "Active", "UpdateDate": 1509490953.717, "UpdateVersion": 6 } }, "LogPublishingOptions":{ "Options":{ "INDEX_SLOW_LOGS":{ "CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1:123456789012:log-group:sample-domain", "Enabled":true }, "SEARCH_SLOW_LOGS":{ "CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1:123456789012:log-group:sample-domain", "Enabled":true } }, "Status":{ "CreationDate":1502774634.546, "PendingDeletion":false, "State":"Processing", "UpdateDate":1502779590.448, "UpdateVersion":60 } }, "SnapshotOptions": { "Options": { "AutomatedSnapshotStartHour": 3 }, "Status": { "CreationDate": 1502213150.329, "PendingDeletion": false, "State": "Active", "UpdateDate": 1503093165.447, "UpdateVersion": 25 } }, "VPCOptions": { "Options": { "AvailabilityZones": null, "SecurityGroupIds": null, "SubnetIds": null, "VPCId": null }, "Status": { "CreationDate": 1503093165.597, "PendingDeletion": false, "State": "Active", "UpdateDate": 1503093165.597, "UpdateVersion": 25 } } }

Versão da API 2015-01-01214

Page 223: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorUpgradeElasticsearchDomain

}

UpgradeElasticsearchDomainAtualiza um domínio do Amazon ES para uma nova versão do Elasticsearch. Como alternativa, verifica aqualificação da atualização.

SintaxePOST /2015-01-01/es/upgradeDomain{ "DomainName": "String", "TargetVersion": "String", "PerformCheckOnly": true|false}

Parâmetros de solicitaçãoEssa operação não usa parâmetros de solicitação HTTP.

Corpo da solicitação

Parâmetro Tipo de dados Obrigatório?Descrição

DomainName String Sim Nome do domínio do Amazon ESque você deseja atualizar.

TargetVersion String Sim Versão do Elasticsearch paraa qual você deseja atualizar.Consulte the section called“GetCompatibleElasticsearchVersions” (p. 193).

PerformCheckOnly Booliano Não O padrão é falso. Se verdadeiro, oAmazon ES verifica a qualificaçãodo domínio, mas não executa aatualização.

Elementos de resposta

Campo Tipo de dados Descrição

UpgradeElasticsearchDomainResponseMapa Resposta básica confirmando detalhes da operação.

ErrosUpdateElasticsearchDomainConfig não pode retornar nenhum dos erros a seguir:

• BaseException (p. )• ResourceNotFound (p. )

• ResourceAlreadyExists (p. )

• DisabledOperation (p. )

• ValidationException (p. )

Versão da API 2015-01-01215

Page 224: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorTipos de dados

• Internal (p. )

ExemploO exemplo a seguir atualiza um domínio do Amazon ES 5.x para Elasticsearch 5.6:

Solicitação

POST es.<AWS_REGION>.amazonaws.com/2015-01-01/es/upgradeDomain/{ "DomainName": "my-domain", "TargetVersion": "5.6", "PerformCheckOnly": false}

Resposta

{ "DomainName": null, "PerformCheckOnly": null, "TargetVersion": null, "UpgradeId": null}

Tipos de dadosEsta seção descreve os tipos de dados usados pela API de configuração REST.

AdvancedOptionsPares de string de chave/valor para especificar opções de configuração avançadas do Elasticsearch.

Campo Tipo de dados Descrição

rest.action.multi.allow_explicit_indexPar de chave/valor:

rest.action.multi.allow_explicit_index=<true|false>

Especifica se sãopermitidas referênciasexplícitas aos índicesdentro do corpo dassolicitações HTTP. Sevocê desejar configurarpolíticas de acessopara sub-recursos dodomínio, como índicese APIs específicosao domínio, seránecessário desativaressa propriedade.Para obter maisinformações, consulteURL-based AccessControl. Para obtermais informações sobrepolíticas de acesso

Versão da API 2015-01-01216

Page 225: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAdvancedOptionsStatus

Campo Tipo de dados Descriçãopara sub-recursos,consulte Configuraçãode políticas deacesso (p. 22).

indices.fielddata.cache.sizePar de chave/valor:

indices.fielddata.cache.size=<percentage_of_heap>

Especifica aporcentagem deespaço do heap doJava alocada a dadosde campo. Por padrão,essa configuração éilimitada.

indices.query.bool.max_clause_countPar de chave/valor:

indices.query.bool.max_clause_count=<int>

Especifica o númeromáximo de cláusulaspermitidas em umaconsulta booliana noLucene. O padrãoé 1.024. Consultasque ultrapassam onúmero permitido decláusulas geram o erroTooManyClauses.Para sabermais, consulte adocumentação doLucene.

AdvancedOptionsStatusStatus de uma atualização de opções de configuração avançadas para um domínio do Amazon ES.

Campo Tipo de dados Descrição

Opções AdvancedOptions (p. 216) Pares de de chave/valorpara especificar opções deconfiguração avançadas doElasticsearch.

Status OptionStatus (p. 227) Status de uma atualizaçãode opções de configuraçãoavançadas para um domínio doAmazon ES.

ARN

Campo Tipo de dados Descrição

ARN String Nome de recurso da Amazon (ARN) deum domínio do Amazon ES. Para obtermais informações, consulte IAM ARNs

Versão da API 2015-01-01217

Page 226: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCognitoOptions

Campo Tipo de dados Descriçãona documentação do AWS Identity andAccess Management.

CognitoOptions

Campo Tipo de dados Descrição

Enabled Booliano Determina se vai habilitar ou desabilitar aautenticação do Amazon Cognito para o Kibana.Consulte Autenticação para o Kibana (p. 103).

UserPoolId String O ID de grupo de usuários do Amazon Cognitoque você deseja que o Amazon ES use para aautenticação do Kibana.

IdentityPoolId String O ID de grupo de identidades do Amazon Cognitoque você deseja que o Amazon ES use para aautenticação do Kibana.

RoleArn String A função AmazonESCognitoAccess que permiteque o Amazon ES configure seus grupos deusuários e de identidades.

CognitoOptionsStatus

Campo Tipo de dados Descrição

Options CognitoOptions (p. 218)Pares de chave/valor para configurar o AmazonES para usar a autenticação Amazon Cognitopara o Kibana.

Status OptionStatus (p. 227)Status de uma atualização de opções daconfiguração do Amazon Cognito para umdomínio do Amazon ES.

CreateElasticsearchDomainRequestContêiner de parâmetros necessários para a operação de serviço CreateElasticsearchDomain.

Campo Tipo de dados Descrição

DomainName DomainName (p. 219) Nome do domínio do Amazon ES a sercriado.

ElasticsearchClusterConfigElasticsearchClusterConfig (p. 220)Contêiner para a configuração de clusterde um domínio do Amazon ES.

EBSOptions EBSOptions (p. 220) Contêiner para os parâmetros necessáriospara permitir armazenamento EBS paraum domínio do Amazon ES. Para obter

Versão da API 2015-01-01218

Page 227: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDomainID

Campo Tipo de dados Descriçãomais informações, consulte Configuraçãode armazenamento EBS (p. 19).

AccessPolicies String Documento de política do IAM queespecifica políticas de acesso para o novodomínio do Amazon ES. Para obter maisinformações, consulte Configuração depolíticas de acesso (p. 22).

SnapshotOptions SnapshotOptionsStatus (p. 228)Contêiner de parâmetros necessáriospara configurar snapshots automatizadosde índices de domínio. Para obter maisinformações, consulte Configuração desnapshots (p. 24).

VPCOptions VPCOptions (p. 230) Contêiner dos valores necessários paraconfigurar o Amazon ES para funcionarcom uma VPC.

LogPublishingOptions LogPublishingOptions (p. 225)String de pares de chave-valor paraconfigurar a publicação de logs lentos.

SnapshotOptions SnapshotOptionsStatus (p. 228)Contêiner de parâmetros necessáriospara configurar snapshots automatizadosde índices de domínio. Para obter maisinformações, consulte Configuração desnapshots (p. 24).

AdvancedOptions AdvancedOptionsStatus (p. 217)Pares de chave/valor para especificaropções de configuração avançada.

CognitoOptions CognitoOptions (p. 218) Pares de chave/valor para configurar oAmazon ES para usar a autenticaçãoAmazon Cognito para o Kibana.

NodeToNodeEncryptionOptionsNodeToNodeEncryptionOptions (p. 226)Especifique true para ativar a criptografiade nó a nó.

DomainID

Tipo de dados Descrição

String Identificador exclusivo para um domínio do Amazon ES

DomainNameNome de um domínio do Amazon ES.

Tipo de dados Descrição

String Nome de um domínio do Amazon ES. Os nomes de domínio sãoexclusivos em todos os domínios pertencentes à mesma conta dentro de

Versão da API 2015-01-01219

Page 228: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorDomainNameList

Tipo de dados Descriçãouma região da AWS. Os nomes de domínio devem começar com letraminúscula e devem ter entre 3 e 28 caracteres. Os caracteres válidos sãoa-z (minúsculas apenas), 0-9 e – (hífen).

DomainNameListString de nomes de domínio do Amazon ES.

Tipo de dados Descrição

String Array Matriz de domínios do Amazon ES no formato a seguir:

["<Domain_Name>","<Domain_Name>"...]

EBSOptionsContêiner para os parâmetros necessários para permitir armazenamento EBS para um domínio doAmazon ES. Para obter mais informações, consulte Configuração de armazenamento EBS (p. 19).

Campo Tipo de dados Descrição

EBSEnabled Booliano Indica se os volumes do EBS estão anexados a nós dedados em um domínio do Amazon ES.

VolumeType String Especifica o tipo de volume do EBS anexado a nós dedados.

VolumeSize String Especifica o tamanho (em GiB) do volume do EBSanexado a nós de dados.

Iops String Especifica o desempenho de referência de entrada/saída (E/S)dos volumes do EBS anexados aos nósde dados. Aplicável somente ao tipo de volume IOPSprovisionado do EBS.

ElasticsearchClusterConfigContêiner para a configuração de cluster de um domínio do Amazon ES.

Campo Tipo de dados Descrição

InstanceType String Tipo de Instância de nós de dados no cluster.

InstanceCount Inteiro Número de instâncias no cluster.

DedicatedMasterEnabled Booliano Indica se os nós principais dedicados estãohabilitados para o cluster. True se o cluster forusar um nó principal dedicado. False se o clusternão for. Para obter mais informações, consulteSobre os nós principais dedicados (p. 128).

Versão da API 2015-01-01220

Page 229: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorElasticsearchDomainConfig

Campo Tipo de dados Descrição

DedicatedMasterType String Tipo de instância do Amazon ES de nós principaisdedicados no cluster.

DedicatedMasterCount Inteiro Número de nós principais dedicados no cluster.

ZoneAwarenessEnabled Booliano Indica se o reconhecimento de zona estáhabilitado. O reconhecimento de zona aloca os nóse os estilhaços de réplica de índice pertencentesa um cluster em duas zonas de disponibilidade namesma região.

Se você habilitar o reconhecimento de zona,deverá ter um número de instâncias na contagemde instância e deverá também usar a de API deconfiguração do Amazon ES para replicar dadospara o cluster do Elasticsearch.Para obter mais informações, consulte Habilitaçãode reconhecimento de zona (p. 48).

ElasticsearchDomainConfigContêiner para a configuração de um domínio do Amazon ES.

Campo Tipo de dados Descrição

ElasticsearchVersion String Versão do Elasticsearch.

ElasticsearchClusterConfig ElasticsearchClusterConfig (p. 220)Contêiner para a configuraçãode cluster de um domínio doAmazon ES.

EBSOptions EBSOptions (p. 220) Contêiner para opções do EBSconfiguradas para um domíniodo Amazon ES.

AccessPolicies String Especifica as políticas deacesso para o domínio doAmazon ES. Para obtermais informações, consulteConfiguração de políticas deacesso (p. 22).

SnapshotOptions SnapshotOptionsStatus (p. 228)Hora durante a qual o serviçoobtém um snapshot diárioautomatizado dos índicesno domínio do Amazon ES.Para obter mais informações,consulte Configuração desnapshots (p. 24).

VPCOptions VPCDerivedInfoStatus (p. 230)As VPCOptions (p. 230)atuais para o domínio e o statusde qualquer atualização daconfiguração.

Versão da API 2015-01-01221

Page 230: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorElasticsearchDomainStatus

Campo Tipo de dados Descrição

LogPublishingOptions LogPublishingOptions (p. 225)de pares de chave-valor paraconfigurar a publicação de logslentos.

AdvancedOptions AdvancedOptionsStatus (p. 216)Pares de chave/valor paraespecificar opções deconfiguração avançada.

EncryptionAtRestOptions EncryptionAtRestOptionsStatus (p. 224)Pares de chave-valor para ativara criptografia em repouso.

NodeToNodeEncryptionOptions NodeToNodeEncryptionOptionsStatus (p. 226)Se a criptografia de nó a nóestiver ativada ou desativada.

ElasticsearchDomainStatusContêiner para conteúdo de uma estrutura de dados DomainStatus.

Campo Tipo de dados Descrição

DomainID DomainID (p. 219) Identificador exclusivo para umdomínio do Amazon ES.

DomainName DomainName (p. 219) Nome de um domínio do AmazonES. Os nomes de domíniosão exclusivos em todos osdomínios pertencentes à mesmaconta dentro de uma região daAWS. Os nomes de domíniodevem começar com letraminúscula e devem ter entre 3e 28 caracteres. Os caracteresválidos são a-z (minúsculasapenas), 0-9 e – (hífen).

ARN ARN (p. 217) Nome de recurso da Amazon(ARN) de um domínio doAmazon ES. Para obter maisinformações, consulte Identifiersfor IAM Entities em UsingAWS Identity and AccessManagement.

Created Booliano Status de criação de um domíniodo Amazon ES. True se acriação do domínio estiverconcluída. False se a criaçãodo domínio ainda estiver emandamento.

Deleted Booliano Status de exclusão de umdomínio do Amazon ES. Truese a exclusão do domínio estiverconcluída. False se a exclusão

Versão da API 2015-01-01222

Page 231: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorElasticsearchDomainStatus

Campo Tipo de dados Descriçãodo domínio ainda estiver emandamento.

Endpoint ServiceUrl (p. 228) Endpoint específico ao domíniousado para enviar solicitaçõesde índice, pesquisa e upload dedados a um domínio do AmazonES.

Endpoints EndpointsMap (p. 225) O par chave-valor existentequando o domínio do Amazon ESusa VPC endpoints.

Processing Booliano Status de uma alteração naconfiguração de um domínio doAmazon ES. True se o serviçoainda estiver processando asalterações de configuração.False se a alteração deconfiguração estiver ativa.Você deve esperar o domínioatingir o status ativo para enviarsolicitações de índice, pesquisa eupload de dados.

ElasticsearchVersion String Versão do Elasticsearch.

ElasticsearchClusterConfig ElasticsearchClusterConfig (p. 220)Contêiner para a configuraçãode cluster de um domínio doAmazon ES.

EBSOptions EBSOptions (p. 220) Contêiner para os parâmetrosnecessários para permitirarmazenamento EBS para umdomínio do Amazon ES. Paraobter mais informações, consulteConfiguração de armazenamentoEBS (p. 19).

AccessPolicies String Documento de política do IAMque especifica políticas deacesso para o novo domíniodo Amazon ES. Para obtermais informações, consulteConfiguração de políticas deacesso (p. 22).

SnapshotOptions SnapshotOptions (p. 228) Contêiner de parâmetrosnecessários para configurar otempo dos snapshots diáriosautomatizados dos índices dodomínio do Amazon ES.

VPCOptions VPCDerivedInfo (p. 230) Informações derivadas peloAmazon ES com base emVPCOptions (p. 230) dodomínio.

Versão da API 2015-01-01223

Page 232: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorElasticsearchDomainStatusList

Campo Tipo de dados Descrição

LogPublishingOptions LogPublishingOptions (p. 225)de pares de chave-valor paraconfigurar a publicação de logslentos.

AdvancedOptions AdvancedOptions (p. 216) Pares de chave/valor paraespecificar opções deconfiguração avançada.

EncryptionAtRestOptions EncryptionAtRestOptions (p. 224)Pares de chave-valor para ativara criptografia em repouso.

CognitoOptions CognitoOptions (p. 218) Pares de chave/valor paraconfigurar o Amazon ES parausar a autenticação AmazonCognito para o Kibana.

NodeToNodeEncryptionOptionsNodeToNodeEncryptionOptions (p. 226)Se a criptografia de nó a nóestiver ativada ou desativada.

ElasticsearchDomainStatusListLista que contém o status de cada domínio especificado do Amazon ES.

Campo Tipo de dados Descrição

DomainStatusList ElasticsearchDomainStatus (p. 222)Lista que contém o status decada domínio especificado doAmazon ES.

EncryptionAtRestOptionsEspecifica se o domínio deve criptografar dados em repouso e, se esse for o caso, qual chave do AWSKey Management Service (KMS) usar. Pode ser usado para criar um novo domínio, não atualizar umexistente.

Campo Tipo de dados Descrição

Enabled Booliano Especifique true para ativara criptografia em repouso.

KmsKeyId String O ID da chave do KMS.Assume o formato1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a.

EncryptionAtRestOptionsStatusStatus das opções de criptografia em repouso.

Versão da API 2015-01-01224

Page 233: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEndpointsMap

Campo Tipo de dados Descrição

Options EncryptionAtRestOptions (p. 224) Opções de criptografia emrepouso para o domínio.

Status OptionStatus (p. 227) Status das opções decriptografia em repouso.

EndpointsMapO par chave-valor que contém o VPC endpoint. Só existe se o domínio do Amazon ES residir em umaVPC.

Campo Tipo de dados Descrição

Endpoints Par de stringde chave/valor: "vpc":"<VPC_ENDPOINT>"

O VPC endpoint do domínio.

Opções de publicação de logsEspecifica se o domínio do Amazon ES publica o aplicativo Elasticsearch e os logs lentos no AmazonCloudWatch. Você ainda tem que habilitar a coleta de logs lentos usando a API REST do Elasticsearch.Para saber mais, consulte the section called “Configuração dos limites de logs do Elasticsearch para logslentos” (p. 29).

Campo Tipo de dados Descrição

INDEX_SLOW_LOGS Chave-valor Dois pares de chave-valor que definem ogrupo de logs do CloudWatch e se o índicede log lento do Elasticsearch deve serpublicado lá:

"CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1:264071961897:log-group:sample-domain","Enabled":true

SEARCH_SLOW_LOGS Chave-valor Dois pares de chave-valor que definemo grupo de logs do CloudWatch e sea pesquisa do Elasticsearch deve serpublicada lá:

"CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1:264071961897:log-group:sample-domain","Enabled":true

ES_APPLICATION_LOGS Chave-valor Dois pares de chave-valor que definemo grupo de logs do CloudWatch e se os

Versão da API 2015-01-01225

Page 234: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorStatus de opções de publicação de logs

Campo Tipo de dados Descriçãologs de erro do Elasticsearch devem serpublicados lá:

"CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1:264071961897:log-group:sample-domain","Enabled":true

Status de opções de publicação de logsStatus de uma atualização para a configuração das opções de publicação de logs lentos de um domínio doAmazon ES.

Campo Tipo de dados Descrição

Options LogPublishingOptions (p. 225) Opções de publicação de logno domínio

Status OptionStatus (p. 227) Status de uma atualização deopções de snapshot para umdomínio do Amazon ES

NodeToNodeEncryptionOptionsHabilita ou desabilita a criptografia de nó a nó.

Campo Tipo de dados Descrição

Enabled Booliano Habilitar com true

NodeToNodeEncryptionOptionsStatusEstado das opções de criptografia de nó para nó de um domínio.

Campo Tipo de dados Descrição

Options NodeToNodeEncryptionOptions (p. 226)Se a criptografia de nó a nó estiver ativada oudesativada.

Status OptionStatus (p. 227) Status da configuração.

OptionStateEstado de uma atualização para opções avançadas de um domínio do Amazon ES.

Campo Tipo de dados Descrição

OptionStatus String Um de três valores válidos:

Versão da API 2015-01-01226

Page 235: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorOptionStatus

Campo Tipo de dados Descrição• RequiresIndexDocuments• Processamento• Ativo

OptionStatusStatus de uma atualização de opções de configuração para um domínio do Amazon ES.

Campo Tipo de dados Descrição

CreationDate Time stamp Data e hora em que o domínio do AmazonES foi criado

UpdateDate Time stamp Data e hora em que o domínio do AmazonES foi atualizado

UpdateVersion Inteiro Número inteiro que especifica a versão maisrecente da entidade

State OptionState (p. 226) Estado de uma atualização de opções deconfiguração para um domínio do AmazonES

PendingDeletion Booliano Indica se o serviço está processando umasolicitação para excluir permanentementeo domínio do Amazon ES e todos os seusrecursos

ServiceSoftwareOptionsContêiner para o estado do seu domínio em relação ao software de serviço mais recente.

Campo Tipo de dados Descrição

UpdateAvailable Booliano Se uma atualização de software do serviçoestá disponível ou não para o seu domínio.

Cancellable Booliano Se você tiver solicitado um domínio deatualização, se você pode cancelar ou não aatualização.

AutomatedUpdateDate Timestamp O horário de Epoch em que a janela deimplantação é fechada. Após esse tempo,Amazon ES agenda a atualização dosoftware automaticamente.

UpdateStatus String O status da atualização. Os valoressão ELIGIBLE, PENDING_UPDATE,IN_PROGRESS, COMPLETED eNOT_ELIGIBLE.

Description String Descrição mais detalhada do status.

Versão da API 2015-01-01227

Page 236: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorServiceURL

Campo Tipo de dados Descrição

CurrentVersion String Sua versão de software de serviço atual.

NewVersion String A versão mais recente do software deserviço.

ServiceURLEndpoint específico ao domínio usado para enviar solicitações de índice, pesquisa e upload de dados a umdomínio do Amazon ES.

Campo Tipo dedados

Descrição

ServiceURL String Endpoint específico ao domínio usado para enviar solicitações deíndice, pesquisa e upload de dados a um domínio do Amazon ES

SnapshotOptionsContêiner de parâmetros necessários para configurar a hora dos snapshots diários automatizados dosíndices em um domínio do Amazon ES.

Campo Tipo de dados Descrição

AutomatedSnapshotStartHour Inteiro Hora durante a qual o serviço obtém umsnapshot diário automatizado dos índicesno domínio do Amazon ES

SnapshotOptionsStatusStatus de uma atualização para a configuração do snapshot diário automatizado de um domínio doAmazon ES.

Campo Tipo de dados Descrição

Options SnapshotOptions (p. 228) Contêiner de parâmetros necessáriospara configurar a hora dos snapshotsdiários automatizados dos índices em umdomínio do Amazon ES

Status OptionStatus (p. 227) Status de uma atualização de opções desnapshot para um domínio do AmazonES

Versão da API 2015-01-01228

Page 237: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorTag

Tag

Campo Tipo de dados Descrição

Key TagKey (p. 229) Nome obrigatório da tag. As chaves de tag devemser exclusivas ao domínio do Amazon ES ao qualelas são anexadas. Para obter mais informações,consulte Marcação de domínios do AmazonElasticsearch Service (p. 53).

Value TagValue (p. 229) Valor de string opcional da tag. Os valores de tagpodem ser nulos e não precisam ser exclusivosem um conjunto de tags. Por exemplo, você podeter um par de chave-valor em um conjunto detags definido como projeto/Trinity e centro-custos/Trinity.

TagKey

Campo Tipo de dados Descrição

Key String Nome da tag. A string pode ter até 128caracteres.

TagList

Campo Tipo de dados Descrição

Tag Tag (p. 229) Tag de recurso anexada a um domínio do AmazonES.

TagValue

Campo Tipo de dados Descrição

Value String Contém o valor para um TagKey. A string pode teraté 256 caracteres.

VPCDerivedInfo

Campo Tipo de dados Descrição

VPCId String O ID da sua VPC. A Amazon VPC gera esse valorao criar uma VPC.

SubnetIds StringList Uma lista de IDs de sub-rede associados aos VPCendpoints do domínio. Para saber mais, consulte

Versão da API 2015-01-01229

Page 238: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorVPCDerivedInfoStatus

Campo Tipo de dados DescriçãoVPCs e sub-redes no Guia do usuário da AmazonVPC.

AvailabilityZones StringList A lista de zonas de disponibilidade associadasàs sub-redes da VPC. Para saber mais, consulteNoções básicas sobre VPC e sub-redes no Guiado usuário da Amazon VPC.

SecurityGroupIds StringList Uma lista de IDs de security group associadosaos VPC endpoints do domínio. Para saber mais,consulte Grupos de segurança para sua VPC noGuia do usuário da Amazon VPC.

VPCDerivedInfoStatus

Campo Tipo de dados Descrição

Options VPCDerivedInfo (p. 229)Informações derivadas pelo Amazon ES com baseem VPCOptions (p. 230) do domínio.

Status OptionStatus (p. 227)Status de uma atualização de opções deconfiguração de VPC para um domínio doAmazon ES.

VPCOptions

Campo Tipo de dados Descrição

SubnetIds StringList Uma lista de IDs de sub-rede associados aosVPC endpoints do domínio. Se o domínio tiver oreconhecimento da zona habilitado, será precisofornecer dois IDs de sub-rede, um para cadazona. Caso contrário, forneça apenas um. Parasaber mais, consulte VPCs e sub-redes no Guiado usuário da Amazon VPC.

SecurityGroupIds StringList Uma lista de IDs de security group associados aosVPC endpoints do domínio. Se você não fornecerum ID de security group, o Amazon ES usa osecurity group padrão de sua VPC. Para sabermais, consulte Grupos de segurança para suaVPC no Guia do usuário da Amazon VPC.

VPCOptionsStatus

Campo Tipo de dados Descrição

Options VPCOptions (p. 230) Contêiner dos valores necessários para configuraro Amazon ES para funcionar com uma VPC.

Versão da API 2015-01-01230

Page 239: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorErros

Campo Tipo de dados Descrição

Status OptionStatus (p. 227)Status de uma atualização de opções deconfiguração de VPC para um domínio doAmazon ES.

ErrosO Amazon ES lança os seguintes erros:

Exceção Descrição

BaseException Lançada para todos os erros de serviço. Contém o código destatus HTTP do erro.

ValidationException Lançada quando a solicitação HTTP contém uma entrada inválidaou não contém a entrada necessária. Retorna código de statusHTTP 400.

DisabledOperationException Lançada quando o cliente tenta executar uma operaçãoincompatível. Retorna código de status HTTP 409.

InternalException Lançada quando ocorre um erro interno no serviço durante oprocessamento de uma solicitação. Retorna código de statusHTTP 500.

InvalidTypeException Lançada quando se tenta criar ou acessar um sub-recurso dodomínio do Amazon ES que é inválido ou incompatível. Retornacódigo de status HTTP 409.

LimitExceededException Lançada ao tenta criar recursos e sub-recursos do domínio doAmazon ES além do número e tipo permitidos. Retorna código destatus HTTP 409.

ResourceNotFoundException Lançada ao acessar ou excluir um recurso que não existe.Retorna código de status HTTP 400.

ResourceAlreadyExistsExceptionLançada quando um cliente tenta criar um recurso que já existeem um domínio do Amazon ES. Retorna código de status HTTP400.

Versão da API 2015-01-01231

Page 240: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorLimites de cluster e instância

Limites do Amazon ElasticsearchService

As tabelas a seguir mostram os limites para recursos do Amazon ES, incluindo o número de instâncias porcluster, os tamanhos mínimo e máximo para volumes do EBS e os limites de rede.

Limites de cluster e instânciaA tabela a seguir mostra os limites do Amazon ES para clusters e instâncias.

Clusters e instâncias Limite

Número máximo de instâncias dedados (contagem de instâncias) porcluster

20 (exceto para os tipos de instância T2, que têm no máximo 10)

Note

O limite padrão é de 20 instâncias de dados pordomínio. Para solicitar um aumento de até 100instâncias por domínio (para o Elasticsearch 2.3 ouposterior), crie um caso com o AWS Support Center.Para obter mais informações sobre como solicitar umaumento, consulte AWS Service Limits.

Número máximo de nós principaisdedicados

5

Note

Você pode usar os tipos de instância T2 como nósprincipais dedicados somente se a contagem deinstâncias for 10 ou inferior.

Menor tipo de instância compatível t2.micro.elasticsearch (versão 1.5 e 2.3) et2.small.elasticsearch (versão 5.x e 6.x).

Número máximo de domínios porconta (por região)

100

Para obter uma lista de tipos de instância compatíveis com o Amazon ES, consulte Tipos de instânciacompatíveis (p. 152).

Limites de tamanhos de volume do EBSA tabela a seguir mostra os tamanhos mínimo e máximo para volumes do EBS para cada tipo de instânciacomportada pelo Amazon ES. Consulte Definição de preço do Amazon Elasticsearch Service para obterinformações sobre quais tipos de instâncias oferecem armazenamento de instâncias.

Note

Se você selecionar armazenamento magnético em EBS volume type (Tipo de volume de EBS) aocriar seu domínio, o tamanho máximo do volume será 100 GiB para todos os tipos de instância,

Versão da API 2015-01-01232

Page 241: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorLimites de tamanhos de volume do EBS

exceto t2.micro, t2.small e t2.medium. Para os tamanhos máximos listados na tabela aseguir, selecione uma das opções de SSD.

Tipo de instância Tamanho mínimo doEBS

Tamanho máximo doEBS

t2.micro.elasticsearch 10 GiB 35 GiB

t2.small.elasticsearch 10 GiB 35 GiB

t2.medium.elasticsearch 10 GiB 35 GiB

m3.medium.elasticsearch 10 GiB 100 GiB

m3.large.elasticsearch 10 GiB 512 GiB

m3.xlarge.elasticsearch 10 GiB 512 GiB

m3.2xlarge.elasticsearch 10 GiB 512 GiB

m4.large.elasticsearch 10 GiB 512 GiB

m4.xlarge.elasticsearch 10 GiB 1 TiB*

m4.2xlarge.elasticsearch 10 GiB 1,5 TiB*

m4.4xlarge.elasticsearch 10 GiB 1,5 TiB*

m4.10xlarge.elasticsearch 10 GiB 1,5 TiB*

c4.large.elasticsearch 10 GiB 100 GiB

c4.xlarge.elasticsearch 10 GiB 512 GiB

c4.2xlarge.elasticsearch 10 GiB 1 TiB*

c4.4xlarge.elasticsearch 10 GiB 1,5 TiB*

c4.8xlarge.elasticsearch 10 GiB 1,5 TiB*

r3.large.elasticsearch 10 GiB 512 GiB

r3.xlarge.elasticsearch 10 GiB 512 GiB

r3.2xlarge.elasticsearch 10 GiB 512 GiB

r3.4xlarge.elasticsearch 10 GiB 512 GiB

r3.8xlarge.elasticsearch 10 GiB 512 GiB

r4.large.elasticsearch 10 GiB 1 TiB*

r4.xlarge.elasticsearch 10 GiB 1,5 TiB*

r4.2xlarge.elasticsearch 10 GiB 1,5 TiB*

r4.4xlarge.elasticsearch 10 GiB 1,5 TiB*

r4.8xlarge.elasticsearch 10 GiB 1,5 TiB*

r4.16xlarge.elasticsearch 10 GiB 1,5 TiB*

i2.xlarge.elasticsearch 10 GiB 512 GiB

Versão da API 2015-01-01233

Page 242: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorLimites de rede

Tipo de instância Tamanho mínimo doEBS

Tamanho máximo doEBS

i2.2xlarge.elasticsearch 10 GiB 512 GiB

i3.large.elasticsearch N/D N/D

i3.xlarge.elasticsearch N/D N/D

i3.2xlarge.elasticsearch N/D N/D

i3.4xlarge.elasticsearch N/D N/D

i3.8xlarge.elasticsearch N/D N/D

i3.16xlarge.elasticsearch N/D N/D

* 512 GiB é o tamanho máximo do volume compatível com a versão 1,5 do Elasticsearch.

Limites de redeA tabela a seguir mostra o tamanho máximo de cargas de solicitação HTTP.

Tipo de instância Tamanho máximo de cargas de solicitação HTTP

t2.micro.elasticsearch 10 MB

t2.small.elasticsearch 10 MB

t2.medium.elasticsearch10 MB

m3.medium.elasticsearch10 MB

m3.large.elasticsearch 10 MB

m3.xlarge.elasticsearch100 MB

m3.2xlarge.elasticsearch100 MB

m4.large.elasticsearch 10 MB

m4.xlarge.elasticsearch100 MB

m4.2xlarge.elasticsearch100 MB

m4.4xlarge.elasticsearch100 MB

m4.10xlarge.elasticsearch100 MB

c4.large.elasticsearch 10 MB

c4.xlarge.elasticsearch100 MB

c4.2xlarge.elasticsearch100 MB

c4.4xlarge.elasticsearch100 MB

c4.8xlarge.elasticsearch100 MB

Versão da API 2015-01-01234

Page 243: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorLimite de processo Java

Tipo de instância Tamanho máximo de cargas de solicitação HTTP

r3.large.elasticsearch 10 MB

r3.xlarge.elasticsearch100 MB

r3.2xlarge.elasticsearch100 MB

r3.4xlarge.elasticsearch100 MB

r3.8xlarge.elasticsearch100 MB

r4.large.elasticsearch 100 MB

r4.xlarge.elasticsearch100 MB

r4.2xlarge.elasticsearch100 MB

r4.4xlarge.elasticsearch100 MB

r4.8xlarge.elasticsearch100 MB

r4.16xlarge.elasticsearch100 MB

i2.xlarge.elasticsearch100 MB

i2.2xlarge.elasticsearch100 MB

i3.large.elasticsearch 100 MB

i3.xlarge.elasticsearch100 MB

i3.2xlarge.elasticsearch100 MB

i3.4xlarge.elasticsearch100 MB

i3.8xlarge.elasticsearch100 MB

i3.16xlarge.elasticsearch100 MB

Limite de processo JavaO Amazon ES limita os processos Java a um tamanho de heap de 32 GiB. Os usuários avançados podemespecificar a porcentagem do heap usado para dados de campo. Para obter mais informações, consultethe section called “Configuração de opções avançadas” (p. 25) e the section called “OutOfMemoryError emJVM” (p. 147).

Versão da API 2015-01-01235

Page 244: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComprar instâncias reservadas (console)

Amazon Elasticsearch ServiceInstâncias reservadas

As Reserved Instances (RIs – Instâncias reservadas) do Amazon Elasticsearch Service oferecemdescontos significativos em comparação com instâncias sob demanda padrão. As instâncias propriamenteditas são idênticas; as RIs são apenas um desconto de faturamento aplicado a instâncias sob demandana conta. Para aplicativos de longa duração com uso previsível, as RIs podem oferecer uma economiaconsiderável ao longo do tempo.

As RIs do Amazon ES exigem prazos de um ou três anos e têm três opções de pagamento que afetam ataxa de desconto:

• Sem pagamento adiantado – Você não paga nada de maneira adiantada. Você paga uma taxa por horacom desconto a cada hora dentro do prazo.

• Adiantamento parcial – Você paga uma parte do custo inicial e paga uma taxa por hora com desconto acada hora dentro do prazo.

• Adiantamento total – Você paga todos os custos iniciais. Você não paga uma taxa por hora no prazo.

De modo geral, um maior pagamento adiantado significa um desconto maior. Você não pode cancelarinstâncias reservadas — ao reservá-las, você se compromete em pagar pelo prazo completo — e ospagamentos adiantados não são reembolsáveis. Para obter detalhes completos, consulte Definição depreço do Amazon Elasticsearch Service e Perguntas frequentes.

Tópicos• Comprar instâncias reservadas (console) (p. 236)• Comprar instâncias reservadas (CLI da AWS) (p. 237)• Comprar instâncias reservadas (SDKs da AWS) (p. 238)• Examinar custos (p. 239)

Comprar instâncias reservadas (console)O console permite que você exiba as instâncias reservadas existentes e compre novas.

Para comprar uma reserva

1. Acesse https://aws.amazon.com e escolha Sign In to the Console.2. Em Analytics, escolha Elasticsearch Service.3. Escolha Reserved Instances (Instâncias reservadas).

Nesta página, você pode exibir as reservas existentes. Se tiver muitas reservas, você poderá filtrá-laspara identificar mais facilmente e exibir uma determinada reserva.

Tip

Se você não encontrar o link Reserved Instances (Instâncias Reservadas), crie umdomínio (p. 10) na região.

4. Escolha Purchase Reserved Instance.5. Em Reservation Name (Nome da reserva), digite um nome descritivo exclusivo.6. Escolha um tipo de instância, tamanho e número de instâncias. Para obter orientações, consulte the

section called “Dimensionamento de domínios do Amazon ES” (p. 125).

Versão da API 2015-01-01236

Page 245: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComprar instâncias reservadas (CLI da AWS)

7. Escolha um prazo e uma opção de pagamento.8. Examine os detalhes de pagamento atentamente.9. Selecione Enviar.10. Examine o resumo da compra com atenção. As compras de instâncias reservadas não são

reembolsáveis.11. Escolha Purchase (Comprar).

Comprar instâncias reservadas (CLI da AWS)A AWS CLI tem comandos para exibir ofertas, comprar uma reserva e exibir as reservas. O seguintecomando e a resposta mostram as ofertas para uma determinada região da AWS:

aws es describe-reserved-elasticsearch-instance-offerings --region us-east-1{ "ReservedElasticsearchInstanceOfferings": [ { "FixedPrice": x, "ReservedElasticsearchInstanceOfferingId": "1a2a3a4a5-1a2a-3a4a-5a6a-1a2a3a4a5a6a", "RecurringCharges": [ { "RecurringChargeAmount": y, "RecurringChargeFrequency": "Hourly" } ], "UsagePrice": 0.0, "PaymentOption": "PARTIAL_UPFRONT", "Duration": 31536000, "ElasticsearchInstanceType": "m4.2xlarge.elasticsearch", "CurrencyCode": "USD" } ]}

Para obter uma explicação de cada valor de retorno, consulte a tabela a seguir.

Campo Descrição

FixedPrice O custo inicial da reserva.

ReservedElasticsearchInstanceOfferingId O ID da oferta. Anote esse valor caso você queirareservar a oferta.

RecurringCharges A taxa por hora da reserva.

UsagePrice Um campo herdado. Em Amazon ES, esse valor ésempre 0.

PaymentOption Sem adiantamento, adiantamento parcial ouadiantamento total.

Duration Extensão do prazo em segundos:

• 31.536.000 segundos são um ano.• 94.608.000 segundos são três anos.

ElasticsearchInstanceType O tipo de instância da reserva. Para obterinformações sobre recursos de hardware alocados

Versão da API 2015-01-01237

Page 246: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorComprar instâncias reservadas (SDKs da AWS)

Campo Descriçãopara cada tipo de instância, consulte Definição depreço do Amazon Elasticsearch Service.

CurrencyCode A moeda de FixedPrice eRecurringChargeAmount.

Este próximo exemplo compra uma reserva:

aws es purchase-reserved-elasticsearch-instance-offering --reserved-elasticsearch-instance-offering-id 1a2a3a4a5-1a2a-3a4a-5a6a-1a2a3a4a5a6a --reservation-name my-reservation --instance-count 3 --region us-east-1{ "ReservationName": "my-reservation", "ReservedElasticsearchInstanceId": "9a8a7a6a-5a4a-3a2a-1a0a-9a8a7a6a5a4a"}

Por fim, você pode listar as reservas para uma determinada região usando o seguinte exemplo:

aws es describe-reserved-elasticsearch-instances --region us-east-1{ "ReservedElasticsearchInstances": [ { "FixedPrice": x, "ReservedElasticsearchInstanceOfferingId": "1a2a3a4a5-1a2a-3a4a-5a6a-1a2a3a4a5a6a", "ReservationName": "my-reservation", "PaymentOption": "PARTIAL_UPFRONT", "UsagePrice": 0.0, "ReservedElasticsearchInstanceId": "9a8a7a6a-5a4a-3a2a-1a0a-9a8a7a6a5a4a", "RecurringCharges": [ { "RecurringChargeAmount": y, "RecurringChargeFrequency": "Hourly" } ], "State": "payment-pending", "StartTime": 1522872571.229, "ElasticsearchInstanceCount": 3, "Duration": 31536000, "ElasticsearchInstanceType": "m4.2xlarge.elasticsearch", "CurrencyCode": "USD" } ]}

Note

StartTime é tempo epoch Unix, que é o número de segundos decorridos desde a meia-noiteUTC de 1° de janeiro de 1970. Por exemplo, o tempo epoch 1522872571 20:09:31 UTC é de 4 deabril de 2018. Você pode usar conversores online.

Para saber mais sobre os comandos usados nos exemplos anteriores, consulte o AWS CLI CommandReference.

Comprar instâncias reservadas (SDKs da AWS)Os SDKs da AWS (exceto os SDKs para Android e iOS) dão suporte a todas as operações definidas emReferência da API de configuração do Amazon ES (p. 169), inclusive as seguintes:

Versão da API 2015-01-01238

Page 247: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorExaminar custos

• DescribeReservedElasticsearchInstanceOfferings

• PurchaseReservedElasticsearchInstance

• DescribeReservedElasticsearchInstances

Para obter mais informações sobre instalação e uso de SDKs da AWS, consulte AWS SoftwareDevelopment Kits.

Examinar custosCost Explorer é uma ferramenta gratuita que você pode usar para exibir os dados de gastos nos últimos13 meses. Analisar esses dados ajuda a identificar tendências e compreender se RIs se ajustam aocaso de uso. Se já tiver RIs, você poderá agrupar por Purchase Option (Opção de compra) e mostrarcustos amortizados para comparar esse gasto com o gasto das instâncias sob demanda. Você tambémpode definir orçamentos de uso para garantir que está aproveitando suas reservas. Para obter maisinformações, consulte Como analisar os custos com Cost Explorer no Guia do usuário do AWS Billing andCost Management.

Versão da API 2015-01-01239

Page 248: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 1: dados de amostra de índice

Tutorial: como criar um aplicativode pesquisa com o AmazonElasticsearch Service

Uma maneira comum de criar um aplicativo de pesquisa com o Amazon ES é usar formulários da web paraenviar consultas do usuário a um servidor. Em seguida, você pode autorizar o servidor para chamar asAPIs do Elasticsearch diretamente e fazer com que o servidor envie solicitações ao Amazon ES.

No entanto, se você deseja escrever um código do lado do cliente que não dependa de um servidor, énecessário compensar os riscos de segurança e desempenho. Permitir o acesso público não assinado àsAPIs do Elasticsearch não é aconselhável. Os usuários podem acessar endpoints não seguros ou afetar odesempenho do cluster por meio de consultas excessivamente amplas (ou muitas consultas).

Este capítulo apresenta uma solução: use o Amazon API Gateway para restringir usuários a umsubconjunto das APIs do Elasticsearch e o AWS Lambda para assinar solicitações do API Gateway para oAmazon ES.

Note

A definição de preço padrão do API Gateway e do Lambda se aplica, mas dentro do uso limitadodesse tutorial, os custos devem ser insignificantes.

Etapa 1: dados de amostra de índiceUm pré-requisito para essas etapas é um domínio do Amazon ES. Faça download do sample-movies.zip,descompacte-o e use a API _bulk para adicionar os 5.000 documentos ao índice movies:

POST https://search-my-domain.us-west-1.es.amazonaws.com/_bulk{ "index": { "_index": "movies", "_type": "movie", "_id": "tt1979320" } }{"fields":{"directors":["Ron Howard"],"release_date":"2013-09-02T00:00:00Z","rating":8.3,"genres":["Action","Biography","Drama","Sport"],"image_url":"http://ia.media-imdb.com/images/M/MV5BMTQyMDE0MTY0OV5BMl5BanBnXkFtZTcwMjI2OTI0OQ@@._V1_SX400_.jpg","plot":"A re-creation of the merciless 1970s rivalry between Formula One rivals James Hunt and Niki Lauda.","title":"Rush","rank":2,"running_time_secs":7380,"actors":["Daniel Brühl","Chris Hemsworth","Olivia Wilde"],"year":2013},"id":"tt1979320","type":"add"}{ "index": { "_index": "movies", "_type": "movie", "_id": "tt1951264" } }{"fields":{"directors":["Francis Lawrence"],"release_date":"2013-11-11T00:00:00Z","genres":["Action","Adventure","Sci-Fi","Thriller"],"image_url":"http://ia.media-imdb.com/images/M/MV5BMTAyMjQ3OTAxMzNeQTJeQWpwZ15BbWU4MDU0NzA1MzAx._V1_SX400_.jpg","plot":"Katniss Everdeen and Peeta Mellark become targets of the Capitol after their victory in the 74th Hunger Games sparks a rebellion in the Districts of Panem.","title":"The Hunger Games: Catching Fire","rank":4,"running_time_secs":8760,"actors":["Jennifer Lawrence","Josh Hutcherson","Liam Hemsworth"],"year":2013},"id":"tt1951264","type":"add"}...

Para saber mais, consulte Indexação de dados (p. 57).

Versão da API 2015-01-01240

Page 249: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 2: Criar a API

Etapa 2: Criar a APIUsar o API Gateway para criar uma API mais limitada simplifica o processo de interação com a API_search do Elasticsearch. Ele também permite ativar recursos de segurança, como a autenticação doAmazon Cognito e a limitação de solicitações. Crie e implante uma API de acordo com a tabela a seguir.

Configuração Valores

API Tipo: nova API

Configurações

Nome da API: search-es-api

Descrição: API pública para pesquisar um domínio do Amazon Elasticsearch Service

Tipo do endpoint: regional

Recurso /

Método HTTP GET

Solicitação demétodo

Configurações

Autorização: nenhuma

Validador de solicitação: validar parâmetros de string de consulta e cabeçalhos

Chave de API necessária: falso

Parâmetros da string de consulta da URL

Nome: q

Exigido: sim

Solicitação deintegração

Tipo de integração: função Lambda.

Usar a integração de proxy do Lambda: sim

Região Lambda: us-west-1

função Lambda: search-es-lambda

Invocar com credenciais de chamador: não

Cache de credenciais: não adicionar credenciais de chamador à chave do chave

Usar o tempo limite padrão: sim

Estágio Nome: search-es-api-test

Limitação do método padrão

Ativar controle de utilização: sim

Taxa: 1000

Pico: 500

Versão da API 2015-01-01241

Page 250: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 3: criar a função Lambda

Essas definições configuram uma API que possui apenas um método: uma solicitação GET para a raiz doendpoint (https://some-id.execute-api.us-west-1.amazonaws.com/search-es-api-test).A solicitação requer um único parâmetro (q), a string de consulta a ser pesquisada. Quando chamado,o método passa a solicitação para o Lambda, que executa a função search-es-lambda. Para obtermais informações, consulte Criar uma API no Amazon API Gateway e Implantar uma API no Amazon APIGateway.

Etapa 3: criar a função LambdaNesta solução, o API Gateway passa solicitações para a seguinte função Lambda do Python 2.7, queconsulta o Amazon ES e retorna resultados:

import boto3import jsonimport requestsfrom requests_aws4auth import AWS4Auth

region = '' # For example, us-west-1service = 'es'credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

host = '' # For example, search-mydomain-id.us-west-1.es.amazonaws.comindex = 'movies'url = 'https://' + host + '/' + index + '/_search'

# Lambda execution starts heredef handler(event, context):

# Put the user query into the query DSL for more accurate search results. # Note that certain fields are boosted (^). query = { "size": 25, "query": { "multi_match": { "query": event['queryStringParameters']['q'], "fields": ["fields.title^4", "fields.plot^2", "fields.actors", "fields.directors"] } } }

# ES 6.x requires an explicit Content-Type header headers = { "Content-Type": "application/json" }

# Make the signed HTTP request r = requests.get(url, auth=awsauth, headers=headers, data=json.dumps(query))

# Create the response and add some extra content to support CORS response = { "statusCode": 200, "headers": { "Access-Control-Allow-Origin": '*' }, "isBase64Encoded": False }

# Add the search results to the response response['body'] = r.text return response

Versão da API 2015-01-01242

Page 251: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 4: modificar a política de acesso ao domínio

A função deve ter o gatilho a seguir.

Gatilho API Estágio de implantação Segurança

API Gateway search-es-api search-es-api-test Aberto

Para obter mais informações sobre como criar funções e pacotes de implantação do Lambda, consulteComo criar um pacote de implantação (Python) no AWS Lambda Developer Guide e the section called“Criar o pacote de implantação do Lambda” (p. 70) nesse guia.

Etapa 4: modificar a política de acesso ao domínioO domínio do Amazon ES deve permitir que a função Lambda faça solicitações GET ao índice movies. Apolítica a seguir fornece acesso search-es-role (criado por meio do Lambda) ao índice movies:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/service-role/search-es-role" }, "Action": "es:ESHttpGet", "Resource": "arn:aws:es:us-west-1:123456789012:domain/web/movies/_search" } ]}

Para obter mais informações, consulte the section called “Configuração de políticas de acesso” (p. 22).

Etapa 5: testar o aplicativo webPara testar o aplicativo web

1. Faça download do sample-site.zip, descompacte-o e abra scripts/search.js em seu editor detexto preferencial.

2. Atualize a variável apigatewayendpoint a fim de apontar para o endpoint do API Gateway. Oendpoint tem a forma de https://some-id.execute-api.us-west-1.amazonaws.com/search-es-api-test.

3. Abra index.html e tente executar pesquisas para thor, casa e alguns outros termos.

Versão da API 2015-01-01243

Page 252: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 5: testar o aplicativo web

Versão da API 2015-01-01244

Page 253: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPróximas etapas

Próximas etapasEste capítulo é apenas um ponto de partida para demonstrar um conceito. Você pode considerar asseguintes modificações:

• Adicione seus próprios dados ao domínio do Amazon ES.• Adicionar métodos à API.• Na função Lambda, modifique a consulta de pesquisa ou incremente diferentes campos.• Estilize os resultados de maneira diferente ou modifique search.js para exibir campos diferentes para

o usuário.

Versão da API 2015-01-01245

Page 254: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

Tutorial: visualização das chamadasde suporte ao cliente com AmazonElasticsearch Service e Kibana

Este capítulo é uma descrição completa da seguinte situação: uma empresa recebe um determinadonúmero de chamadas de suporte ao cliente e quer analisá-las. O que é o assunto de cada chamada?Quantas eram positivas? Quantas eram negativas? Como os gerentes podem pesquisar ou revisar astranscrições dessas chamadas?

Um fluxo de trabalho manual pode envolver funcionários ouvindo gravações, anotando o assunto de cadachamada e decidindo se a interação do cliente foi positiva.

Esse processo seria extremamente trabalhoso. Supondo um tempo médio de 10 minutos por chamada,cada funcionário escutaria apenas 48 chamadas por dia. Independentemente do viés humano, os dadosque eles geram seriam altamente precisos, mas a quantidade de dados seria mínima: apenas o assunto dachamada e um Booliano para saber se o cliente estava ou não satisfeito. Qualquer coisa mais complexa,como uma transcrição completa, tomaria uma quantidade imensa de tempo.

Usando o Amazon S3, Amazon Transcribe, Amazon Comprehend e Amazon Elasticsearch Service(Amazon ES), você pode automatizar um processo semelhante com muito pouco código, resultando emmuito mais dados. Por exemplo, você pode obter uma transcrição completa da chamada, as palavras-chave da transcrição e um "sentimento" global da chamada (positivo, negativo, neutro ou misto). Emseguida, você pode usar o Elasticsearch e o Kibana para pesquisar e visualizar os dados.

Embora você possa usar esta demonstração no estado em que se encontra, a intenção é estimular ideiassobre como enriquecer seus documentos JSON antes de indexá-los no Amazon ES.

Custos estimados

Em geral, executar as etapas desta demonstração devem custar menos de US$ 2. A demonstração usa osseguintes recursos:

• Bucket do S3 com menos de 100 MB transferidos e armazenados

Para saber mais, consulte Definição de preços do Amazon S3.• Domínio do Amazon ES com uma instância t2.medium e 10 GiB de armazenamento do EBS para

várias horas

Para saber mais, consulte Definição de preços do Amazon Elasticsearch Service.• Várias chamadas para Amazon Transcribe

Para saber mais, consulte Definição de preços do Amazon Transcribe.• Várias chamadas para processamento de linguagem natural para Amazon Comprehend

Para saber mais, consulte Definição de preços do Amazon Comprehend.

Tópicos• Etapa 1: Configurar os pré-requisitos (p. 247)• Etapa 2: Copiar código de exemplo (p. 247)• (Opcional) Etapa 3: Adicionar dados de exemplo (p. 250)

Versão da API 2015-01-01246

Page 255: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 1: Configurar os pré-requisitos

• Etapa 4: Analisar e visualizar seus dados (p. 251)• Etapa 5: Limpar recursos e Próximas etapas (p. 255)

Etapa 1: Configurar os pré-requisitosPara continuar, você deve ter os recursos a seguir.

Pré-requisito Descrição

Bucket do Amazon S3 Para obter mais informações, consulte Como criar um bucket no Guia deconceitos básicos do Amazon Simple Storage Service.

Domínio do Amazon ES O destino dos dados. Para obter mais informações, consulte Criação dedomínios do Amazon ES (p. 10).

Se você ainda não tiver esses recursos, poderá criá-os usando os seguintes comandos do AWS CLI:

aws s3 mb s3://my-transcribe-test --region us-west-2

aws es create-elasticsearch-domain --domain-name my-transcribe-test --elasticsearch-version 6.2 --elasticsearch-cluster-config InstanceType=t2.medium.elasticsearch,InstanceCount=1 --ebs-options EBSEnabled=true,VolumeType=standard,VolumeSize=10 --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123456789012:root"},"Action":"es:*","Resource":"arn:aws:es:us-west-2:123456789012:domain/my-transcribe-test/*"}]}' --region us-west-2

Note

Esses comandos usam a região us-west-2, mas você pode usar qualquer região compatívelcom Amazon Comprehend. Para saber mais, consulte o AWS General Reference.

Etapa 2: Copiar código de exemplo1. Copie e cole o código de exemplo a seguir em um novo arquivo chamado call-center.py:

import boto3import datetimeimport jsonimport requestsfrom requests_aws4auth import AWS4Authimport timeimport urllib2

# Variables to updateaudio_file_name = '' # For example, 000001.mp3bucket_name = '' # For example, my-transcribe-testdomain = '' # For example, https://search-my-transcribe-test-12345.us-west-2.es.amazonaws.comindex = 'support-calls'type = 'call'es_region = 'us-west-2'

# Upload audio file to S3.s3_client = boto3.client('s3')

Versão da API 2015-01-01247

Page 256: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 2: Copiar código de exemplo

audio_file = open(audio_file_name, 'r')

print('Uploading ' + audio_file_name + '...')response = s3_client.put_object( Body=audio_file, Bucket=bucket_name, Key=audio_file_name,)

response = s3_client.get_bucket_location( Bucket=bucket_name)

bucket_region = response['LocationConstraint']

# Build the URL to the audio file on S3.mp3_uri = 'https://s3-' + bucket_region + '.amazonaws.com/' + bucket_name + '/' + audio_file_name

# Start transcription job.transcribe_client = boto3.client('transcribe')

print('Starting transcription job...')response = transcribe_client.start_transcription_job( TranscriptionJobName=audio_file_name, LanguageCode='en-US', MediaFormat='mp3', Media={ 'MediaFileUri': mp3_uri }, Settings={ 'ShowSpeakerLabels': True, 'MaxSpeakerLabels': 2 # assumes two people on a phone call })

# Wait for the transcription job to finish.print('Waiting for job to complete...')while True: response = transcribe_client.get_transcription_job(TranscriptionJobName=audio_file_name) if response['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']: break else: print('Still waiting...') time.sleep(10)

transcript_uri = response['TranscriptionJob']['Transcript']['TranscriptFileUri']

# Open the JSON file, read it, and get the transcript.response = urllib2.urlopen(transcript_uri)raw_json = response.read()loaded_json = json.loads(raw_json)transcript = loaded_json['results']['transcripts'][0]['transcript']

# Send transcript to Comprehend for key phrases and sentiment.comprehend_client = boto3.client('comprehend')

# If necessary, trim the transcript.# If the transcript is more than 5 KB, the Comprehend calls fail.if len(transcript) > 5000: trimmed_transcript = transcript[:5000]else: trimmed_transcript = transcript

Versão da API 2015-01-01248

Page 257: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 2: Copiar código de exemplo

print('Detecting key phrases...')response = comprehend_client.detect_key_phrases( Text=trimmed_transcript, LanguageCode='en')

keywords = []for keyword in response['KeyPhrases']: keywords.append(keyword['Text'])

print('Detecting sentiment...')response = comprehend_client.detect_sentiment( Text=trimmed_transcript, LanguageCode='en')

sentiment = response['Sentiment']

# Build the Amazon Elasticsearch Service URL.id = audio_file_name.strip('.mp3')url = domain + '/' + index + '/' + type + '/' + id

# Create the JSON document.json_document = {'transcript': transcript, 'keywords': keywords, 'sentiment': sentiment, 'timestamp': datetime.datetime.now().isoformat()}

# Provide all details necessary to sign the indexing request.credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, es_region, 'es', session_token=credentials.token)

# Add explicit header for Elasticsearch 6.x.headers = {'Content-Type': 'application/json'}

# Index the document.print('Indexing document...')response = requests.put(url, auth=awsauth, json=json_document, headers=headers)

print(response)print(response.json())

2. Atualize as primeiras seis variáveis.3. Instale os pacotes exigidos usando os seguintes comandos:

pip install boto3pip install requestspip install requests_aws4auth

4. Coloque o MP3 no mesmo diretório que call-center.py e execute o script. Uma saída de exemplose segue:

$ python call-center.pyUploading 000001.mp3...Starting transcription job...Waiting for job to complete...Still waiting...Still waiting...Still waiting...Still waiting...Still waiting...Still waiting...Still waiting...Detecting key phrases...

Versão da API 2015-01-01249

Page 258: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor(Opcional) Etapa 3: Adicionar dados de exemplo

Detecting sentiment...Indexing document...<Response [201]>{u'_type': u'call', u'_seq_no': 0, u'_shards': {u'successful': 1, u'failed': 0, u'total': 2}, u'_index': u'support-calls4', u'_version': 1, u'_primary_term': 1, u'result': u'created', u'_id': u'000001'}

call-center.py executa uma série de operações:

1. O script faz upload de um arquivo de áudio (neste caso, um MP3, mas o Amazon Transcribe écompatível com vários formatos) no bucket do S3.

2. Ele envia o URL do arquivo de áudio para o Amazon Transcribe e aguarda até que o trabalho detranscrição termine.

O tempo para concluir o trabalho de transcrição depende do tamanho do arquivo de áudio. Considereminutos, não segundos.

Tip

Para melhorar a qualidade da transcrição, você pode configurar um vocabulário personalizadopara o Amazon Transcribe.

3. Depois que o trabalho de transcrição for concluído, o script extrairá a transcrição, a deixará com 5.000caracteres e a enviará para o Amazon Comprehend para uma análise de palavra-chave e sentimento.

4. Finalmente, o script adicionará a transcrição completa, palavras-chave, sentimentos e time stamp atualem um documento JSON e o indexará no Amazon ES.

Tip

O LibriVox tem audiolivros de domínio público que você pode usar para testes.

(Opcional) Etapa 3: Adicionar dados de exemploSe você não tiver várias gravações de chamadas à disposição — e quem tem? — poderá indexar (p. 57)documentos de amostra em sample-calls.zip, que são comparáveis àqueles produzidos pelo call-center.py.

1. Crie um arquivo chamado bulk-helper.py:

import boto3from elasticsearch import Elasticsearch, RequestsHttpConnectionimport jsonfrom requests_aws4auth import AWS4Auth

host = '' # For example, my-test-domain.us-west-2.es.amazonaws.comregion = '' # For example, us-west-2service = 'es'

bulk_file = open('sample-calls.bulk', 'r').read()

credentials = boto3.Session().get_credentials()awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

es = Elasticsearch( hosts = [{'host': host, 'port': 443}], http_auth = awsauth, use_ssl = True,

Versão da API 2015-01-01250

Page 259: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 4: Analisar e visualizar seus dados

verify_certs = True, connection_class = RequestsHttpConnection)

response = es.bulk(bulk_file)print(json.dumps(response, indent=2, sort_keys=True))

2. Atualize as primeiras duas variáveis para host e region.3. Instale o pacote exigido usando o seguinte comando:

pip install elasticsearch

4. Faça download e descompacte sample-calls.zip.5. Coloque sample-calls.bulk no mesmo diretório que bulk-helper.py e execute o auxiliar. Uma

saída de exemplo se segue:

$ python bulk-helper.py{ "errors": false, "items": [ { "index": { "_id": "1", "_index": "test-data", "_primary_term": 1, "_seq_no": 42, "_shards": { "failed": 0, "successful": 1, "total": 2 }, "_type": "call", "_version": 9, "result": "updated", "status": 200 } }, ... ], "took": 27}

Etapa 4: Analisar e visualizar seus dadosAgora que você tem alguns dados no Amazon ES, poderá visualizá-los usando o Kibana.

1. Navegue até https://search-domain.region.es.amazonaws.com/_plugin/kibana.2. Antes de usar o Kibana, você precisa de um padrão de índice. O Kibana usa padrões de índice para

restringir sua análise para um ou mais índices. Para corresponder ao índice de support-callscriado pelo call-center.py , defina um padrão de índice support* e, em seguida, selecionePróxima etapa.

3. Para o nome de campo Filtro de tempo, escolha timestamp.4. Agora, você pode começar a criar visualizações. Escolha Visualizar e, em seguida, adicione uma nova

visualização.5. Escolha o gráfico de pizza e o padrão de índice support*.6. A visualização padrão é básica. Portanto, escolha Dividir fatias para criar uma visualização mais

interessante.

Versão da API 2015-01-01251

Page 260: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 4: Analisar e visualizar seus dados

Em Aggregation, escolha Terms. Em Campo, escolha sentiment.keyword. Em seguida, escolha Aplicaralterações e Salvar.

7. Volte para a página Visualizar e adicione outra visualização. Dessa vez, escolha o gráfico de barrashorizontais.

8. Selecione Dividir séries.

Em Aggregation, escolha Terms. Em Campo, escolha keywords.keyword e altere Tamanho para 20.Em seguida, escolha Aplicar alterações e Salvar.

Versão da API 2015-01-01252

Page 261: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 4: Analisar e visualizar seus dados

9. Volte para a página Visualizar e adicione uma visualização final, um gráfico de barras verticais.10. Selecione Dividir séries. Em Agregação, escolha Histograma de data. Em Campo, escolha timestamp

e altere Intervalo para Diariamente.11. Escolha Métricas e eixos e altere Modo para normal.12. Escolha Aplicar alterações e Salvar.

Versão da API 2015-01-01253

Page 262: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 4: Analisar e visualizar seus dados

13. Agora que você tem três visualizações, poderá adicioná-las a um painel do Kibana. Escolha Painel,crie um painel e adicione suas visualizações.

Versão da API 2015-01-01254

Page 263: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorEtapa 5: Limpar recursos e Próximas etapas

Etapa 5: Limpar recursos e Próximas etapasPara evitar cobranças desnecessárias, exclua o bucket do S3 e o domínio do Amazon ES. Para sabermais, consulte Excluir um bucket no Guia do desenvolvedor do Amazon Simple Storage Service e Excluirum domínio do Amazon ES (p. 9) neste guia.

Transcrições exigem muito menos espaço em disco do que arquivos MP3. Você pode reduzir sua janela deretenção de MP3 — por exemplo, de três meses de gravações de chamadas para um mês — reter anos detranscrições e ainda economizar custos de armazenamento.

Você também pode automatizar o processo de transcrição usando o AWS Step Functions e o Lambda,adicionar metadados adicionais antes de indexar ou criar visualizações mais complexas para se adequarao seu caso de uso específico.

Versão da API 2015-01-01255

Page 264: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorNotas de release

Histórico do documento do AmazonElasticsearch Service

Este tópico descreve as alterações importantes no Amazon Elasticsearch Service.

Datas relevantes desse histórico:

• Versão atual do produto— 2015-01-01• Versão mais recente do produto — 20 de novembro de 2018• Atualização mais recente da documentação—20 de novembro de 2018

Notas de releaseA tabela a seguir descreve alterações importantes no Amazon ES. Para receber notificações sobreatualizações, inscreva-se no feed RSS.

update-history-change update-history-description update-history-date

Novas métricasCloudWatch (p. 256)

O Amazon ES agora oferecemétricas no nível de nó e novasguias Cluster health (Integridadedo cluster) e Instance health(Integridade da instância) noconsole do Amazon ES. Parasaber mais sobre, consulteMonitoramento de métricas decluster.

November 20, 2018

Atualizações de software deserviço (p. 256)

Amazon ES agora permite quevocê atualize manualmente osoftware de serviço para seudomínio para se beneficiarde novos recursos maisrapidamente ou atualizar emum horário de baixo tráfego.Para saber mais, consulteAtualizações de software deserviço.

November 20, 2018

R20180914 (Software deserviço) (p. 256)

Adiciona o monitoramento deintegridade do cluster detalhado,patches e melhorias adicionaisdo serviço.

November 19, 2018

Suporte à China(Pequim) (p. 256)

Agora o Amazon ElasticsearchService está disponível na regiãocn-north-1, onde oferece suporteaos tipos de instância M4, C4 eR4.

October 17, 2018

Versão da API 2015-01-01256

Page 265: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAtualizações anteriores

Criptografia de nó a nó (p. 256) O Amazon ElasticsearchService agora é compatívelcom a criptografia de nó anó, que mantém seus dadoscriptografados enquanto oElasticsearch os distribui emtodo o cluster. Para saber mais,consulte Criptografia de nó a nó.

September 18, 2018

R20180817 (Software deserviço) (p. 256)

Suporte para criptografia denó a nó e novas métricas deCloudWatch.

August 17, 2018

Suporte ao Elasticsearch 6.3 e5.6 (p. 256)

Agora o Amazon ElasticsearchService é compatível com oElasticsearch versão 6.3 e5.6. Para saber mais, consulteVersões do Elasticsearchcompatíveis.

August 14, 2018

Atualizações de versão emvigor (p. 256)

O Amazon ElasticsearchService agora é compatível comatualizações de versão em vigordo Elasticsearch. Para sabermais, consulte Atualização deElasticsearch.

August 14, 2018

Logs de erros (p. 256) Amazon ES agora permite quevocê publique logs de errode Elasticsearch no AmazonCloudWatch. Para saber mais,consulte Configuração de logs.

July 31, 2018

R20180719 (Software deserviço) (p. 256)

Suporte para novas versõese correções de erro doElasticsearch.

July 19, 2018

R20180621 (Software deserviço) (p. 256)

Melhorias para snapshotsautomatizados.

June 21, 2018

Instâncias reservadas para China(Ningxia) (p. 256)

O Amazon ES agora ofereceInstâncias reservadas para aregião da China (Ningxia).

May 29, 2018

R20180522 (Software deserviço) (p. 256)

Correções de segurança. May 22, 2018

Instâncias reservadas (p. 256) O Amazon ES agora ofereceInstâncias reservadas. Parasaber mais, consulte Instânciasreservadas do Amazon ES.

May 7, 2018

Atualizações anterioresA tabela a seguir descreve alterações importantes no Amazon ES antes de maio de 2018.

Versão da API 2015-01-01257

Page 266: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAtualizações anteriores

Alteração Descrição Data

Autenticação doAmazon Cognito parao Kibana

O Amazon ES agora oferece proteção da página de loginpara o Kibana. Para saber mais, consulte Autenticação para oKibana (p. 103).

2 de abril de2018

Compatibilidade como Elasticsearch 6.2

Agora o Amazon Elasticsearch Service é compatível com oElasticsearch versão 6.2.

14 de marçode 2018

Plug-in de análisecoreana

O Amazon ES agora oferece suporte a uma versão otimizadapara memória do plug-in de análise coreana Seunjeon.

13 de marçode 2018

Atualizaçõesinstantâneas decontrole de acesso

As alterações nas políticas de controle de acesso em domíniosdo Amazon ES agora entram em vigor instantaneamente.

7 de março de2018

Escala de petabytes Agora, o Amazon ES oferece suporte a tipos de instância I3e armazenamento de domínio total de até 1,5 PB. Para sabermais, consulte Escala de petabytes (p. 133).

19 dedezembro de2017

Criptografia de dadosem repouso

O Amazon ES agora oferece suporte à criptografia de dadosem repouso. Para saber mais, consulte the section called“Criptografia em repouso” (p. 135).

7 dedezembro de2017

Compatibilidade como Elasticsearch 6.0

Agora o Amazon ES é compatível com o Elasticsearch versão6.0. Para considerações e instruções de migração, consulteComo atualizar o Elasticsearch (p. 93).

6 dedezembro de2017

Suporte à VPC O Amazon ES agora permite que você inicie domínios em umaAmazon Virtual Private Cloud. O suporte a VPC fornece umacamada adicional de segurança e simplifica a comunicaçãoentre o Amazon ES e outros serviços dentro de uma VPC. Parasaber mais, consulte Suporte à VPC (p. 116).

17 de outubrode 2017

Publicação de logslentos

O Amazon ES agora oferece suporte à publicação de logslentos para o CloudWatch Logs. Para saber mais, consulte thesection called “Configuração de logs” (p. 26).

16 de outubrode 2017

Compatibilidade como Elasticsearch 5.5

Agora o Amazon ES é compatível com o Elasticsearch versão5.5. Para ver resumos de novos recursos, consulte o Anúncioda Amazon sobre disponibilidade.

Agora você pode restaurar snapshots automatizados semprecisar entrar em contato com o AWS Support e armazenarscripts por meio da API Elasticsearch do _scripts.

7 de setembrode 2017

Compatibilidade como Elasticsearch 5.3

Agora o Amazon ES oferece suporte para o Elasticsearchversão 5.3.

1 de junho de2017

Mais instâncias ecapacidade de EBSpor cluster

Agora, o Amazon ES oferece suporte a até 100 nós e 150 TBde capacidade de EBS por cluster.

5 de abril de2017

Suporte no Canadá(Central) e na UE(Londres)

O Amazon ES adicionou suporte para as seguintes regiões:Canadá (Central), ca-central-1 e UE (Londres), eu-west-2.

20 de marçode 2017

Versão da API 2015-01-01258

Page 267: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorAtualizações anteriores

Alteração Descrição Data

Mais instâncias emaiores volumes deEBS

Agora o Amazon ES oferece suporte a mais instâncias emaiores volumes de EBS.

21 defevereiro de2017

Compatibilidade como Elasticsearch 5.1

Agora o Amazon ES oferece suporte para o Elasticsearchversão 5.1.

30 de janeirode 2017

Compatibilidade como plug-in PhoneticAnalysis

O Amazon ES agora oferece integração incorporada como plug-in Phonetic Analysis, que permite que você realizeconsultas "sonoras" em seus dados.

22 dedezembro de2016

Suporte no Leste dosEUA (Ohio)

O Amazon ES agora oferece suporte para a seguinte região:Leste dos EUA (Ohio), us-east-2.

17 de outubrode 2016

Nova métrica dedesempenho

O Amazon ES adicionou uma métrica de desempenho,ClusterUsedSpace.

29 de julho de2016

Compatibilidade como Elasticsearch 2.3

Agora o Amazon ES oferece suporte para o Elasticsearchversão 2.3.

27 de julho de2016

Suporte na Ásia-Pacífico (Mumbai)

O Amazon ES adicionou suporte para a seguinte região: Ásia-Pacífico (Mumbai), ap-south-1.

27 de junhode 2016

Mais instâncias porcluster

O Amazon ES aumentou o número máximo de instâncias(contagem de instâncias) por cluster de 10 para 20.

18 de maio de2016

Suporte na Ásia-Pacífico (Seul)

O Amazon ES adicionou suporte para a seguinte região: Ásia-Pacífico (Seul), ap-northeast-2.

28 de janeirode 2016

Amazon ES Versão inicial. 1 de outubrode 2015

Versão da API 2015-01-01259

Page 268: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorPermissões de função vinculada ao serviço do Amazon ES

Usar funções vinculadas ao serviçodo Amazon ES

Amazon Elasticsearch Service usa AWS Identity and Access Management (IAM) funções vinculadas aoserviço. A função vinculada ao serviço é um tipo exclusivo de função do IAM vinculada diretamente aoAmazon ES. As funções vinculadas a serviços são predefinidas pelo Amazon ES e incluem todas aspermissões que o serviço requer para chamar outros serviços da AWS em seu nome.

Uma função vinculada ao serviço facilita a configuração do Amazon ES porque você não precisa adicionaras permissões necessárias manualmente. Amazon ES define as permissões de suas funções vinculadasao serviço e, a menos que definido em contrário, somente Amazon ES pode assumir suas funções. Aspermissões definidas incluem a política de confiança e a política de permissões, e essa política não podeser anexada a nenhuma outra entidade do IAM.

Você pode excluir uma função vinculada ao serviço somente depois de primeiro excluir seus recursosrelacionados. Isso protege seus recursos do Amazon ES, pois você não pode remover por engano aspermissões para acessar os recursos.

Para obter informações sobre outros serviços que oferecem suporte às funções vinculadas a serviço,consulte Serviços da AWS compatíveis com o IAM e procure os serviços que apresentam Sim na colunaFunção vinculada a serviços. Escolha um Sim com um link para exibir a documentação da funçãovinculada a serviço desse serviço.

Permissões de função vinculada ao serviço doAmazon ES

O Amazon ES usa a função vinculada ao serviço chamadaAWSServiceRoleForAmazonElasticsearchService.

A função vinculada ao serviço AWSServiceRoleForAmazonElasticsearchService confia nos seguintesserviços para assumir a função:

• es.amazonaws.com

A política de permissões da função permite que o Amazon ES conclua as seguintes ações nos recursosespecificados:

• Ação: ec2:CreateNetworkInterface em *• Ação: ec2:DeleteNetworkInterface em *• Ação: ec2:DescribeNetworkInterfaces em *• Ação: ec2:ModifyNetworkInterfaceAttribute em *• Ação: ec2:DescribeSecurityGroups em *• Ação: ec2:DescribeSubnets em *

Você deve configurar permissões para que uma entidade do IAM (por exemplo, um usuário, grupo oufunção) crie, edite ou exclua uma função vinculada ao serviço. Para obter mais informações, consultePermissões da função vinculada ao serviço no Guia do usuário do IAM.

Versão da API 2015-01-01260

Page 269: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorCriação de uma função vinculada

a um serviço do Amazon ES

Criação de uma função vinculada a um serviço doAmazon ES

Você não precisa criar manualmente uma função vinculada a serviço. Ao criar um domínio de acesso daVPC usando o Console de gerenciamento da AWS, o Amazon ES cria a função vinculada ao serviço paravocê. Para que essa criação automática seja bem-sucedida, você precisa ter permissões para a açãoiam:CreateServiceLinkedRole.

Se você excluir essa função vinculada ao serviço e precisar criá-la novamente, poderá usar esse mesmoprocesso para recriar a função em sua conta.

Também é possível usar o console do IAM, a CLI do IAM ou a API do IAM para criar uma função vinculadaao serviço manualmente. Para mais informações, consulte Como criar uma função vinculada ao serviço noGuia do usuário do IAM.

Edição de uma função vinculada ao serviço doAmazon ES

O Amazon ES não permite que você edite a função vinculada ao serviçoAWSServiceRoleForAmazonElasticsearchService. Depois que criar uma função vinculada ao serviço, vocênão poderá alterar o nome da função, pois várias entidades podem fazer referência a ela. No entanto, vocêpoderá editar a descrição da função usando o IAM. Para obter mais informações, consulte Edição de umafunção vinculada a serviço no Guia do usuário do IAM.

Exclusão de uma função vinculada ao serviço doAmazon ES

Se você não precisar mais usar um recurso ou serviço que requer uma função vinculada a serviço, érecomendável excluí-la. Dessa forma, você não tem uma entidade não utilizada que não seja monitoradaativamente ou mantida. No entanto, você deve limpar sua função vinculada ao serviço para excluí-lamanualmente.

Limpar uma função vinculada ao serviçoAntes de você poder usar o IAM para excluir uma função vinculada ao serviço, você deve primeiroconfirmar que a função não tem sessões ativas e remover quaisquer recursos usados pela função.

Para verificar se a função vinculada ao serviço tem uma sessão ativa no console do IAM

1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em https://console.aws.amazon.com/iam/.

2. No painel de navegação do console do IAM, selecione Roles (Funções). A seguir, selecione o nome(não a caixa de seleção) da função AWSServiceRoleForAmazonElasticsearchService.

3. Na página Resumo para a função selecionada, escolha a guia Consultor de Acesso.4. Na guia Consultor de Acesso, revise a atividade recente para a função vinculada ao serviço.

Note

Se não tiver certeza se o Amazon ES está usando a funçãoAWSServiceRoleForAmazonElasticsearchService, você poderá tentar excluir a função. Se

Versão da API 2015-01-01261

Page 270: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedorExcluir manualmente uma função vinculada ao serviço

o serviço está usando a função, a exclusão falha e você pode visualizar as regiões em quea função está sendo usada. Se a função está sendo usada, você deve aguardar a sessãofinal antes de excluir a função. Você não pode revogar a sessão para uma função vinculada aserviço.

Para remover os recursos do Amazon ES usados peloAWSServiceRoleForAmazonElasticsearchService

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon ES.2. Exclua todos os domínios que listam VPC na coluna Endpoint.

Excluir manualmente uma função vinculada ao serviçoUse a API de configuração do Amazon ES para excluir a função vinculada ao serviçoAWSServiceRoleForAmazonElasticsearchService. Para obter mais informações, consulte the sectioncalled “DeleteElasticsearchServiceRole” (p. 178).

Versão da API 2015-01-01262

Page 271: Guia do desenvolvedor Versão da API 2015-01-01 · Tipos de políticas ... Carregamento de dados em streaming no Amazon ES por meio do Amazon Kinesis Data ... O Amazon ES fornece

Amazon Elasticsearch Service Guia do desenvolvedor

AWS GlossaryFor the latest AWS terminology, see the AWS Glossary in the AWS General Reference.

Versão da API 2015-01-01263