Esistono molti modi per gestire le sessioni utente nelle applicazioni Web, che vanno dai soli cookie ai database chiave/valore distribuiti, compresa la memorizzazione nella cache locale del server. La memorizzazione dei dati della sessione nel server Web che risponde a una determinata richiesta può sembrare conveniente, poiché l'accesso ai dati non comporta latenza di rete. Lo svantaggio principale è che le richieste devono essere instradate attentamente in modo che ogni utente interagisca con un solo server. Un altro svantaggio è che quando un server si arresta, anche tutti i dati della sessione scompaiono. Un database chiave/valore distribuito in memoria può risolvere entrambi i problemi pagando il piccolo prezzo di una latenza di rete minuscola. La memorizzazione di tutti i dati della sessione nei cookie è abbastanza adeguata per la maggior parte del tempo; se si prevede di archiviare dati riservati, allora è preferibile utilizzare sessioni lato server.

In questo tutorial scoprirai come utilizzare Amazon ElastiCache for Redis come cache distribuita per la gestione delle sessioni. Scoprirai inoltre le best practice per la configurazione dei nodi ElastiCache e come gestire le sessioni dall'applicazione.

Il nodo Amazon ElastiCache creato in questo tutorial è idoneo per il piano gratuito di AWS.

Tempo necessario per il completamento: 120 minuti

Costo: idoneo per il piano gratuito

Casi d'uso: archivio di sessioni, caching di sessioni, alta disponibilità, applicazione in tempo reale

Prodotti: Amazon ElastiCache for Redis, piano gratuito di AWS e Amazon EC2

Destinatari: sviluppatori

Livello: principiante

Ultimo aggiornamento: 25 luglio 2019

*Questa stima presuppone il rispetto delle configurazioni consigliate durante il tutorial e la terminazione di tutte le risorse entro 2 ore.

**Gli account creati nelle ultime 24 ore potrebbero non avere ancora accesso a tutte le risorse necessarie per questo progetto.

Tempo richiesto per il completamento: 20 minuti

Questo tutorial illustra alcuni meccanismi con esempi scritti in Python e il microframe Flask per lo sviluppo web. Auspicabilmente sarà facile tradurre il codice nel linguaggio da te scelto.

Per completare questo tutorial è necessario accedere a un'istanza EC2. Se non ne hai già una in esecuzione, segui queste istruzioni per assegnarne una.

Assicurati che il gruppo di sicurezza di tale istanza consenta connessioni TCP in entrata sulla porta 5000.

Una volta che hai accesso all'istanza EC2, esegui i seguenti comandi:

sintassi: shell

$ sudo yum install git
$ sudo yum install python3
$ sudo pip3 install virtualenv
$ git clone https://github.com/aws-samples/amazon-elasticache-samples/
$ cd amazon-elasticache-samples/session-store
$ virtualenv venv
$ source ./venv/bin/activate
$ pip3 install -r requirements.txt
$ export FLASK_APP=example-1.py
$ export SECRET_KEY=some_secret_string
$ flask run -h 0.0.0.0 -p 5000 --reload

Ciò avvierà un'applicazione Flask sulla porta 5000. Se il server non segnala alcun errore, dovresti essere in grado di visitare l'applicazione dalla riga di comando nell'istanza EC2 con la seguente riga:

sintassi: shell

$ curl http://127.0.0.1:5000/

Se funziona, ora puoi recuperare l'indirizzo IP pubblico dell'istanza EC2 e provare ad accedere all'applicazione Web dal computer.

Prerequisito

Per accedere all'applicazione dal browser, copia il nome DNS pubblico dell'istanza EC2 e aggiungi il numero di porta 5000. Ad esempio, dato l'indirizzo nella schermata, l'URL sarebbe http://ec2-54-175-201-152.compute-1.amazonaws.com:5000/.

Ora sei pronto per iniziare il tutorial.