Creación de aplicaciones sin servidor

con Amazon Aurora Serverless

Amazon Aurora es una base de datos relacional compatible con MySQL y PostgreSQL que combina el rendimiento y la disponibilidad de las bases de datos empresariales tradicionales con la simplicidad y rentabilidad de las bases de datos de código abierto. Amazon Aurora Serverless es una configuración de escalado automático bajo demanda para Amazon Aurora (ediciones compatibles con MySQL y PostgreSQL) en la que la base de datos se inicia, se cierra y escala automáticamente la capacidad en función de las necesidades de la aplicación. Le permite ejecutar su base de datos en la nube, sin necesidad de administrar ninguna instancia de base de datos. Ofrece una opción rentable y simple para las cargas de trabajo poco frecuentes, intermitentes o impredecibles.

En este tutorial, aprenderá cómo crear una aplicación de procesamiento de mensajes sin servidor con Amazon Aurora Serverless (PostgreSQL-edición compatible), Data API for Aurora Serverless, Amazon Lambda, y Amazon Simple Notification Service (SNS). El tutorial proporcionará instrucciones paso a paso para crear una base de datos Aurora Serverless, use API de Data para conectarla con una función Amazon Lambda que consume mensajes de Amazon SNS y almacena mensajes en la base de datos de Aurora Serverless.

Acerca de este tutorial
Duración 10 a 20 minutos      
Costo Menos de 1 USD
Caso de uso Bases de datos
Productos Amazon Aurora, Amazon SNS, AWS Lambda
Nivel 100
Última actualización 24 de septiembre de 2019

Paso 1: Crear una base de datos Aurora Serverless

1.1 — Abra un navegador y diríjase a la Consola de Amazon RDS. Si ya tiene una cuenta de AWS, inicie sesión en la consola. De lo contrario, cree una nueva cuenta de AWS para comenzar.

1.2 — En la esquina superior derecha, seleccione la región donde desea iniciar el clúster de la base de datos de Aurora.

1.3 — Haga clic en “Crear base de datos” en la ventana de Amazon Aurora.

Antes de continuar, cambie al nuevo flujo de creación de base de datos:

Opciones del motor

1.4 — En el motor de base de datos, seleccione “Amazon Aurora”.

1.5 — Para la edición, seleccione “Amazon Aurora con compatibilidad con PostgreSQL”.

Características de la base de datos

1.6 — Seleccione "Sin servidor".

Configuración

1.7 — Elija un identificador para su clúster de la base de datos de Aurora, por ejemplo “base de datos-1”.

Configuración de las credenciales

1.8 — Seleccione un nombre de usuario y una contraseña para la base de datos.

Ajustes de capacidad

1.9 — Para unidad de capacidad máxima de Aurora, seleccione 2.

Conectividad

1.10 — Seleccione la VPC donde desee crear la base de datos.

Tenga en cuenta que una vez creada la base de datos, no se puede migrar a una VPC diferente.

1.11 — Haga clic en “Configuración adicional de conectividad”.

1.12 — Seleccione el valor predeterminado para Grupo de subred.

1.13 — En grupo de seguridad de la VPC, seleccione “Crear nuevo”. Si tiene un grupo de seguridad que permite conexiones TCP entrantes en el puerto 3306, puede elegirlo.

1.14 — En el nuevo nombre del grupo de seguridad de la VPC, escriba “aurora-tutorial”.

1.15 — Habilite la API de datos.

Configuración adicional

1.16 — En “Protección ante eliminaciones” desactive “Activar protección ante eliminaciones”.

La práctica recomendada es habilitar la protección ante eliminaciones, pero si desea eliminar la base de datos al final del tutorial, puede dejar la opción sin marcar.

Revise y cree

Después de una revisión rápida de todos los campos del formulario, puede continuar.

1.17 — Haga clic en “Crear una base de datos”.

Mientras se crean las instancias, verá un cartel que explica cómo obtener sus credenciales. Esta es una buena oportunidad para guardar las credenciales en algún lugar, ya que esta es la única vez que podrá ver esta contraseña.

Recupere el ARN del clúster

1.18 — Haga clic en el nombre de la base de datos.

1.19 — En la pestaña “Configuración”, copie el ARN del clúster y manténgalo a mano. La necesitará más tarde.

Conéctese a la base de datos

1.20 — Abra el panel izquierdo y haga clic en “Editor de consultas”.

1.21 — Seleccione “database-1”, escriba “postgres” como nombre de usuario de la base de datos e ingrese la contraseña de la base de datos que creó anteriormente, luego escriba “postgres” como nombre de la base de datos.

1.22 — Haga clic en “Conectarse a la base de datos”.

1.23 — Ahora puede hacer clic en “Ejecutar” y hacer funcionar la consulta de muestra.

1.24 — Crear una base de datos ejecutando la siguiente consulta:

Tutorial para CREAR LA BASE DE DATOS;

1.25 — Haga clic en “Cambiar base de datos”.

1.26 — Cambie la base de datos a la que ha creado.

1.27 — Crear una tabla con esta consulta:

CREATE TABLE sample_table(received_at TIMESTAMP, message VARCHAR(255));

Al conectar la base de datos con el Editor de consulta, se crea un secreto que usará más tarde en su función de Lambda. Deje esta pestaña abierta, ya que deberá ejecutar algunas consultas al final del tutorial.

Copie el ARN secreto

Abra la nueva pestaña y escuche el AWS Secrets Manager. Luego, siga los pasos a continuación para recuperar el ARN secreto. 

1.28 — Encuentre el secreto que contiene las “credenciales postgres de la base de datos RDS para database-1”.

1.29 — Después de hacer clic en el nombre secreto, copie el ARN secreto y manténgalo a mano.

Paso 2: Crear un entorno de AWS Cloud9

Abra la nueva pestaña y vaya a la consola de AWS Cloud9. Luego siga los pasos a continuación para crear un nuevo entorno. 

2.1 — Haga clic en “Crear entorno”:

2.2 — Ingrese un nombre para su nuevo entorno y haga clic en “Siguiente paso”.

2.3 — Desplácese hacia abajo y haga clic en “Siguiente paso”.

2.4 — Haga clic en “Crear entorno”.

2.5 — Una vez que el entorno está listo, haga clic en “Crear la función Lambda”.

2.6 — Como nombre de la función, ingrese “auroratest”. Haga clic en “Siguiente”.

2.7 — Seleccione el proyecto “empty-python” y haga clic en “Siguiente”.

2.8 — En las siguientes pantallas, haga clic en “Siguiente”, “Siguiente”, luego “Terminar”.

Ahora el entorno está listo y verá un proyecto para una función Lambda.

Antes de comenzar la codificación debe configurar ciertos permisos tal como se describe en el Paso 3. Mantenga este entorno abierto y use otras pestañas para completar los próximos pasos.

Paso 3: Configurar permisos

Abra la nueva pestaña y vaya a la consola de IAM de AWS. Luego siga los pasos a continuación para asignar permisos a su función Lambda.

3.1 — Haga clic en “Roles” y busque un rol que comience con “cloud9-”.

3.2 — Haga clic en el nombre del rol, luego haga clic en “Adjuntar políticas”.

3.3 — Seleccione la política “AmazonRDSDataFullAccess“, luego haga clic en “Adjuntar política”.

Verá una pantalla con un cartel verde claro que explica que la política se adjuntó de manera satisfactoria.

Paso 4: Crear sus funciones de AWS Lambda

Vuelva al entorno Cloud9 que creó en el paso 2, luego siga las instrucciones a continuación.

4.1 — Vaya al directorio auroratest ejecutando este comando en la consola:

$ cd auroratest

4.2 — Instale la dependencia boto3 ejecutando este comando en la consola:

$ pip install boto3 -t boto3

4.3 — Elimine el código del archivo lambda_function y en su lugar copie este código de muestra.

4.4 — Sustituya los valores cluster_arn y secret_arn con los valores de ARN de clúster y ARN secreto obtenidos en los pasos anteriores.

4.5 — Haga clic en “Archivo > Guardar”, luego seleccione su función Lambda en el panel derecho.

4.6 — Implemente su función Lambda haciendo clic en la flecha hacia arriba.

Paso 5: Crear un tema sobre Amazon SNS

Su función Lambda procesará mensajes de Amazon Simple Notification Service (SNS), lo que ofrece mensajería de publicación/suscripción para aplicaciones sin servidor y de microservicios.

En la nueva pestaña, visite al Panel SNS y siga estas instrucciones:

5.1 — En “Nombre de tema” ingrese aurora-lambda-sns-test, luego haga clic en “Siguiente paso”.

5.2 — Deje todos los valores predeterminados y haga clic en “Crear tema”.

Verá un cartel verde que indica que el tema se creó satisfactoriamente.

5.3 — Copie el ARN de SNS y manténgalo a mano.

Mantenga esta pestaña abierta, ya que la usará para publicar un mensaje una vez configurada la función Lambda para que lea del tema que usted creó.

Paso 6: Suscribir la función AWS Lambda para el tema Amazon SNS

Vaya a la consola de administración de AWS Lambda y siga estas instrucciones:

6.1 — Haga clic en el nombre de la función Lambda que creó en el paso 4.

6.2 — Haga clic en “Agregar desencadenante”.

6.3 — Escriba “SNS” y seleccione los servicios “SNS” desde el menú desplegable.

6.4 — En el campo “Tema de SNS”, ingrese el ARN de SNS.

6.5 — Habilite el desencadenante y haga clic en “Agregar”.

Paso 7: Publique el mensaje de prueba

Vuelva al Panel SNS y siga estas instrucciones:

7.1 — Haga clic en ”Publicar mensaje”.

7.2 — Ingrese cualquier valor para el campo “Sujeto”.

7.3 — Ingrese cualquier valor para el campo “Cuerpo”.

7.4 — Desplácese hacia abajo y haga clic en “Publicar mensaje”.

Una vez que se publique el mensaje, su función de Lambda lo consumirá y lo procesará. En la siguiente sección, verificará cómo se escribieron los datos en su base de datos Aurora.

Verifique los cambios de la base de datos

7.5 — Vaya a la pestaña donde dejó abierto el Editor de consulta. Si lo cerró, visite el Panel RDS y conéctelo al Editor de consulta según se explicó en 1.20.

7.6 — Conéctese a la base de datos del “tutorial”.

7.7 — Seleccione todos los registros de sample_table:

SELECT * FROM sample_table;

7.8 — Haga clic en “Ejecutar” y desplácese para ver los resultados.

Todos deberían estar funcionando ahora. Puede experimentar cambiando los mensajes que envió a través de SNS, o puede alterar la función lambda_handler de la forma en que desee.

Paso 8: Limpiar

Para terminar este tutorial, aprenderá cómo eliminar su clúster de base de datos Aurora cuando ya no lo necesite, junto con la función Lambda, el entorno Cloud9, el secreto para conectarse a la base de datos y cualquier otro resto.

Elimine su función Lambda

8.1 — Vaya a la consola de administración de AWS Lambda y seleccione su función Lambda.

8.2 — Haga clic en “Acciones > Eliminar”.

Elimine su tema SNS

8.3 — Visite el Panel SNS y haga clic en “Temas” en el panel de la izquierda.

8.4 — Seleccione el tema que creó en el Paso 5 y haga clic en “Eliminar”.

8.5 — Se le solicitará una confirmación. Escriba “eliminarme” y haga clic en “Eliminar”.

Elimine su entorno Cloud9

8.6 — Diríjase a la consola AWS Cloud9 y seleccione el entorno que creó para este tutorial.

8.7 — Haga clic en “Eliminar”.

8.8 — Cuando le pida confirmación, escriba “Eliminar” y haga clic en el botón “Eliminar”.

Eliminar una base de datos Aurora Serverless

8.9 — Diríjase a la consola RDS de Amazon y seleccione la base de datos que creó para este tutorial.

8.10 — Haga clic en “Acciones > Eliminar”.

Se le preguntará si desea crear una instantánea final. Suele ser una buena idea, pero no es necesario para este tutorial.

8.11 — Cuando le solicite una confirmación, seleccione “No” en la pregunta sobre si desea tomar una instantánea final. Luego active “Yo declaro...” y haga clic en “Eliminar clúster de base de datos”.

Elimine su secreto

8.12 — Vaya a AWS Secrets Manager, encuentre el secreto que contiene las “credenciales de administración de base de datos de RDS para database-1”, y haga clic en el nombre del secreto.

8.13 — Haga clic en “Acciones > Eliminar secreto”.

8.14 — Estos secretos no se pueden eliminar de inmediato. El período de espera mínimo para una eliminación programada es de 7 días. Seleccione 7 días y haga clic en “Programar eliminación”.

Elimine su rol de IAM

8.15 — Vaya a la consola de IAM de AWS. Haga clic en “Roles” y busque un rol que comience con “cloud9-”.

8.16 — Seleccione el rol y haga clic en “Eliminar rol”.

8.17 — Cuando se le pida confirmación, haga clic en “Sí, eliminar”.

Felicitaciones

Ha creado una base de datos Aurora Serverless y conéctela con una función AWS Lambda a través de la API de datos de Aurora. Configuró Amazon Simple Notification Service (SNS) como desencadenante para su función Lambda, y los mensajes que envió a través de SNS se procesaron y almacenaron en su base de datos Aurora Serverless.

¿Le resultó útil este tutorial?

Gracias
Indíquenos lo que le gustó.
Lamentamos haberlo decepcionado
¿Hay información desactualizada, confusa o inexacta? Ayúdenos a mejorar este tutorial con sus comentarios.

Más información sobre las características de Amazon Aurora

Obtenga más información sobre las características de Amazon Aurora en la Guía del usuario de Amazon Aurora.

Prácticas recomendadas para Amazon Aurora

Conozca las prácticas recomendadas y opciones generales para usar o migrar datos a un clúster de base de datos de Amazon Aurora.

Obtenga más información sobre Serveless

Si desea conocer más sobre las aplicaciones sin servidor, verifique la documentación de AWS Lambda, así como la Guía de usuario para Aurora.