Es gibt verschiedene Möglichkeiten, Benutzersitzungen in Webanwendungen zu verwalten, von Cookies allein bis hin zu verteilten Schlüssel-Werte-Datenbanken, einschließlich Caching auf dem lokalen Server. Die Speicherung von Sitzungsdaten auf dem Webserver, der auf eine vorgegebene Anfrage antwortet, mag praktisch erscheinen, da der Zugriff auf die Daten keine Netzwerk-Latenz verursacht. Der große Nachteil dabei ist, dass die Anfragen sorgfältig weitergeleitet werden müssen, so dass jeder Benutzer jeweils nur mit einem Server interagiert. Ein weiterer Nachteil besteht darin, dass sobald ein Server ausfällt, auch alle Sitzungsdaten verloren sind. Eine verteilte, in-Memory-Schlüssel-Werte-Datenbank kann beide Probleme lösen, wenn dafür eine minimale Netzwerk-Latenz in Kauf genommen wird. Die Speicherung aller Sitzungsdaten in Cookies reicht in den meisten Fällen aus; wenn Sie vorhaben, sensible Daten zu speichern, ist die Verwendung serverseitiger Sitzungen vorzuziehen.

Erfahren Sie in diesem Tutorial, wie Sie Amazon ElastiCache for Redis als verteilten Cache für die Sitzungsverwaltung verwenden. Sie lernen außerdem die bewährten Methoden für die Konfiguration Ihrer ElastiCache-Knoten kennen und erfahren, wie Sie die Sitzungen aus Ihrer Anwendung heraus verwalten.

Der Amazon ElastiCache-Knoten, der in diesem Tutorial erstellt wird, ist qualifiziert für das kostenlose Kontingent für AWS.

Zeit: 120 Minuten

Kosten: Kostenloses Kontingent verfügbar

Anwendungsfälle: Sitzungsspeicher-, Sitzungscaching-, Hochverfügbarkeits- und Echtzeitanwendungen

Produkte: Amazon ElastiCache for Redis, kostenloses Kontingent für AWS, Amazon EC2

Zielgruppe: Entwickler

Stufe: Einsteiger

Letzte Aktualisierung: 25. Juli 2019

*Diese Schätzung basiert auf der Annahme, dass Sie die im Tutorial empfohlenen Konfigurationen übernehmen und alle Ressourcen innerhalb von 2 Stunden beenden.

**Innerhalb der letzten 24 Stunden erstellte Konten haben möglicherweise noch keinen Zugriff auf alle für dieses Projekt erforderlichen Ressourcen.

Zeit bis Fertigstellung: 20 Minuten

Dieses Tutorial veranschaulicht einige Mechanismen anhand von Beispielen, die in Python und dem Flask-Mikroframework für Webentwicklung geschrieben wurden. Der Code sollte problemlos in die von Ihnen bevorzugte Programmiersprache überführt werden können.

Für die Bearbeitung dieses Tutorials benötigen Sie Zugriff auf eine EC2-Instance. Wenn Sie noch keine ausführen, können Sie mit diesenAnweisungen eine bereitstellen.

Stellen Sie sicher, dass die Sicherheitsgruppe dieser Instance eingehende TCP-Verbindungen auf Port 5000 zulässt.

Wenn Sie Zugriff auf eine EC2-Instance haben, führen Sie die folgenden Befehle aus:

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

Dadurch wird eine Flask-Anwendung auf Port 5000 gestartet. Wenn der Server keine Fehler meldet, sollten Sie die Anwendung von der Kommandozeile in Ihrer EC2-Instance mit der folgenden Befehlszeile aufrufen können:

syntax: shell

$ curl http://127.0.0.1:5000/

Wenn es klappt, können Sie nun die öffentliche IP-Adresse Ihrer EC2-Instance abrufen und versuchen, von Ihrem Computer aus auf die Webanwendung zuzugreifen.

Voraussetzung

Um von Ihrem Browser aus auf die Anwendung zuzugreifen, kopieren Sie den öffentlichen DNS-Namen Ihrer EC2-Instance und fügen Sie die Portnummer 5000 hinzu. Bei der Adresse im Screenshot würde die URL beispielsweise lauten: http://ec2-54-175-201-152.compute-1.amazonaws.com:5000/.

Nun kann das Tutorial beginnen.