Conexión automática de una función de Lambda y un clúster de base de datos de Aurora - Amazon Aurora

Conexión automática de una función de Lambda y un clúster de base de datos de Aurora

Puede utilizar la consola de Amazon RDS para simplificar la configuración de una conexión entre una función de Lambda y un clúster de base de datos de Aurora. A menudo, el clúster de base de datos se encuentra en una subred privada dentro de una VPC. Las aplicaciones pueden utilizar la función de Lambda para acceder a su clúster de base de datos privado.

La siguiente imagen muestra una conexión directa entre su clúster de base de datos y su función de Lambda.

Conexión automática de un clúster de base de datos de Aurora con una función de Lambda

Puede configurar la conexión entre la función de Lambda y su clúster de base de datos a través de RDS Proxy para mejorar el rendimiento y la resiliencia de la base de datos. A menudo, las funciones de Lambda hacen frecuentes conexiones cortas a la base de datos que aprovechan el grupo de conexiones que ofrece RDS Proxy. Puede aprovechar cualquier autenticación de AWS Identity and Access Management (IAM) que ya tenga para las funciones de Lambda, en lugar de administrar las credenciales de la base de datos en el código de la aplicación de Lambda. Para obtener más información, consulte Uso de Amazon RDS Proxy para Aurora.

Cuando utiliza la consola para conectarse con un proxy existente, Amazon RDS actualiza el grupo de seguridad del proxy para permitir las conexiones desde su clúster de base de datos y la función de Lambda.

También puede crear un nuevo proxy desde la misma página de la consola. Al crear un proxy en la consola, para acceder al clúster de base de datos, debe introducir las credenciales de la base de datos o seleccionar un secreto de AWS Secrets Manager.

Conexión automática de un clúster de base de datos de Aurora con una función de Lambda a través de RDS Proxy

Información general de la conectividad automática con una función de Lambda

Estos son los requisitos para conectar una función de Lambda a un clúster de base de datos de Aurora:

  • La función de Lambda debe encontrarse en la misma VPC que el clúster de base de datos.

  • Actualmente, el clúster de base de datos no puede ser un clúster de base de datos de Aurora Serverless ni parte de una base de datos de Aurora.

  • El usuario que configure la conectividad debe tener permisos para realizar las siguientes operaciones de Amazon RDS, Amazon EC2, Lambda, Secrets Manager e IAM:

    • Amazon RDS

      • rds:CreateDBProxies

      • rds:DescribeDBClusters

      • rds:DescribeDBProxies

      • rds:ModifyDBCluster

      • rds:ModifyDBProxy

      • rds:RegisterProxyTargets

    • Amazon EC2

      • ec2:AuthorizeSecurityGroupEgress

      • ec2:AuthorizeSecurityGroupIngress

      • ec2:CreateSecurityGroup

      • ec2:DeleteSecurityGroup

      • ec2:DescribeSecurityGroups

      • ec2:RevokeSecurityGroupEgress

      • ec2:RevokeSecurityGroupIngress

    • Lambda

      • lambda:CreateFunctions

      • lambda:ListFunctions

      • lambda:UpdateFunctionConfiguration

    • Secrets Manager

      • secretsmanager:CreateSecret

      • secretsmanager:DescribeSecret

    • IAM

      • iam:AttachPolicy

      • iam:CreateRole

      • iam:CreatePolicy

    • AWS KMS

      • kms:describeKey

nota

Si el clúster de base de datos y la función de Lambda se encuentran en diferentes zonas de disponibilidad, su cuenta podría incurrir en costes cruzados de la zona de disponibilidad.

Cuando se configura una conexión entre una función de Lambda y un clúster de base de datos de Aurora, Amazon RDS configura el grupo de seguridad de la VPC para su función y su clúster de base de datos. Si usa RDS Proxy, Amazon RDS también configura el grupo de seguridad de la VPC para el proxy. Amazon RDS realiza una acción de acuerdo con la configuración actual de los grupos de seguridad asociados al clúster de base de datos, la función de Lambda y el proxy, tal como se describe en la siguiente tabla.

Configuración del grupo de seguridad de RDS actual Configuración actual del grupo de seguridad de Lambda Configuración actual del grupo de seguridad del proxy Acción de RDS

Hay uno o más grupos de seguridad asociados al clúster de base de datos con un nombre que coincide con el patrón rds-lambda-n o si un proxy ya está conectado a su clúster de base de datos, RDS comprueba si el valor de TargetHealth de un proxy asociado es AVAILABLE.

No se ha modificado ningún grupo de seguridad que coincida con el patrón. Este grupo de seguridad tiene solo una regla de entrada con el grupo de seguridad de la VPC de la función de Lambda o el proxy como origen.

Hay uno o más grupos de seguridad asociados a la función de Lambda con un nombre que coincide con el patrón lambda-rds-n o lambda-rdsproxy-n (donde n es un número).

No se ha modificado ningún grupo de seguridad que coincida con el patrón. Este grupo de seguridad solo tiene una regla de salida bien con el grupo de seguridad de la VPC del clúster de base de datos o el proxy como destino.

Hay uno o más grupos de seguridad asociados al proxy con un nombre que coincide con el patrón rdsproxy-lambda-n (donde n es un número).

No se ha modificado ningún grupo de seguridad que coincida con el patrón. Este grupo de seguridad tiene reglas de entrada y salida con los grupos de seguridad de la VPC de la función de Lambda y el clúster de base de datos.

Amazon RDS no realiza ninguna acción.

Ya se configuró automáticamente una conexión entre la función de Lambda, el proxy (opcional) y el clúster de base de datos. Como ya existe una conexión entre la función, el proxy y la base de datos, los grupos de seguridad no se modifican.

Se aplica alguna de las siguientes condiciones:

  • No hay ningún grupo de seguridad asociado al clúster de base de datos con un nombre que coincida con el patrón rds-lambda-n o si el valor de TargetHealth de un proxy asociado es AVAILABLE.

  • Hay uno o más grupos de seguridad asociados al clúster de base de datos con un nombre que coincida con el patrón rds-lambda-n o si el valor de TargetHealth de un proxy asociado es AVAILABLE. Sin embargo, ninguno de estos grupos de seguridad se puede usar para la conexión con la función de Lambda.

Amazon RDS no puede usar un grupo de seguridad que no tengan una regla de entrada con el grupo de seguridad de la VPC de la función de Lambda o el proxy como origen. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado. Los ejemplos de modificaciones incluyen agregar una regla o cambiar el puerto de una regla existente.

Se aplica alguna de las siguientes condiciones:

  • No hay ningún grupo de seguridad asociado a la función de Lambda con un nombre que coincida con el patrón lambda-rds-nlambda-rdsproxy-n.

  • Hay uno o más grupos de seguridad asociados a la función de Lambda con un nombre que coincide con el patrón lambda-rds-nlambda-rdsproxy-n. Sin embargo, Amazon RDS no puede usar ninguno de estos grupos de seguridad para la conexión con el clúster de base de datos.

Amazon RDS no puede utilizar un grupo de seguridad que no tenga una regla de salida con el grupo de seguridad de la VPC del clúster de base de datos o el proxy como destino. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado.

Se aplica alguna de las siguientes condiciones:

  • No hay ningún grupo de seguridad asociado al proxy con un nombre que coincida con el patrón rdsproxy-lambda-n.

  • Hay uno o más grupos de seguridad asociados al proxy con un nombre que coincide con rdsproxy-lambda-n. Sin embargo, Amazon RDS no puede usar ninguno de estos grupos de seguridad para la conexión con el clúster de base de datos o la función de Lambda.

Amazon RDS no puede utilizar un grupo de seguridad que no tenga reglas de entrada y salida con el grupo de seguridad de la VPC del clúster de base de datos y la función de Lambda. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado.
RDS action: create new security groups

Hay uno o más grupos de seguridad asociados al clúster de base de datos con un nombre que coincida con el patrón rds-lambda-n o si el valor de TargetHealth de un proxy asociado es AVAILABLE.

No se ha modificado ningún grupo de seguridad que coincida con el patrón. Este grupo de seguridad tiene solo una regla de entrada con el grupo de seguridad de la VPC de la función de Lambda o el proxy como origen.

Hay uno o más grupos de seguridad asociados a la función de Lambda con un nombre que coincide con el patrón lambda-rds-nlambda-rdsproxy-n.

Sin embargo, Amazon RDS no puede usar ninguno de estos grupos de seguridad para la conexión con el clúster de base de datos. Amazon RDS no puede utilizar un grupo de seguridad que no tenga una regla de salida con el grupo de seguridad de la VPC del clúster de base de datos o el proxy como destino. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado.

Hay uno o más grupos de seguridad asociados al proxy con un nombre que coincide con el patrón rdsproxy-lambda-n.

Sin embargo, Amazon RDS no puede usar ninguno de estos grupos de seguridad para la conexión con el clúster de base de datos o la función de Lambda. Amazon RDS no puede utilizar un grupo de seguridad que no tenga reglas de entrada y salida con el grupo de seguridad de la VPC del clúster de base de datos y la función de Lambda. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado.

RDS action: create new security groups

Hay uno o más grupos de seguridad asociados al clúster de base de datos con un nombre que coincida con el patrón rds-lambda-n o si el valor de TargetHealth de un proxy asociado es AVAILABLE.

No se ha modificado ningún grupo de seguridad que coincida con el patrón. Este grupo de seguridad tiene solo una regla de entrada con el grupo de seguridad de la VPC de la función de Lambda o el proxy como origen.

Existe un grupo de seguridad de Lambda válido para la conexión, pero no está asociado a la función de Lambda. Este grupo de seguridad tiene un nombre que coincide con el patrón lambda-rds-nlambda-rdsproxy-n. No se ha modificado. Solo tiene una regla de salida con el grupo de seguridad de la VPC del clúster de base de datos o el proxy como destino.

Existe un grupo de seguridad del proxy válido para la conexión, pero no está asociado al proxy. Este grupo de seguridad tiene un nombre que coincide con el patrón rdsproxy-lambda-n. No se ha modificado. Tiene reglas de entrada y salida con el grupo de seguridad de la VPC del clúster de base de datos y la función de Lambda.

RDS action: associate Lambda security group

Se aplica alguna de las siguientes condiciones:

  • No hay ningún grupo de seguridad asociado al clúster de base de datos con un nombre que coincida con el patrón rds-lambda-n o si el valor de TargetHealth de un proxy asociado es AVAILABLE.

  • Hay uno o más grupos de seguridad asociados al clúster de base de datos con un nombre que coincida con el patrón rds-lambda-n o si el valor de TargetHealth de un proxy asociado es AVAILABLE. Sin embargo, Amazon RDS no puede usar ninguno de estos grupos de seguridad para la conexión con la función de Lambda o el proxy.

Amazon RDS no puede usar un grupo de seguridad que no tengan una regla de entrada con el grupo de seguridad de la VPC de la función de Lambda o el proxy como origen. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado.

Hay uno o más grupos de seguridad asociados a la función de Lambda con un nombre que coincide con el patrón lambda-rds-nlambda-rdsproxy-n.

No se ha modificado ningún grupo de seguridad que coincida con el patrón. Este grupo de seguridad solo tiene una regla de salida con el grupo de seguridad de la VPC de la instancia de base de datos o el proxy como destino.

Hay uno o más grupos de seguridad asociados al proxy con un nombre que coincide con el patrón rdsproxy-lambda-n.

No se ha modificado ningún grupo de seguridad que coincida con el patrón. Este grupo de seguridad tiene reglas de entrada y salida con el grupo de seguridad de la VPC del clúster de base de datos y la función de Lambda.

RDS action: create new security groups

Se aplica alguna de las siguientes condiciones:

  • No hay ningún grupo de seguridad asociado al clúster de base de datos con un nombre que coincida con el patrón rds-lambda-n o si el valor de TargetHealth de un proxy asociado es AVAILABLE.

  • Hay uno o más grupos de seguridad asociados al clúster de base de datos con un nombre que coincida con el patrón rds-lambda-n o si el valor de TargetHealth de un proxy asociado es AVAILABLE. Sin embargo, Amazon RDS no puede usar ninguno de estos grupos de seguridad para la conexión con la función de Lambda o el proxy.

Amazon RDS no puede usar un grupo de seguridad que no tengan una regla de entrada con el grupo de seguridad de la VPC de la función de Lambda o el proxy como origen. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado.

Se aplica alguna de las siguientes condiciones:

  • No hay ningún grupo de seguridad asociado a la función de Lambda con un nombre que coincida con el patrón lambda-rds-nlambda-rdsproxy-n.

  • Hay uno o más grupos de seguridad asociados a la función de Lambda con un nombre que coincide con el patrón lambda-rds-nlambda-rdsproxy-n. Sin embargo, Amazon RDS no puede usar ninguno de estos grupos de seguridad para la conexión con el clúster de base de datos.

Amazon RDS no puede utilizar un grupo de seguridad que no tenga una regla de salida con el grupo de seguridad de la VPC del clúster de base de datos o el proxy como origen. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado.

Se aplica alguna de las siguientes condiciones:

  • No hay ningún grupo de seguridad asociado al proxy con un nombre que coincida con el patrón rdsproxy-lambda-n.

  • Hay uno o más grupos de seguridad asociados al proxy con un nombre que coincide con rdsproxy-lambda-n. Sin embargo, Amazon RDS no puede usar ninguno de estos grupos de seguridad para la conexión con el clúster de base de datos o la función de Lambda.

Amazon RDS no puede utilizar un grupo de seguridad que no tenga reglas de entrada y salida con el grupo de seguridad de la VPC del clúster de base de datos y la función de Lambda. Amazon RDS tampoco puede usar un grupo de seguridad que se haya modificado.
RDS action: create new security groups
Acción de RDS de
: crear nuevos grupos de seguridad

Amazon RDS realiza las siguientes acciones:

  • Crea un nuevo grupo de seguridad que coincide con el patrón rds-lambda-n o rds-rdsproxy-n (si elige utilizar RDS Proxy). Este grupo de seguridad tiene una regla de entrada con el grupo de seguridad de la VPC de la función de Lambda o el proxy como origen. Este grupo de seguridad está asociado al clúster de base de datos y permite que la función o el proxy accedan al clúster de base de datos.

  • Crea un nuevo grupo de seguridad que coincide con el patrón lambda-rds-nlambda-rdsproxy-n. Este grupo de seguridad tiene una regla de salida bien con el grupo de seguridad de la VPC del clúster de base de datos o el proxy como destino. Este grupo de seguridad está asociado a la función de Lambda y permite que la función envíe tráfico al clúster de base de datos o que envíe tráfico a través de un proxy.

  • Crea un nuevo grupo de seguridad que coincide con el patrón rdsproxy-lambda-n. Este grupo de seguridad tiene reglas de entrada y salida con el grupo de seguridad de la VPC del clúster de base de datos y la función de Lambda.

Acción de RDS
: asociar un grupo de seguridad de Lambda

Amazon RDS asocia el grupo de seguridad de Lambda válido y existente a la función de Lambda. Este grupo de seguridad permite que la función envíe tráfico al clúster de base de datos o que envíe tráfico a través de un proxy.

Conexión automática de una función de Lambda y un clúster de base de datos de Aurora

Puede utilizar la consola de Amazon RDS para conectar automáticamente una función de Lambda a su clúster de base de datos. Esto simplifica el proceso de establecer una conexión entre estos recursos.

También puede usar RDS Proxy para incluir un proxy en la conexión. Las funciones de Lambda hacen frecuentes conexiones cortas a la base de datos que aprovechan el grupo de conexiones que ofrece RDS Proxy. Puede aprovechar cualquier autenticación de IAM que ya tenga para sus funciones de Lambda, en lugar de administrar las credenciales de la base de datos en el código de la aplicación de Lambda.

Puede conectar un clúster de base de datos existente a funciones de Lambda nuevas y existentes mediante la página de configuración de conexiones de Lambda. El proceso de configuración configura automáticamente los grupos de seguridad necesarios en su nombre.

Antes de configurar una conexión entre una función de Lambda y un clúster de base de datos, asegúrese de que:

Si realiza cambios en los grupos de seguridad después de configurar la conectividad, los cambios podrían afectar a la conexión entre la función de Lambda y el clúster de base de datos.

nota

Puede configurar automáticamente una conexión entre el clúster de base de datos y una función de Lambda solo en la AWS Management Console. Para conectar una función de Lambda, todas las instancias del clúster de base de datos deben estar en estado Disponible.

Para conectar automáticamente una función de Lambda y un clúster de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Bases de datos y, a continuación, seleccione el clúster de base de datos que desea conectar a una función de Lambda.

  3. En Acciones, elija Configurar la conexión de Lambda.

  4. En la página Configurar la conexión de Lambda, en Seleccionar la función de Lambda, realice una de las siguientes acciones:

    • Si ya tiene una función de Lambda en la misma VPC que su clúster de base de datos, elija Elegir una función existente y, a continuación, seleccione la función.

    • Si no tiene una función de Lambda en la misma VPC, elija Crear función nueva y, a continuación, introduzca un Nombre de la función. El tiempo de ejecución predeterminado está establecido en Nodejs.18. Puede modificar la configuración de la nueva función de Lambda en la consola de Lambda después de completar la configuración de la conexión.

  5. (Opcional) En RDS Proxy, seleccione Conexión mediante RDS Proxy y, a continuación, realice una de las siguientes acciones:

    • Si ya tiene un proxy que quiere usar, elija Elegir un proxy existente y, a continuación, elija el proxy.

    • Si no dispone de un proxy y desea que Amazon RDS lo cree automáticamente, elija Crear un proxy nuevo. A continuación, para Credenciales de la base de datos, realice una de las siguientes acciones:

      1. Elija Nombre de usuario y contraseña de la base de datos y, a continuación, introduzca el Nombre de usuario y la Contraseña para su clúster de base de datos.

      2. Elija Secreto de Secrets Manager. A continuación, para Seleccionar secreto, elija un secreto de AWS Secrets Manager. Si no tiene ningún secreto de Secrets Manager, elija Crear un nuevo secreto de Secrets Manager para crear un nuevo secreto. Después de crear el secreto, en Seleccionar secreto, elija el nuevo secreto.

      Después de crear el nuevo proxy, elija Elegir un proxy existente y, a continuación, elija el proxy. Tenga en cuenta que el proxy puede tardar algún tiempo en estar disponible para la conexión.

  6. (Opcional) Amplíe Resumen de conexión y verifique las actualizaciones destacadas de sus recursos.

  7. Elija Set up (Configurar).

Visualización de los recursos de computación conectados

Puede utilizar la AWS Management Console para ver las funciones de Lambda que están conectadas a su clúster de base de datos. Los recursos que se muestran incluyen las conexiones de los recursos de computación que Amazon RDS configuró automáticamente.

Los recursos de computación de la lista no incluyen los que se conectan manualmente al clúster de base de datos. Por ejemplo, para permitir que un recurso de computación acceda manualmente a su clúster de base de datos puede añadir una regla al grupo de seguridad de la VPC asociado a la base de datos.

Para que la consola muestre una función de Lambda, se deben cumplir las siguientes condiciones:

  • El nombre del grupo de seguridad asociado al recurso de computación coincide con el patrón lambda-rds-nlambda-rdsproxy-n (donde n es un número).

  • El grupo de seguridad asociado al recurso de computación tiene una regla de salida con el rango de puertos establecido en el puerto utilizado por el clúster de base de datos o un proxy asociado. El destino de la regla de salida debe establecerse en un grupo de seguridad asociado al clúster de base de datos o un proxy asociado.

  • Si la configuración incluye un proxy, el nombre del grupo de seguridad adjunto al proxy asociado a la base de datos coincide con el patrón rdsproxy-lambda-n (donde n es un número).

  • El grupo de seguridad asociado a la función tiene una regla de salida con el rango de puertos establecido en el puerto utilizado por el clúster de base de datos o un proxy asociado. El destino debe establecerse en un grupo de seguridad asociado al clúster de base de datos o un proxy asociado.

Para ver los recursos de computación conectados automáticamente a un clúster de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Bases de datos y, a continuación, elija el clúster de base de datos.

  3. En la pestaña Conectividad y seguridad, consulte los recursos de computación en Recursos de computación conectados.