Il existe de nombreuses façons de gérer les sessions des utilisateurs dans les applications web, allant des cookies uniquement aux bases de données de clés/valeurs distribuées, y compris la mise en cache locale sur un serveur. Le stockage des données de session dans le serveur web répondant à une demande donnée peut sembler pratique, car l’accès aux données n’entraîne aucune latence du réseau. Le principal inconvénient est que les demandes doivent être acheminées avec soin de manière à ce que chaque utilisateur interagisse avec un seul et unique serveur. Un autre inconvénient est qu’une fois qu’un serveur tombe en panne, toutes les données de session disparaissent également. Une base de données distribuée de clés/valeurs en mémoire peut résoudre ces deux problèmes en payant le petit prix d’une minuscule latence du réseau. Le stockage de toutes les données de session dans des cookies est suffisant la plupart du temps ; si vous prévoyez de stocker des données sensibles, il est préférable d’utiliser des sessions côté serveur.

Dans ce didacticiel, vous apprendrez comment utiliser Amazon ElastiCache for Redis en tant que cache distribué pour la gestion des sessions. Vous apprendrez également les meilleures pratiques pour configurer vos nœuds ElastiCache et comment gérer les sessions à partir de votre application.

Le nœud Amazon ElastiCache créé dans ce didacticiel est admissible à l’offre gratuite AWS.

Durée : 120 minutes

Coût :Admissible à l’offre gratuite

Cas d’utilisation : Magasin de sessions, Mise en cache de la session, haute disponibilité, application en temps réel

Produits : Amazon ElastiCache pour Redis, AWS Free Tier, Amazon EC2

Public : Développeurs

Niveau : Débutant

Dernière mise à jour : 25 juillet 2019

*Cette estimation suppose que vous suiviez les configurations recommandées dans le tutoriel et exploitiez toutes les ressources dans les 2 heures.

**Les comptes créés dans les dernières 24 heures sont susceptibles de ne pas encore avoir accès aux ressources nécessaires pour ce projet.

Temps nécessaire : 20 minutes

Ce didacticiel illustre certains mécanismes à l’aide d’exemples écrits en langage Python et de la microstructure Flask pour le développement web. Nous espérons que le code sera facile à traduire dans le langage de votre choix.

Vous devez avoir accès à une instance EC2 pour pouvoir suivre ce tutoriel. Si vous n’en avez pas déjà un en cours, suivez ces instructions pour la première disposition.

Rassurez-vous que le groupe de sécurité de cette instance autorise les connexions TCP entrantes sur le port 5000.

Une fois que vous avez accès à votre instance EC2, exécutez les commandes suivantes :

syntaxe : 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

Cela permettra de lancer une application Flask sur le port 5000. Si le serveur ne signale aucune erreur, vous devriez pouvoir visiter l’application à partir de la ligne de commande de votre instance EC2 avec la ligne suivante :

syntaxe : shell

$ curl http://127.0.0.1:5000/

Si cela fonctionne, vous pouvez maintenant récupérer l’adresse IP publique de votre instance EC2 et essayer d’accéder à l’application web depuis votre ordinateur.

Condition préalable

Afin d’accéder à l’application depuis votre navigateur, copiez le nom DNS public de votre instance EC2 et ajoutez le numéro de port 5000. Par exemple, compte tenu de l’adresse indiquée dans la capture d’écran, l'URL serait http://ec2-54-175-201-152.compute-1.amazonaws.com:5000/.

Vous êtes maintenant prêt à commencer le didacticiel.