Acesso a um banco de dados do Amazon Neptune usando um contêiner do Amazon EKS
Ramakrishnan Palaninathan, Amazon Web Services
Resumo
Este padrão estabelece uma conexão entre o Amazon Neptune, um banco de dados de grafos totalmente gerenciado, e o Amazon Elastic Kubernetes Service (Amazon EKS), um serviço de orquestração de contêineres, para acessar um banco de dados do Neptune. Os clusters de banco de dados do Neptune ficam restritos a uma nuvem privada virtual (VPC) na AWS. Por esse motivo, o acesso ao Neptune requer uma configuração cuidadosa da VPC para habilitar a conectividade.
Ao contrário do Amazon Relational Database Service (Amazon RDS) para PostgreSQL, o Neptune não depende de credenciais típicas de acesso a banco de dados. Em vez disso, ele usa perfis do AWS Identity and Access Management (IAM) para autenticação. Assim, para estabelecer conexão com o Neptune usando o Amazon EKS, é preciso configurar um perfil do IAM que tenha as permissões necessárias de acesso.
Além disso, os endpoints do Neptune são acessíveis apenas dentro da VPC em que o cluster está localizado. Isso significa que você precisa definir as configurações de rede para possibilitar a comunicação entre o Amazon EKS e o Neptune. Conforme seus requisitos específicos e preferências de rede, é possível adotar diversas abordagens para configurar a VPC e habilitar a conectividade entre o Neptune e o Amazon EKS de forma eficiente e sem interrupções. Cada método oferece vantagens e considerações distintas, proporcionando flexibilidade no planejamento da arquitetura do banco de dados para atender às necessidades da sua aplicação.
Pré-requisitos e limitações
Pré-requisitos
Instale a versão mais recente do kubectl (consulte as instruções
). Para conferir qual versão está instalada, execute: kubectl version --shortInstale a versão mais recente do eksctl (consulte as instruções
). Para conferir qual versão está instalada, execute: eksctl infoInstale a versão mais recente da AWS Command Line Interface (AWS CLI) versão 2 (consulte as instruções). Para conferir qual versão está instalada, execute:
aws --versionCrie um cluster de banco de dados do Neptune (consulte as instruções). Certifique-se de estabelecer a comunicação entre a VPC do cluster e o Amazon EKS por meio de emparelhamento da VPC, uso do AWS Transit Gateway ou outro método. Além disso, verifique se o status do cluster está como “disponível” e se há uma regra de entrada na porta 8182 para o grupo de segurança.
Configure um provedor de OpenID Connect (OIDC) do IAM em um cluster do Amazon EKS existente (consulte as instruções).
Versões do produto
Arquitetura
O diagrama apresentado a seguir ilustra a conexão entre os pods do Kubernetes em um cluster do Amazon EKS e o Neptune, para fornecer acesso a um banco de dados do Neptune.

Automação e escala
É possível usar o Horizontal Pod Autoscaler do Amazon EKS para escalar esta solução.
Ferramentas
Serviços
O Amazon Elastic Kubernetes Service (Amazon EKS) ajuda você a executar o Kubernetes na AWSsem precisar instalar e manter seus próprios nós ou painel de controle do Kubernetes.
OAWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus recursos AWS controlando quem está autenticado e autorizado a usá-los.
O Amazon Neptune é um serviço de banco de dados de grafos que facilita a criação e a execução de aplicações capazes de trabalhar com conjuntos de dados fortemente conectados.
Práticas recomendadas
Para conhecer as práticas recomendadas, consulte a seção Identity and Access Management
Épicos
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Verifique o contexto do cluster. | Antes de interagir com o cluster do Amazon EKS usando o Helm ou outras ferramentas de linha de comando, você deve definir variáveis de ambiente que contenham os detalhes do cluster. As variáveis definidas serão usadas nos próximos comandos para garantir que todas as ações sejam direcionadas ao cluster e aos recursos corretos. Primeiro, confirme que você está operando no contexto correto do cluster. Dessa forma, você garante que quaisquer comandos executados a seguir sejam aplicados ao cluster do Kubernetes correto. Para verificar o contexto atual, execute o comando apresentado a seguir.
| Administrador da AWS, administrador de nuvem |
Defina a variável | Defina a variável de ambiente
| Administrador da AWS, administrador de nuvem |
Valide a saída. | Para validar se as variáveis foram definidas corretamente, execute o comando apresentado a seguir.
Verifique se a saída deste comando corresponde à entrada que você especificou na etapa anterior. | Administrador da AWS, administrador de nuvem |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Criar uma conta de serviço do . | Com os perfis do IAM para contas de serviço, você pode mapear as contas de serviço do Kubernetes para perfis do IAM a fim de possibilitar um gerenciamento de permissões detalhado para as aplicações executadas no Amazon EKS. É possível usar a ferramenta eksctl ImportanteÉ necessário que o cluster tenha um endpoint de OIDC associado antes de executar estes comandos. Crie uma conta de serviço que você deseja associar a uma política gerenciada pela AWS chamada
em que Quando o comando for concluído, ele mostrará a seguinte resposta:
| Administrador da AWS, administrador de nuvem |
Verifique se a conta foi configurada corretamente. | Certifique-se de que a conta de serviço
O resultado deve ser semelhante ao seguinte:
| Administrador da AWS, administrador de nuvem |
Verifique a conectividade. | Implante um pod de amostra chamado
| Administrador da AWS, administrador de nuvem |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Habilite a autenticação do banco de dados do IAM. | Por padrão, a autenticação de banco de dados do IAM está desabilitada quando você cria um cluster de banco de dados do Neptune. É possível habilitar ou desabilitar a autenticação do banco de dados do IAM usando o Console de gerenciamento da AWS Siga as etapas apresentadas na documentação da AWS para habilitar a autenticação do banco de dados do IAM no Neptune. | Administrador da AWS, administrador de nuvem |
Verifique as conexões. | Nesta etapa, você interage com o contêiner
| Administrador da AWS, administrador de nuvem |
Solução de problemas
| Problema | Solução |
|---|---|
Não é possível acessar o banco de dados do Neptune. | Analise a política do IAM anexada à conta de serviço. Certifique-se de que as ações necessárias (por exemplo, |
Recursos relacionados
Conceder às workloads do Kubernetes acesso a AWS usando contas de serviço do Kubernetes (documentação do Amazon EKS)
Perfis do IAM para contas de serviço (documentação do Amazon EKS)
Creating a new Neptune DB cluster (documentação do Amazon Neptune)