Facture S3 qui explose à cause des requêtes PUT/GET

claude-paul 10/09/2024
RÉSOLU
claude-paul
Auteur Actif
Avatar de claude-paul
claude-paul
Auteur Actif

yo tout le monde je suis en train de me tirer les cheveux sur notre facture AWS du mois. notre coût S3 a explosé de 30% en un mois sans qu'on ait vraiment une augmentation du volume de stockage. en regardant les métriques je vois que les requêtes PUT et GET sont la cause principale. on stocke beaucoup de petits fichiers (qq kb) pour une appli métier. des idées pour réduire ça

10/09/2024 à 05:33

10 commentaires

hugues44
Membre Actif
Avatar de hugues44
hugues44
Membre Actif

salut. combien de requêtes put/get tu as par jour environ ? et quelle est la taille moyenne de tes objets ? est-ce que tu utilises bien la classe de stockage standard pour les objets fréquemment accédés ?

11/09/2024 à 05:07
claude-paul
Auteur Actif
Avatar de claude-paul
claude-paul
Auteur Actif

on est à des dizaines de millions de put/get par jour. la taille moyenne c genre 5-10kb. et oui tout est en s3 standard. j'ai déjà regardé les lifecycle policies pour déplacer vers glacier mais c pas vraiment pour ça. les fichiers sont consultés régulièrement

12/09/2024 à 00:12
vruiz
Membre Actif
Avatar de vruiz
vruiz
Membre Actif

avec autant de requêtes sur de petits objets S3 Intelligent-Tiering pourrait être intéressant ça gère les transitions entre les classes. ou si tu as des patterns d'accès connus tu peux définir des lifecycle policies plus fines pour archiver les objets non accédés pendant X jours mais qui restent potentiellement récupérables rapidement

12/09/2024 à 19:15
claude-paul
Auteur Actif
Avatar de claude-paul
claude-paul
Auteur Actif

intelligent-tiering j'y ai pensé mais c'est encore un coût en plus. et lifecycle je peux pas car certains fichiers vieux de plusieurs mois peuvent être accédés n'importe quand. pas super prédictible. du coup glacier deep archive serait peut-être une option extrême non ?

13/09/2024 à 14:07
hugues44
Membre Actif
Avatar de hugues44
hugues44
Membre Actif

glacier deep archive c'est pas fait pour des accès réguliers ou même semi-réguliers. les coûts de récupération sont très élevés et ça prend des heures. si tes fichiers peuvent être consultés n'importe quand c'est une mauvaise idée. tu vas te ruiner en retrieval fees

14/09/2024 à 13:33
claude-paul
Auteur Actif
Avatar de claude-paul
claude-paul
Auteur Actif

ok compris pour deep archive mauvaise piste. du coup intelligent-tiering ou faut que je revois comment mon app interagit avec s3. il y a pas un moyen de batcher les put/get ?

15/09/2024 à 12:15
vruiz
Membre Actif
Avatar de vruiz
vruiz
Membre Actif

batcher oui absolument ! si c'est plein de petits fichiers tu peux les zipper les regrouper dans un seul objet plus gros sur s3. ça réduirait drastiquement ton nombre de requêtes. c'est un travail côté appli par contre

16/09/2024 à 09:54
claude-paul
Auteur Actif
Avatar de claude-paul
claude-paul
Auteur Actif

ha oui regrouper les petits fichiers c'est une bonne idée. au lieu d'avoir 1000 objets de 10kb j'aurais 1 objet de 10mb. ça réduit les requêtes et le coût lié au nombre d'objets. ça nécessite de revoir l'archi de l'app mais ça vaut le coup

17/09/2024 à 08:23
operon
Membre Actif Secouriste
Avatar de operon
operon
Membre Actif Secouriste

oui c'est la solution la plus efficace pour ton cas je pense. pense aussi à regarder si tu n'as pas des requêtes inutiles des retries agressifs ou des scans complets de buckets qui se lancent trop souvent. des fois ça vient aussi de là

18/09/2024 à 07:05
claude-paul
Auteur Actif
Avatar de claude-paul
claude-paul
Auteur Actif

d'acc je vais investiguer le regroupement d'objets et revoir les patterns d'accès de l'app. thx beaucoup pour les conseils très utiles

19/09/2024 à 01:25

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