Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Acceso a una base de datos de Amazon Neptune desde un contenedor de Amazon EKS
Ramakrishnan Palaninathan, Amazon Web Services
Resumen
Este patrón establece una conexión entre Amazon Neptune, que es una base de datos de gráficos totalmente gestionada, y Amazon Elastic Kubernetes Service (Amazon EKS), un servicio de orquestación de contenedores, para acceder a una base de datos de Neptune. Los clústeres de la base de datos de Neptune están confinados dentro de una nube privada virtual (VPC) en AWS. Por este motivo, el acceso a Neptune requiere una configuración cuidadosa de la VPC para permitir la conectividad.
A diferencia de Amazon Relational Database Service (Amazon RDS) para PostgreSQL, Neptune no depende de las credenciales de acceso a bases de datos típicas. En su lugar, utiliza funciones AWS Identity and Access Management (IAM) para la autenticación. Por lo tanto, conectarse a Neptune desde Amazon EKS implica configurar un rol de IAM con los permisos necesarios para acceder a Neptune.
Además, solo se puede acceder a los puntos de conexión de Neptune dentro de la VPC en la que se encuentra el clúster. Esto significa que debe configurar los ajustes de red para facilitar la comunicación entre Amazon EKS y Neptune. Según sus requisitos específicos y sus preferencias de red, existen varios enfoques para configurar la VPC a fin de permitir una conectividad fluida entre Neptune y Amazon EKS. Cada método ofrece ventajas y opciones distintas, que proporcionan flexibilidad a la hora de diseñar la arquitectura de la base de datos para adaptarla a las necesidades de la aplicación.
Requisitos previos y limitaciones
Requisitos previos
Instale la última versión de kubectl (consulte las instrucciones
). Para comprobar la versión, ejecute: kubectl version --shortInstale la última versión de eksctl (consulte las instrucciones
). Para comprobar la versión, ejecute: eksctl infoInstale la última versión de la AWS Command Line Interface (AWS CLI) versión 2 (consulte las instrucciones). Para comprobar la versión, ejecute:
aws --versionCree un clúster de base de datos de Neptune (consulte las instrucciones). Asegúrese de establecer las comunicaciones entre la VPC del clúster y Amazon EKS mediante el emparejamiento de VPC, AWS Transit Gateway, u otro método. Asegúrese también de que el estado del clúster esté como Disponible y de que tenga una regla de entrada en el puerto 8182 para el grupo de seguridad.
Configure un proveedor de IAM OpenID Connect (OIDC) en un clúster de Amazon EKS existente (consulte las instrucciones).
Versiones de producto
Arquitectura
En el siguiente diagrama se muestra la conexión entre los pods de Kubernetes de un clúster de Amazon EKS y Neptuno para proporcionar acceso a una base de datos de Neptune.

Automatización y escala
Puede usar el escalador automático de pods horizontales para escalar esta solución.
Tools (Herramientas)
Servicios
Amazon Elastic Kubernetes Service (Amazon EKS) le ayuda a ejecutar AWS Kubernetes sin necesidad de instalar o mantener su propio plano de control o nodos de Kubernetes.
AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
Amazon Neptune es un servicio de base de datos de gráficos que le permite crear y ejecutar aplicaciones que funcionen con conjuntos de datos altamente conectados.
Prácticas recomendadas
Para obtener información sobre las prácticas recomendadas, consulte Identity and Access Management
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Verifique el contexto del clúster. | Antes de interactuar con su clúster de Amazon EKS mediante Helm u otras herramientas de línea de comandos, debe definir las variables de entorno que encapsulen los detalles del clúster. Estas variables se utilizan en los comandos posteriores para garantizar que se dirijan al clúster y los recursos correctos. En primer lugar, confirme que está trabajando en el contexto de clúster correcto. Esto garantiza que cualquier comando posterior se envíe al clúster de Kubernetes deseado. Para comprobar el contexto actual, ejecute el siguiente comando.
| Administrador de la nube, administrador de AWS |
Defina la variable | Establezca la variable de entorno
| Administrador de la nube, administrador de AWS |
Valide la salida. | Para comprobar que las variables se hayan configurado correctamente, ejecute el siguiente comando.
Compruebe que el resultado de este comando coincida con la entrada que especificó en el paso anterior. | Administrador de la nube, administrador de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Cree una cuenta de servicio de . | Utilice roles de IAM para cuentas de servicio y así poder asignar sus cuentas de servicio de Kubernetes a roles de IAM para habilitar una administración de permisos detallada en las aplicaciones que se ejecutan en Amazon EKS. Puede usar eksctl importanteDebe tener un punto de conexión OIDC asociado a su clúster antes de ejecutar estos comandos. Cree una cuenta de servicio que desee asociar a una política AWS administrada denominada
Al finalizar, el comando muestra la siguiente respuesta:
| Administrador de la nube, administrador de AWS |
Compruebe que la cuenta esté configurada correctamente. | Asegúrese de que la cuenta de servicio de
La salida debe tener el siguiente aspecto:
| Administrador de la nube, administrador de AWS |
Compruebe la conectividad. | Implemente un pod de muestra llamado
| Administrador de la nube, administrador de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Habilite la autenticación de bases de datos de IAM | De forma predeterminada, la autenticación de bases de datos de IAM está deshabilitada al crear un clúster de Neptune DB. Puede habilitar o deshabilitar la autenticación de la base de datos IAM mediante Consola de administración de AWS. Siga los pasos de la AWS documentación para habilitar la autenticación de bases de datos de IAM en Neptune. | Administrador de la nube, administrador de AWS |
Compruebe las conexiones. | En este paso, interactuará con el contenedor de
| Administrador de la nube, administrador de AWS |
Resolución de problemas
| Problema | Solución |
|---|---|
No se puede acceder a la base de datos de Neptune. | Revise la política de IAM adjunta a la cuenta de servicio. Asegúrese de que permite realizar las acciones necesarias (por ejemplo, |
Recursos relacionados
Otorgue a las cargas de trabajo de Kubernetes acceso al AWS uso de cuentas de servicio de Kubernetes (documentación de Amazon EKS)
Roles de IAM para cuentas de servicio (documentación de Amazon EKS)
Creación de un nuevo clúster de base de datos de Neptune (documentación de Amazon Neptune)