Applicazione Web - Architetture serverless multi-livello di AWS con Amazon API Gateway e AWS Lambda

Applicazione Web

Cloud AWS architecture diagram showing client interaction with various AWS servizi.

Pattern di architettura per applicazioni Web

Tabella 3 - Componenti dell'applicazione Web

Livello Componenti
Presentazione

L'applicazione front-end è costituita da tutti i contenuti statici (HTML, CSS, JavaScript e immagini) generati dalle utility React, come create-react-app. Amazon CloudFront ospita tutti questi oggetti. Quando viene utilizzata, l'applicazione Web scarica tutte le risorse sul browser e inizia ad essere eseguita da lì. L'applicazione Web si connette al back-end che esegue la chiamata alle API.

Logic (Logica)

Il livello logico è composto dalle funzioni Lambda con le API REST di API Gateway come front-end.

In questa architettura sono presenti più servizi esposti. Vi sono diverse funzioni Lambda, ognuna delle quali gestisce un aspetto diverso dell'applicazione. Le funzioni Lambda si trovano dietro API Gateway e sono accessibili tramite percorsi URL dell'API.

L'autenticazione degli utenti viene gestita tramite i pool di utenti di Amazon Cognito o i provider di utenti federati. API Gateway utilizza l'integrazione pronta all'uso con Amazon Cognito. Solo dopo che un utente è stato autenticato, il client riceverà un token JSON Web Token (JWT) che dovrà quindi utilizzare quando effettua le chiamate API.

A ciascuna funzione Lambda viene assegnato un ruolo IAM per fornire l'accesso all'origine dati appropriata.

Dati

In questo particolare esempio, DynamoDB viene utilizzato per l'archiviazione dati, ma è possibile utilizzare altri database o servizi di archiviazione Amazon appositamente creati a seconda del caso d'uso e dello scenario di utilizzo.