Существует много способов управлять сеансами пользователей в веб-приложениях, от простых файлов cookie до распределенных баз данных для пар «ключ — значение», в том числе локальное кэширование на сервере. Сохранение данных сеансов на веб-сервере, который отвечает на конкретный запрос, может показаться удобным из-за отсутствия сетевых задержек при доступе к этим данным. Но основным недостатком здесь будет особая осторожность, которую придется соблюдать при маршрутизации запросов, чтобы каждый пользователь взаимодействовал только с одним и всегда с одним и тем же сервером. Еще один недостаток — утрата всех данных сеансов при отключении сервера. Распределенная база данных в памяти для пар «ключ — значение» позволяет решить обе эти проблемы, жертвуя лишь внесением небольшой сетевой задержки. Хранение всех данных сеансов в файлах cookie неплохо решает эту задачу в большинстве случаев, но данные сеансов лучше хранить в серверной части, если они могут быть конфиденциальными.
Узнайте, как использовать Amazon ElastiCache for Redis в качестве распределенного кэша для управления сеансами. Вы также получите рекомендации по настройке узлов ElastiCache и управлению сеансами для приложения.
Узел Amazon ElastiCache, создаваемый в этом учебном пособии, может использовать уровень бесплатного пользования AWS.
Время: 120 минут
Стоимость: доступно для уровня бесплатного пользования
Сценарии использования: хранилище сеансов, кэширование сеансов, обеспечение высокой доступности, приложения реального времени
Продукты: Amazon ElastiCache for Redis, уровень бесплатного пользования AWS, Amazon EC2
Целевая аудитория: разработчики
Уровень: начинающий
Последнее обновление: 25 июля 2019 г.
* Предполагается, что вы будете использовать рекомендуемые конфигурации на протяжении всего учебного курса и завершите работу всех ресурсов в течение 2 часов.
** Аккаунты, созданные в течение последних 24 часов, могут еще не иметь доступа к ресурсам, необходимым для выполнения этого проекта.
Время выполнения: 20 минут
Это учебное пособие демонстрирует ряд механизмов на конкретных примерах, созданных на языке Python и микроплатформе веб-разработки Flask. Мы надеемся, что у вас не возникнет проблем с переносом этого кода на любой другой язык.
Чтобы пройти обучение, вам потребуется доступ к инстансу EC2. Если у вас его еще нет, подготовьте его по этим инструкциям.
Убедитесь, что группа безопасности для этого инстанса допускает входящие TCP-подключения по порту 5000.
Обеспечив доступ к инстансу EC2, выполните следующие команды:
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
Это действие запускает приложение Flask на порту 5000. Если сервер не встретит никаких ошибок, вы сможете войти в приложение из командной строки на этом инстансе EC2, выполнив следующую командную строку:
syntax: shell
$ curl http://127.0.0.1:5000/
Если все пройдет нормально, вы сможете получить общедоступный IP-адрес инстанса EC2 и попытаться обратиться к веб-приложению с другого компьютера.

Чтобы открыть приложение в веб-браузере, скопируйте общедоступное DNS-имя используемого инстанса EC2 и добавьте к нему номер порта 5000. Например, для указанного на снимке экрана адреса будет использоваться следующий URL-адрес: «http://ec2-54-175-201-152.compute-1.amazonaws.com:5000/».
Теперь вы готовы приступить к работе с учебным пособием.