As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Acesse um banco de dados do Amazon Neptune a partir de um contêiner da Amazon EKS
Criado por Ramakrishnan Palaninathan () AWS
Ambiente: produção | Tecnologias: contêineres e microsserviços; bancos de dados | Workload: todas as outras workloads |
AWSserviços: AmazonEKS; Amazon Neptune |
Resumo
Esse padrão estabelece uma conexão entre o Amazon Neptune, que é um banco de dados gráfico totalmente gerenciado, e o Amazon Elastic Kubernetes Service EKS (Amazon), um serviço de orquestração de contêineres, para acessar um banco de dados Neptune. Os clusters de banco de dados Neptune estão confinados em uma nuvem privada virtual () ativada. VPC AWS Por esse motivo, acessar o Neptune requer uma configuração cuidadosa do para permitir VPC a conectividade.
Ao contrário do Amazon Relational Database Service (RDSAmazon) para SQL Postgre, o Neptune não depende de credenciais típicas de acesso ao banco de dados. Em vez disso, ele usa funções AWS Identity and Access Management (IAM) para autenticação. Portanto, conectar-se ao Neptune pela EKS Amazon envolve a IAM configuração de uma função com as permissões necessárias para acessar o Neptune.
Além disso, os endpoints do Neptune são acessíveis somente dentro do local em que VPC o cluster reside. Isso significa que você precisa definir as configurações de rede para facilitar a comunicação entre a Amazon EKS e o Neptune. Dependendo de seus requisitos específicos e preferências de rede, existem várias abordagens para configurar o VPC para permitir uma conectividade perfeita entre o Neptune e a Amazon. EKS Cada método oferece vantagens e considerações distintas, que fornecem flexibilidade na criação da arquitetura do banco de dados para atender às necessidades do seu aplicativo.
Pré-requisitos e limitações
Pré-requisitos
Instale a versão mais recente do kubectl (veja as instruções
). Para verificar sua versão, execute: kubectl version --short
Instale a versão mais recente do eksctl (veja as instruções
). Para verificar sua versão, execute: eksctl info
Instale a versão mais recente da AWS Command Line Interface (AWS CLI) versão 2 (consulte as instruções). Para verificar sua versão, execute:
aws --version
Crie um cluster de banco de dados Neptune (consulte as instruções). Certifique-se de estabelecer comunicações entre o cluster VPC e a Amazon EKS por meio de VPCpeering ou outro método. AWS Transit Gateway Verifique também se o status do cluster está “disponível” e se ele tem uma regra de entrada na porta 8182 para o grupo de segurança.
Configure um provedor IAM OpenID Connect (OIDC) em um EKS cluster Amazon existente (veja as instruções).
Versões do produto
Arquitetura
O diagrama a seguir mostra a conexão entre os pods do Kubernetes em um cluster da Amazon EKS e o Neptune para fornecer acesso a um banco de dados do Neptune.
Automação e escala
Você pode usar o Amazon EKS Horizontal Pod Autoscaler para escalar essa solução.
Ferramentas
Serviços
O Amazon Elastic Kubernetes Service (EKSAmazon) ajuda você a executar o AWS Kubernetes sem precisar instalar ou manter seu próprio plano de controle ou nós do Kubernetes.
AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
O Amazon Neptune é um serviço de banco de dados gráfico que ajuda você a criar e executar aplicativos que funcionam com conjuntos de dados altamente conectados.
Práticas recomendadas
Para obter as melhores práticas, consulte Identity and Access Management
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Verifique o contexto do cluster. | Antes de interagir com seu EKS cluster da Amazon usando o Helm ou outras ferramentas de linha de comando, você deve definir variáveis de ambiente que encapsulem os detalhes do seu cluster. Essas variáveis são usadas em comandos subsequentes para garantir que elas tenham como alvo o cluster e os recursos corretos. Primeiro, confirme se você está operando no contexto correto do cluster. Isso garante que todos os comandos subsequentes sejam enviados para o cluster Kubernetes pretendido. Para verificar o contexto atual, execute o comando a seguir.
| AWSadministrador, administrador de nuvem |
Defina a | Defina a variável de
| AWSadministrador, administrador de nuvem |
Valide a saída. | Para validar se as variáveis foram definidas corretamente, execute o comando a seguir.
Verifique se a saída desse comando corresponde à entrada especificada na etapa anterior. | AWSadministrador, administrador de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar uma conta de serviço do . | Você usa IAMfunções para contas de serviço para mapear suas contas de serviço do Kubernetes para IAM funções, a fim de permitir um gerenciamento refinado de permissões para seus aplicativos que são executados na Amazon. EKS Você pode usar eksctl Importante: você deve ter um OIDCendpoint associado ao seu cluster antes de executar esses comandos. Crie uma conta de serviço que você deseja associar a uma política AWS gerenciada chamada
onde Após a conclusão, esse comando exibe a seguinte resposta:
| AWSadministrador, administrador de nuvem |
Verifique se a conta está configurada corretamente. | Certifique-se de que a conta
O resultado deve ser semelhante ao seguinte:
| AWSadministrador, administrador de nuvem |
Verifique a conectividade. | Implante um pod de amostra chamado
| AWSadministrador, administrador de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Ative a autenticação IAM do banco de dados. | Por padrão, a autenticação do IAM banco de dados é desativada quando você cria um cluster de banco de dados Neptune. Você pode ativar ou desativar a autenticação do IAM banco de dados usando AWS Management Console o. Siga as etapas na AWS documentação para habilitar a autenticação do IAM banco de dados no Neptune. | AWSadministrador, administrador de nuvem |
Verifique as conexões. | Nesta etapa, você interage com o
| AWSadministrador, administrador de nuvem |
Solução de problemas
Problema | Solução |
---|---|
Não consigo acessar o banco de dados Neptune. | Revise a IAM política anexada à conta de serviço. Certifique-se de que ele permita as ações necessárias (por exemplo, |
Recursos relacionados
Conceda às cargas de trabalho do Kubernetes acesso ao AWS uso de contas de serviço do Kubernetes (documentação da Amazon) EKS
IAMfunções para contas de serviço (EKSdocumentação da Amazon)
Criação de um novo cluster de banco de dados Neptune (documentação do Amazon Neptune)