Existen muchos modos de manejar las sesiones de usuario en las aplicaciones web, que van desde solo cookies hasta bases de datos de claves/valores distribuidas, incluida la memoria en caché local del servidor. Almacenar los datos de la sesión en el servidor web que responde a determinada solicitud puede parecer práctico, que ya acceder a los datos no incurre en latencia de redes. La principal desventaja es que las solicitudes se deben dirigir cuidadosamente de manera que cada usuario interactúe con un servidor y solo con un servidor. Otra desventaja es que una vez que un servidor baja, todos los datos de la sesión también bajan. Una base de datos de claves/valores en la memoria distribuida puede solucionar ambos problemas al pagar un pequeño precio de una pequeña latencia de red. Almacenar todos los datos de la sesión en cookies en suficientemente bueno la mayoría de las veces; si planea almacenar datos confidenciales, es preferible utilizar sesiones del lado del servidor.

En este tutorial, aprenderá a utilizar Amazon ElastiCache for Redis como una memoria caché distribuida para la administración de sesiones. También aprenderá las prácticas recomendadas para configurar sus nodos ElastiCache y cómo manejar las sesiones desde su aplicación.

El nodo Amazon ElastiCache creado en este tutorial es apta para la capa gratuita de AWS.

Duración: 120 minutos

Costo: Apto para la capa gratuita

Casos de uso: almacenamiento de sesión, almacenamiento de caché de sesiones, alta disponibilidad, aplicación en tiempo real

Productos: Amazon ElastiCache for Redis, Capa gratuita de AWS, Amazon EC2

Público: desarrolladores

Nivel: principiante

Última actualización: 25 de julio de 2019

*En esta estimación se supone que usted sigue las configuraciones recomendadas a lo largo del tutorial y termina todos los recursos en 2 horas.

**Es posible que las cuentas que se hayan creado en las últimas 24 horas aún no tengan acceso a los recursos necesarios para este proyecto.

Tiempo de realización: 20 minutos

Este tutorial ilustra algunos mecanismos con ejemplos escritos en micromarcos Python y Flask para el desarrollo web. Se espera que el código sea fácil de traducir al idioma que elija.

Para completar este tutorial, necesita acceso a una instancia EC2. Si aún no tiene una en ejecución, siga estas instrucciones para aprovisionar una.

Asegúrese de que el grupo de seguridad de esa instancia permita conexiones TCP entrantes en el puerto 5000.

Una vez que tenga acceso a la instancia EC2, ejecute los siguientes comandos:

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

Esto iniciará una aplicación Flask en el puerto 5000. Si el servidor no informa ningún error, debería poder visitar la aplicación desde la línea de comando de su instancia EC2 con la siguiente línea:

syntax: shell

$ curl http://127.0.0.1:5000/

Si funciona, puede buscar la dirección de IP pública de su instancia de EC2 e intentar acceder a la aplicación web desde su computadora.

Sin requisitos previos

A fin de acceder a la aplicación desde su explorador, copie el nombre de DNS público de su instancia de EC2 y adjunte el número de puerto 5000. Por ejemplo, dada la dirección de la captura de pantalla, el URL sería http://ec2-54-175-201-152.compute-1.amazonaws.com:5000/.

Ya está todo listo para comenzar el tutorial.