Objectif
Ce lab vous guide dans la mise en place d’un cluster Amazon ElastiCache for Redis et son utilisation avec une application Python. Vous apprendrez à :
- Créer un cluster ElastiCache (Redis).
- Déployer une application Flask qui utilise Redis pour stocker des données en cache.
- Tester l’application pour observer l’amélioration des performances.
1. Architecture du Lab
- Une instance EC2 exécutant une application Flask.
- Un cluster ElastiCache for Redis pour la mise en cache.
- L’application Flask interagit avec Redis pour stocker et récupérer des données.
2. Étapes du Déploiement
1. Déploiement d’ElastiCache (Redis)
1.1. Créer un Cluster ElastiCache
- Allez sur AWS Management Console > Amazon ElastiCache.
- Cliquez sur Create Cluster et choisissez Redis.
- Configuration :
- Nom : cache-demo
- Type : Cluster Mode Disabled
- Instance Type : cache.t2.micro
- Nombre de nœuds : 1
- VPC : Sélectionnez un VPC existant
- Security Group : Autoriser les connexions depuis l’instance EC2
- Lancez la création du cluster et notez l’Endpoint Redis une fois le cluster actif.
2. Déploiement d’une Instance EC2
- Allez dans EC2 > Instances > Create Instance.
- AMI : Amazon Linux 2
- Type : t2.micro
- Security Group :
- Autoriser SSH (22) pour se connecter.
- Autoriser HTTP (80) pour l’application web.
- Autoriser Redis (6379) pour l’accès au cache depuis cette instance uniquement.
Lancez l’instance et connectez-vous en SSH :
ssh -i votre-cle.pem ec2-user@
3. Installer les Dépendances
Mettez à jour le système :
sudo yum update -y
Installez Python et Pip :
sudo yum install python3 -y
sudo pip3 install flask redis
Vérifiez la connexion Redis :
telnet 6379
Si la connexion fonctionne, Redis est accessible.
4. Déployer l’Application Flask avec Redis
4.1. Créer l’Application
Créez un fichier app.py :
from flask import Flask
import redis
import os
app = Flask(__name__)
# Connexion à Redis
redis_host = ""
redis_port = 6379
cache = redis.StrictRedis(host=redis_host, port=redis_port, decode_responses=True)
@app.route("/")
def index():
count = cache.incr("visits") # Incrémenter le compteur de visites
return f"Nombre de visites : {count}"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=80)
Lancez l’application :
sudo python3 app.py
5. Tester l’Application
Ouvrez un navigateur et accédez à l’adresse : http://<public-ip-ec2>/
Rechargez plusieurs fois la page, vous verrez le compteur de visites augmenter, prouvant que Redis stocke et met à jour les données.
6. Nettoyer les Ressources
- Supprimez l’instance EC2.
Supprimez le cluster ElastiCache.