Objectif
Dans ce lab, nous allons apprendre à utiliser les règles de cycle de vie S3 (S3 Lifecycle Policies) pour automatiser la gestion des objets stockés dans un bucket Amazon S3. Nous allons configurer une règle qui :
✅ Transitionne les objets vers une classe de stockage moins coûteuse après un certain délai.
✅ Supprime les objets après une période définie.
Architecture du Lab
Nous allons :
- Créer un bucket S3.
- Mettre en place une règle de cycle de vie pour :
- Déplacer les objets vers S3 Standard-IA après 30 jours.
- Déplacer les objets vers S3 Glacier après 60 jours.
- Supprimer les objets après 90 jours.
Tester la règle en téléchargeant un fichier et en simulant l’évolution du temps.
Étape 1 : Créer un Bucket S3
📌 Via la Console AWS :
- Accéder à la console AWS S3 : AWS S3 Console
- Cliquer sur “Créer un bucket”.
- Renseigner un nom unique (ex: mon-lab-s3-lifecycle).
- Choisir une région AWS (ex: us-east-1).
- Désactiver le Blocage de l’accès public (facultatif pour ce lab).
- Cliquer sur “Créer un bucket”.
📌 Via AWS CLI :
aws s3api create-bucket --bucket mon-lab-s3-lifecycle --region us-east-1 --create-bucket-configuration LocationConstraint=us-east-1
Étape 2 : Télécharger des fichiers dans le Bucket
Ajoutons un fichier de test :
📌 Via AWS CLI :
echo "Ceci est un fichier de test" > test-file.txt
aws s3 cp test-file.txt s3://mon-lab-s3-lifecycle/
Étape 3 : Créer une Règle de Cycle de Vie
📌 Via la Console AWS :
- Aller sur S3 > Votre bucket > Gestion > Configuration du cycle de vie.
- Cliquer sur “Créer une règle de cycle de vie”.
- Nommer la règle : LifecycleRule-Test.
- Filtrage : Appliquer à tous les objets du bucket.
- Ajouter une transition :
- Après 30 jours : S3 Standard-IA
- Après 60 jours : S3 Glacier
- Ajouter une expiration :
- Supprimer les objets après 90 jours.
- Enregistrer la règle.
📌 Via AWS CLI (JSON Policy)
Crée un fichier lifecycle-policy.json :
{
"Rules": [
{
"ID": "TransitionToStandardIA",
"Status": "Enabled",
"Prefix": "",
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 60,
"StorageClass": "GLACIER"
}
],
"Expiration": {
"Days": 90
}
}
]
}
Applique la policy avec :
aws s3api put-bucket-lifecycle-configuration --bucket mon-lab-s3-lifecycle --lifecycle-configuration file://lifecycle-policy.json
Étape 4 : Tester la Règle (Simulation)
🔍 Vérifier la politique appliquée
aws s3api get-bucket-lifecycle-configuration --bucket mon-lab-s3-lifecycle
⏳ Simuler l’évolution du temps (via AWS CLI)
Comme on ne peut pas accélérer le temps, voici comment vérifier les classes de stockage au fil du temps :
aws s3api head-object --bucket mon-lab-s3-lifecycle --key test-file.txt --query "StorageClass"
🚀 Astuce : On peut utiliser Amazon S3 Batch Operations pour tester des règles sur un grand nombre d’objets.
Étape 5 : Nettoyer les ressources
Supprime le bucket et son contenu :
aws s3 rb s3://mon-lab-s3-lifecycle --force
Conclusion
✔️ Nous avons appris à créer une règle de cycle de vie S3 pour gérer le stockage automatiquement.
✔️ Nous avons configuré une transition entre différentes classes de stockage et une expiration des objets.
✔️ Nous avons exploré comment tester et vérifier la politique appliquée.