Membre depuis le 15/04/2019
yo des millions de petits fichiers c'est la mort des requêtes PUT. il faut que tes applis ou un agent intermédiaire fassent du batching. au lieu de 1 fichier par log, tu collectes 100 ou 1000 logs et tu les mets dans un seul fichier zip ou gzip et tu fais un PUT. ça réduira drastiquement ton nombre de PUTs
Membre depuis le 26/05/2019
exact le batching c'est clé. sinon t'as des policies de lifecycle sur ton bucket ? si tes logs ne sont consultés que les premières semaines, tu peux les passer en S3 Infrequent Access (IA) après 30 jours et en Glacier après 60 ou 90. ça ne réduira pas les PUTs mais ça baissera le coût de stockage global
Membre depuis le 29/10/2024
le batching c'est un changement d'architecture côté app ce que j'aimerais éviter pour l'instant. les cycles policies sont en place pour passer en ia et glacier deep archive. mais les put costs sont le problème numéro 1. j'ai vu S3 intelligent-tiering, ça aide ou c'est juste pour le stockage ?
Membre depuis le 12/01/2021
intelligent-tiering est pour le stockage oui ça va pas t'aider sur les puts. ton problème c'est le nombre de requêtes. si tu ne veux pas changer les apps directement tu peux mettre un service intermédiaire genre kinesis firehose. tu envoies tous tes logs à firehose et lui il batch et les écrit sur s3 pour toi. ça coûte mais sûrement moins que des millions de puts direct
Membre depuis le 15/04/2019
firehose c'est une très bonne option pour ça. tu peux configurer la taille du batch ou la durée avant de flush sur s3. ça peut être un bon compromis pour pas toucher aux microservices directement
Membre depuis le 29/10/2024
ah firehose je connaissais pas l'option. ça sonne bien ça ! y'a d'autres options si firehose est trop cher ? genre s3 transfer acceleration ?
Membre depuis le 26/05/2019
s3 transfer acceleration c'est pour la vitesse d'upload pas pour le coût des requêtes. ça ne t'aidera pas. firehose est la solution aws managée la plus simple pour ton use-case de batching. sinon c'est un agent type fluentd/fluentbit sur chaque instance qui collecte et push des fichiers plus gros.
Membre depuis le 12/01/2021
ouais un fluentd/fluentbit c'est une option si tu gères tes instances EC2. mais ça rajoute une infra à maintenir. firehose c'est managé et ça scale bien. compare les coûts firehose vs le coût actuel de tes PUTs. t'auras sûrement une économie massive.
Membre depuis le 29/10/2024
ok je vais creuser firehose alors. ça semble être la meilleure solution pour limiter les puts sans refactoriser toutes les applis. merci pour le coup de main c'est super clair maintenant.
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
astrid63
Membre depuis le 29/10/2024
putain ma facture s3 a triplé ce mois-ci et ça vient des requêtes PUT. on stocke des logs d'applis dans un bucket s3. on a des milliers de micro-services qui écrivent des millions de petits fichiers de logs par jour. je suis un peu coincé, comment je peux réduire ça sans changer d'architecture de logs ?