Dans le cadre du conseil cloud que nous proposons à nos clients chez DoiT International, je rencontre parfois des cas extrêmes où la volonté d'un client de réduire ses coûts se traduit, à l'inverse, par une hausse de ses coûts de stockage S3. L'article ci-dessous explique comment éviter cet écueil.

Pour stocker des fichiers (objets) dans un bucket S3, plusieurs classes de stockage sont disponibles : Standard (par défaut), Infrequent Access (également appelée Standard-IA), Intelligent-Tiering, Glacier et S3 Outposts.
La classe de stockage se définit au moment de l'upload, ou à n'importe quelle étape ultérieure. Une pratique courante consiste à créer une règle de cycle de vie au sein d'un bucket, afin de définir les actions qu'Amazon S3 doit appliquer durant la vie d'un objet (par exemple, faire passer un fichier de la classe Standard à Infrequent Access 30 jours après sa création).
La classe Infrequent Access permet de stocker des fichiers à un coût inférieur à celui de la classe Standard. La vitesse de téléchargement, la durabilité et la latence sont identiques à celles de la classe Standard, mais le coût de récupération d'un fichier y est plus élevé. Comme son nom l'indique, Infrequent Access est donc adaptée aux fichiers consultés peu fréquemment.

Règle de cycle de vie faisant passer les fichiers de la classe Standard à Intelligent-Tiering. Le coût de transition s'élève à 2 000 $. Cinq mois après la transition, le client paiera moins cher pour son stockage.
Pièges courants liés aux coûts S3
Deux écueils fréquents peuvent faire grimper le coût de stockage d'un bucket :
- La plupart des utilisateurs ignorent que le passage d'une classe de stockage à une autre est facturé. AWS facture 0,01 $ par tranche de 1 000 transitions de la classe Standard vers la classe Infrequent Access.
- Certaines classes de stockage S3 imposent une taille minimale de fichier. Pour Infrequent Access, cette taille minimale est de 128 Ko.


Spécifications des classes de stockage S3
Conséquence : un client disposant de centaines de millions de petits fichiers dans un bucket S3 peut se voir facturer des frais de transition ponctuels très élevés.
Combien de fichiers contient mon bucket ?
Il existe deux façons de connaître le nombre de fichiers et la taille d'un bucket :
- Au niveau du fichier — grâce à l'inventaire S3, vous pouvez générer un rapport quotidien qui répertorie les fichiers du bucket, leur taille et leur classe de stockage.
- Au niveau du bucket — via les métriques Cloudwatch, vous pouvez consulter le nombre de fichiers et la taille du bucket. Ces métriques sont également accessibles depuis la console S3, dans Management → Metrics.

Taille du bucket S3

Nombre de fichiers dans le bucket S3
Quand faut-il définir une règle de cycle de vie ?
Commencez par calculer la taille moyenne (non pondérée) des fichiers, en divisant la taille du bucket S3 par le nombre de fichiers.
Par exemple, dans le bucket utilisé pour les captures d'écran de cet article, la taille atteint 22,1 To pour 6,3 millions de fichiers, soit une taille moyenne de 3,42 Mo par fichier.
Le passage à Infrequent Access peut alors générer un coût de stockage ponctuel élevé.
Calcul du coût de transition et de la rentabilité
Si l'on bascule la classe de stockage de ce bucket de 22,1 To vers Infrequent Access via la règle de cycle de vie, soit 6,3 millions de fichiers, les frais de transition ponctuels s'élèvent à 63 $ (6 300 000 fichiers divisés par 1 000, multipliés par 0,01 $), pour un coût de stockage de 282,88 $ par mois.
Les calculs ci-dessus montrent que la transition entre classes permet de réduire les coûts dès le premier mois.
En conclusion
AWS S3 propose un large éventail de classes de stockage qui, bien utilisées, sont synonymes d'efficacité et d'économies.