Logo Teamwork

Amazon S3 — Le stockage objet qui propulse le cloud AWS (Partie 1)

Published on
Authors
Version audio
Chargement...
Amazon S3 — Le stockage objet qui propulse le cloud AWS - Guide 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

ConceptDescription
BucketConteneur de premier niveau. Nom globalement unique dans tout AWS.
ObjectFichier + métadonnées. Identifié par une clé (key). Max 5 To.
KeyLe chemin complet de l'objet dans le bucket (ex: logs/2026/09/access.log).
Version IDIdentifiant unique quand le versioning est activé.
Storage ClassClasse de stockage qui détermine le coût et la disponibilité.
PrefixPartie 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 :

ClasseCas d'usageDisponibilitéCoût stockage
S3 StandardDonnées fréquemment accédées99,99 %$$$
S3 Intelligent-TieringPatterns d'accès imprévisibles99,9 %$$ (auto-optimisé)
S3 Standard-IADonnées peu accédées, accès rapide nécessaire99,9 %$$
S3 One Zone-IADonnées peu accédées, recréables99,5 %$
S3 Glacier Instant RetrievalArchives avec accès immédiat rare99,9 %$
S3 Glacier Flexible RetrievalArchives, retrieval en minutes/heures99,99 %¢
S3 Glacier Deep ArchiveArchives 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 ZoneCurated ZoneEnriched 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

Partager cet article