Aplicación web - Arquitecturas de varios niveles sin servidor de AWS con Amazon API Gateway y AWS Lambda

Aplicación web

Nube de AWS architecture diagram showing client interaction with various Servicios de AWS.

Patrón arquitectónico de aplicación web

Tabla 3: Componentes de aplicaciones web

Nivel Componentes
Presentación

La aplicación frontend es todo contenido estático (HTML, CSS, JavaScript e imágenes) generado por las utilidades de React como create-react-app. Amazon CloudFront aloja todos estos objetos. La aplicación web, cuando se usa, descarga todos los recursos en el navegador y comienza a ejecutarse desde allí. La aplicación web se conecta al backend y llama a las API.

Lógico

El nivel lógica se construye con funciones de Lambda encabezadas por las API REST de API Gateway.

Esta arquitectura muestra varios servicios expuestos. Hay varias funciones de Lambda diferentes, cada una de las cuales maneja un aspecto diferente de la aplicación. Las funciones de Lambda están detrás de API Gateway y se puede acceder a ellas mediante rutas de URL.

La autenticación de usuarios se maneja mediante grupos de usuarios de Amazon Cognito o proveedores de usuarios federados. API Gateway utiliza la integración inmediata con Amazon Cognito. Solo después de autenticar a un usuario, el cliente recibirá un token JSON Web Token (JWT) que debe usar al realizar las llamadas a la API.

A cada función de Lambda se le asigna su propio rol de IAM para proporcionar acceso al origen de datos adecuado.

Datos

En este ejemplo concreto, DynamoDB se usa para el almacenamiento de datos, pero se pueden usar otros servicios de almacenamiento o bases de datos de Amazon especialmente diseñados según el caso de uso y el escenario de uso.