Amazon S3 — Le stockage objet qui propulse le cloud AWS (Partie 1)
- Published on
- Authors

- Name
- Sylvain BRUAS
- @sylvain_bruas
Amazon Simple Storage Service (S3) est le service de stockage objet d'AWS. Lancé en 2006, c'est l'un des tout premiers services AWS et il reste aujourd'hui la pierre angulaire de la majorité des architectures cloud. Que vous construisiez un data lake, hébergiez un site statique, stockiez des backups ou alimentiez un pipeline de machine learning, S3 est probablement impliqué quelque part dans votre infrastructure.
Mais S3 ne se résume pas à "un disque dans le cloud". Sa richesse fonctionnelle — classes de stockage, politiques de cycle de vie, réplication, event notifications, Object Lock — en fait un service à part entière qu'il faut maîtriser pour en tirer le meilleur parti sans exploser son budget.
Dans cette première partie, nous allons explorer S3 en profondeur : sa présentation, ses cas d'usage légitimes, et les situations où il ne faut pas l'utiliser. Dans la seconde partie, nous aborderons la sécurité, l'optimisation des coûts, les performances, et un exemple pratique complet avec du code infrastructure as code.
Présentation du service
Qu'est-ce qu'Amazon S3 ?
Amazon S3 est un service de stockage objet hautement disponible, durable et scalable. Contrairement à un système de fichiers classique (Amazon Elastic File System (EFS), Amazon Elastic Block Store (EBS)), S3 stocke des objets dans des buckets. Chaque objet est identifié par une clé unique (son chemin) et peut peser jusqu'à 5 To.
Les caractéristiques fondamentales :
- Durabilité : 99,999999999 % (11 neuf) — vos données sont répliquées sur au minimum 3 AZ
- Disponibilité : 99,99 % pour S3 Standard
- Scalabilité : aucune limite de capacité, pas de provisionnement
- Performance : 5 500 GET/s et 3 500 PUT/s par préfixe
- Sécurité : chiffrement côté serveur (SSE-S3, SSE-KMS, SSE-C), politiques de bucket, ACL, Block Public Access
- Intégration : plus de 200 services AWS s'intègrent nativement avec S3
Les concepts clés
| Concept | Description |
|---|---|
| Bucket | Conteneur de premier niveau. Nom globalement unique dans tout AWS. |
| Object | Fichier + métadonnées. Identifié par une clé (key). Max 5 To. |
| Key | Le chemin complet de l'objet dans le bucket (ex: logs/2026/09/access.log). |
| Version ID | Identifiant unique quand le versioning est activé. |
| Storage Class | Classe de stockage qui détermine le coût et la disponibilité. |
| Prefix | Partie de la clé avant le dernier /. Utilisé pour organiser et partitionner. |
Les classes de stockage
S3 propose plusieurs classes de stockage pour optimiser le rapport coût/accès :
| Classe | Cas d'usage | Disponibilité | Coût stockage |
|---|---|---|---|
| S3 Standard | Données fréquemment accédées | 99,99 % | $$$ |
| S3 Intelligent-Tiering | Patterns d'accès imprévisibles | 99,9 % | $$ (auto-optimisé) |
| S3 Standard-IA | Données peu accédées, accès rapide nécessaire | 99,9 % | $$ |
| S3 One Zone-IA | Données peu accédées, recréables | 99,5 % | $ |
| S3 Glacier Instant Retrieval | Archives avec accès immédiat rare | 99,9 % | $ |
| S3 Glacier Flexible Retrieval | Archives, retrieval en minutes/heures | 99,99 % | ¢ |
| S3 Glacier Deep Archive | Archives long terme (7-10 ans) | 99,99 % | ¢¢ |
Cas d'usage
1. Data Lake et Analytics
S3 est le socle naturel d'un data lake sur AWS. Sa capacité illimitée, son intégration native avec Amazon Athena, AWS Glue, Amazon Redshift Spectrum et Amazon EMR en font le choix par défaut pour stocker des données brutes, transformées et agrégées.
Architecture type :
Sources (IoT, Apps, Logs)
↓
Kinesis Data Firehose / Glue ETL
↓
S3 (Raw Zone → Curated Zone → Enriched Zone)
↓
Athena / Redshift Spectrum / QuickSight
Pourquoi S3 excelle ici :
- Format ouvert : Parquet, ORC, Avro, JSON, CSV — vous n'êtes pas enfermé dans un format propriétaire
- Partitionnement par préfixe :
s3://datalake/year=2026/month=09/day=07/permet à Athena de ne scanner que les partitions nécessaires - Coût : stocker 1 To en S3 Standard coûte ~23 $/mois, contre des centaines en base de données
- Découplage compute/storage : vous payez le stockage en permanence mais le compute uniquement à l'usage
2. Hébergement de site statique
S3 peut servir directement des fichiers HTML, CSS, JS et images via un endpoint HTTP. Couplé à Amazon CloudFront, c'est l'architecture la plus économique et performante pour un site statique.
Avantages :
- Coût quasi nul pour un site personnel (quelques centimes/mois)
- Scalabilité infinie — pas de serveur à gérer
- Combiné avec CloudFront : HTTPS, cache edge, compression automatique
- Déploiement simple :
aws s3 sync ./out s3://mon-bucket/
Limitations à connaître :
- Pas de server-side rendering (SSR) — uniquement des fichiers statiques
- Pas de réécriture d'URL native (mais CloudFront Functions peut compenser)
- Le bucket website endpoint ne supporte pas HTTPS nativement (d'où CloudFront)
3. Backup et Disaster Recovery
S3 est le standard de facto pour les backups AWS et on-premises :
- RDS automated backups → stockés dans S3
- EBS snapshots → stockés dans S3
- AWS Backup → centralise tout dans S3
- Veeam, Commvault, NetBackup → supportent S3 comme target
Stratégie de lifecycle recommandée :
Jour 0-30 : S3 Standard (accès fréquent pour restauration rapide)
Jour 30-90 : S3 Standard-IA (accès rare mais possible)
Jour 90-365: S3 Glacier Instant Retrieval
Jour 365+ : S3 Glacier Deep Archive
Jour 2555+ : Delete (rétention 7 ans respectée)
4. Distribution de contenu et médias
Pour les plateformes qui gèrent des assets (images, vidéos, PDFs, fichiers audio) :
- Upload direct depuis le client via presigned URLs (pas de proxy serveur)
- Transformation à la volée avec Lambda@Edge ou CloudFront Functions
- Versions multiples (thumbnails, HD, SD) générées par un pipeline événementiel
- S3 Transfer Acceleration pour les uploads depuis des régions éloignées
5. Logging et audit centralisé
Tous les services AWS peuvent écrire leurs logs dans S3 :
- AWS CloudTrail : logs d'API calls
- VPC Flow Logs : trafic réseau
- ALB/NLB Access Logs : requêtes HTTP
- CloudFront Access Logs : requêtes CDN
- S3 Server Access Logs : accès au bucket lui-même
Centraliser ces logs dans un bucket dédié avec des lifecycle policies permet de garder des années d'historique à moindre coût tout en restant conforme (RGPD, SOC2, ISO 27001).
6. Machine Learning — Stockage de datasets
Les frameworks ML (Amazon SageMaker, Amazon Bedrock) lisent et écrivent directement depuis/vers S3 :
- Datasets d'entraînement (images, textes, CSV)
- Modèles entraînés (artefacts .tar.gz)
- Résultats d'inférence batch
- Feature store offline
S3 Select et S3 Object Lambda permettent de filtrer les données côté serveur avant transfert, réduisant les coûts réseau.
7. Software artifacts et CI/CD
S3 stocke les artefacts de build pour les pipelines CI/CD :
- CodePipeline : artefacts entre stages
- CodeBuild : cache de build, outputs
- Lambda : packages de déploiement (.zip)
- CloudFormation : templates et nested stacks
- Terraform : state files (avec DynamoDB pour le locking)
Quand NE PAS utiliser Amazon S3
1. Système de fichiers POSIX
Le problème : S3 n'est PAS un système de fichiers. Il n'y a pas de lock, pas de append atomique, pas de permissions POSIX, pas de liens symboliques, pas de rename atomique.
Symptômes : Vous essayez de monter S3 comme un disque (s3fs, goofys) pour une application legacy qui fait du random read/write. Les performances sont catastrophiques et les données se corrompent.
Alternative : Amazon EFS (NFS managé) ou Amazon FSx (Lustre, NetApp, Windows File Server).
2. Base de données ou stockage transactionnel
Le problème : S3 a une latence de 50-100ms pour un GET. Il n'y a pas de requêtes SQL, pas de transactions ACID, pas d'index.
Symptômes : Vous stockez des millions de petits fichiers JSON de 1 Ko et vous faites des milliers de GET/s pour reconstituer un état applicatif.
Alternative : Amazon DynamoDB (key-value), RDS/Aurora (relationnel), Amazon ElastiCache (cache sub-milliseconde).
3. Stockage temporaire à haute fréquence
Le problème : Si vous écrivez et lisez le même objet des dizaines de fois par seconde, S3 n'est pas adapté. La latence et les coûts par requête (PUT à 0,005 $/1000 requêtes) s'accumulent.
Symptômes : Un cache applicatif, des sessions utilisateur, un compteur temps réel.
Alternative : ElastiCache (Redis/Valkey), DynamoDB avec DAX, MemoryDB.
4. Streaming vidéo en direct
Le problème : S3 ne supporte pas le streaming adaptatif en temps réel. Il peut stocker les segments HLS/DASH mais ne peut pas faire l'encodage et la distribution en live.
Symptômes : Vous essayez de faire du live streaming en écrivant des segments dans S3 avec une latence acceptable.
Alternative : AWS Elemental MediaLive + MediaPackage + CloudFront.
5. Données qui nécessitent un accès sub-milliseconde
Le problème : Même avec S3 Express One Zone (~1ms), vous ne descendrez jamais en dessous de la milliseconde de manière consistante.
Symptômes : Votre application a besoin de lire des données en 1ms pour chaque requête utilisateur.
Alternative : ElastiCache, MemoryDB, DynamoDB DAX, ou même EBS io2 Block Express pour du stockage block ultra-rapide.
6. Partage de fichiers interactif (comme un NAS)
Le problème : Les utilisateurs veulent naviguer dans des dossiers, faire du drag & drop, verrouiller des fichiers pour l'édition collaborative.
Symptômes : Vous construisez un "Google Drive maison" directement sur S3 sans couche applicative.
Alternative : Amazon WorkDocs, FSx for Windows, ou une solution tierce (NextCloud sur EC2).
7. Stockage de secrets ou credentials
Le problème : Même chiffré, un fichier dans S3 contenant des mots de passe ou des clés API n'offre pas les garanties de rotation automatique, d'audit granulaire et de contrôle d'accès fin nécessaires.
Symptômes : Vous stockez un fichier secrets.json dans un bucket et vos applications le lisent au démarrage.
Alternative : AWS Secrets Manager (rotation automatique), AWS Systems Manager Parameter Store (gratuit pour les paramètres simples).
La suite
Dans la seconde partie de cet article, nous aborderons :
- Les bonnes pratiques de sécurité (Block Public Access, chiffrement, bucket policies)
- L'optimisation des coûts (lifecycle policies, Intelligent-Tiering, Storage Lens)
- Les performances et l'optimisation (partitionnement, multipart upload, Transfer Acceleration)
- L'architecture événementielle avec S3
- Un exemple pratique complet avec Terraform
- Le monitoring et les alertes
- La tarification détaillée et une FAQ

