coûts s3 qui explosent sans raison apparente après migration de logs

marie-lebreton 04/01/2025
RÉSOLU
marie-lebreton
Auteur Actif
Avatar de marie-lebreton
marie-lebreton
Auteur Actif

salut tout le monde. on a migré nos logs applicatifs de nos machines vers un bucket s3 pour centraliser. on s'attendait à une augmentation des coûts stockage s3 mais là c'est x5 sur la facture sans avoir X5 de logs. je pige pas ce qui se passe. j'ai regardé les metrics cloudwatch pour s3 mais ça me dit pas grand chose à part le nombre de requêtes qui a monté en flèche. on utilise le sdk aws pour uploader.

# exemple de code python pour upload (simplifié)
import boto3
s3 = boto3.client('s3')
s3.put_object(Bucket='my-log-bucket', Key='app/logs/file.log', Body=log_content)
04/01/2025 à 04:47

8 commentaires

adrien53
Membre Actif
Avatar de adrien53
adrien53
Membre Actif

hello. "nombre de requêtes qui a monté en flèche" ça sent le small objects problem. si tes logs sont des petits fichiers que tu uploades un par un à chaque ligne ou chaque petit chunk tu vas faire des millions de put requests et ça coûte cher

05/01/2025 à 02:01
carpentier-aurore
Membre Actif Secouriste
Avatar de carpentier-aurore
carpentier-aurore
Membre Actif Secouriste

ouais carrément. s3 facture par requête. mieux vaut agréger les logs en gros fichiers (plusieurs Mo ou Go) avant de les uploader. et si tu as beaucoup de petits updates sur des mêmes fichiers s3 c'est pas fait pour. un truc genre kinesis firehose ou fluentd/fluentbit avec des buffers seraient mieux adaptés

05/01/2025 à 22:13
orenard
Membre
Avatar de orenard
orenard
Membre

check aussi si tu as pas activé la versioning sur le bucket. chaque version d'un log file c'est du stockage en plus. et si tu deletes pas les vieilles versions ça peut exploser vite

06/01/2025 à 22:10
cecile-guyon
Membre Actif Secouriste
Avatar de cecile-guyon
cecile-guyon
Membre Actif Secouriste

et les classes de stockage. si tu balances tout en s3 standard alors que c'est du log qui est pas accédé souvent, un passage en intelligent-tiering ou infrequent access (ia) peut faire des économies massives sur le stockage

07/01/2025 à 17:08
adrien53
Membre Actif
Avatar de adrien53
adrien53
Membre Actif

le intelligent-tiering est top pour ça. il va automagiquement bouger les objets entre standard et ia en fonction de l'accès. ça te sauve des tunes sans te casser la tête

08/01/2025 à 13:23
carpentier-aurore
Membre Actif Secouriste
Avatar de carpentier-aurore
carpentier-aurore
Membre Actif Secouriste

une autre piste le cycle de vie du bucket. as-tu défini des règles pour purger les logs de plus de n jours ou pour archiver les plus vieux vers glacier ? sinon tu gardes tout ad vitam aeternam

09/01/2025 à 11:27
marie-lebreton
Auteur Actif
Avatar de marie-lebreton
marie-lebreton
Auteur Actif

mince la versioning était activée par défaut ! et effectivement on upload des millions de petits fichiers à la ligne de log. je vais revoir toute la stratégie. je vais implémenter un batching pour agréger les logs et configurer le cycle de vie + intelligent-tiering. gros boulot en perspective.

10/01/2025 à 10:21
marie-lebreton
Auteur Actif
Avatar de marie-lebreton
marie-lebreton
Auteur Actif

merci à tous pour les infos cruciales. c'est exactement ce qu'il me fallait pour comprendre et corriger le tir. la facture du mois prochain devrait être plus raisonnable !

11/01/2025 à 10:16

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire