
Amazon S3 Storage Lens rassemble des métriques de stockage et d’activité pour repérer les buckets à examiner. Commencez par la date et le périmètre du rapport, puis comparez les catégories d’octets pertinentes. Une forte proportion de versions non courantes ou d’envois incomplets justifie une analyse, pas une suppression immédiate.
Ce guide explique les options gratuites et avancées actuelles et vérifie les calculs sur un jeu de données inventé. L’exemple a passé 18 contrôles locaux. Aucun compte AWS, tableau de bord réel, acheminement de rapport ou changement de cycle de vie n’a été testé.
Dans la console Amazon S3, ouvrez Storage Lens et choisissez un tableau de bord. AWS fournit default-account-dashboard pour le compte. Son périmètre n’est pas modifiable ; créez une configuration distincte si vous avez besoin d’un autre périmètre. Le tableau s’ouvre sur la dernière date disposant de métriques, qui peut différer d’aujourd’hui. Ces étapes suivent le guide AWS du tableau de bord.
Avant de comparer deux nombres, notez la configuration, la date du rapport, le compte ou l’organisation concernés, les filtres de région et le bucket ou la classe de stockage sélectionnés. Un total de bucket et un total de compte répondent à des questions différentes. Un filtre modifié peut donner l’impression d’une croissance sans changement des données.
Storage Lens fournit des analyses agrégées quotidiennes pour les buckets S3 à usage général. Lisez ses graphiques comme des observations périodiques. Ils ne confirment pas qu’une suppression, un envoi ou un changement de droits vient de se terminer.
La documentation de sélection des métriques distingue ces options :
Partez de la question que la vue actuelle ne permet pas de résoudre. Comparer quotidiennement les octets non courants ne demande pas de métriques d’activité. Avant une mise à niveau, vérifiez les fonctions sélectionnées et les tarifs S3 actuels. Les métriques avancées entraînent des frais de suivi des objets pour chaque tableau de bord ; l’export et l’interrogation peuvent aussi entraîner des frais distincts. Toutes les options de reporting ne sont pas supposées gratuites.
Le glossaire Storage Lens donne les noms d’export et leurs définitions. Cet exercice en utilise quatre :
StorageBytes : stockage total, y compris envois incomplets, métadonnées d’objets et marqueurs de suppression.NonCurrentVersionStorageBytes : octets des versions non courantes.IncompleteMultipartUploadStorageBytes : octets des envois multiparties incomplets.IncompleteMPUStorageBytesOlderThan7Days : part correspondant aux envois incomplets de plus de sept jours.Les octets des versions courantes décrivent les versions actuelles. Les marqueurs de suppression ont leur propre métrique ; un tel marqueur ne prouve pas que toutes les données des versions précédentes ont disparu. Choisissez la métrique adaptée à la question plutôt que d’assimiler chaque octet stocké à un fichier applicatif courant.
Les valeurs suivantes sont inventées, déjà normalisées pour une date et une configuration uniques, et agrégées entre classes de stockage dans chaque bucket. Ce ne sont ni un export AWS natif ni des mesures client. Ici, un Gio correspond à 2 puissance 30 octets.
Le périmètre contient 1 000 Gio au total et 120 Gio non courants, soit 12 %. La proportion est de 30 % pour A et de 10 % pour B ; leur moyenne simple donne 20 %. Cette moyenne attribue le même poids au petit bucket et au grand, ce qui ne répond pas à la question sur le stockage combiné.
Calculez la proportion à partir des sommes d’octets. Cet exemple Python autonome reproduit le calcul :
# Invented bucket-level values, already normalized to one date and scope.
# Each tuple is: total GiB, noncurrent GiB, incomplete-upload GiB,
# incomplete-upload GiB older than seven days.
buckets = [(100, 30, 5, 3), (900, 90, 45, 9), (0, 0, 0, 0)]
total, noncurrent, incomplete, older = (
sum(row[column] for row in buckets) for column in range(4)
)
def percentage(part, whole):
return None if whole == 0 else round(100 * part / whole, 2)
print('Noncurrent / total:', percentage(noncurrent, total))
print('Incomplete / total:', percentage(incomplete, total))
print('Older uploads / total:', percentage(older, total))
print('Older uploads / incomplete:', percentage(older, incomplete))
print('Empty bucket:', percentage(0, 0))
La sortie observée est :
Noncurrent / total: 12.0
Incomplete / total: 5.0
Older uploads / total: 1.2
Older uploads / incomplete: 24.0
Empty bucket: None
Les 12 Gio d’envois incomplets anciens représentent 1,2 % du stockage sélectionné, mais 24 % des envois incomplets. Les deux calculs sont valides si leur dénominateur est nommé. Ils n’expriment pas la même métrique.
Ces envois anciens sont déjà inclus dans les 50 Gio d’envois incomplets. Ajouter 12 à 50 les compterait deux fois. La proportion d’un bucket vide est indéfinie ; afficher zéro laisserait croire qu’un ratio a été mesuré. L’exemple renvoie donc None.
Un vrai export doit être préparé avant ce calcul. Le schéma d’export AWS comprend notamment la configuration, la date, le compte, la région, la classe de stockage et le type d’enregistrement. Les lignes de buckets, de comptes et de préfixes peuvent couvrir les mêmes données. Ne les additionnez pas toutes.
Choisissez une date et une configuration, conservez les dimensions nécessaires au périmètre et n’agrégez que des lignes sans chevauchement. Avant de combiner les classes de stockage en totaux par bucket, vérifiez que les données sont complètes. Ne mélangez pas ces totaux avec les lignes qui les composent. Une métrique absente ne vaut pas automatiquement zéro.
Pour les exports dans un bucket à usage général, utilisez le manifeste quotidien pour identifier le schéma et tous les fichiers du rapport. Lire un seul fichier d’un rapport réparti peut produire des résultats plausibles mais incomplets. Vérifiez date et configuration avant toute fusion.
Notre jeu de test local séparé utilise un CSV simplifié à six colonnes. Le validateur exclut les lignes de compte, de préfixe, d’une autre date ou d’une autre configuration. Il rejette doublons, métriques manquantes, octets invalides et relations de sous-ensemble impossibles. Il ne lit pas les formats AWS natifs CSV ou Parquet, n’interprète pas un vrai manifeste et ne vérifie pas la livraison. Son adaptation exige une normalisation validée séparément.
AWS prend en charge les exports CSV et Parquet vers des buckets à usage général, ainsi que les exports S3 Tables, avec d’autres schémas et coûts de service. Choisissez la destination selon l’analyse prévue ; l’existence d’un format ne rend pas notre exemple compatible avec lui.
Dans l’exemple, B conserve davantage de données non courantes en valeur absolue, tandis que A présente le pourcentage le plus élevé. Le premier candidat utile dépend de la question : capacité conservée, croissance soudaine ou comportement d’une application précise.
L’expiration ordinaire d’objets ne supprime pas les envois incomplets. AWS documente l’action distincte AbortIncompleteMultipartUpload. Choisissez son seuil selon la durée légitime des envois de l’application ; la limite de sept jours de la métrique n’est pas une recommandation automatique de configuration.
Si l’investigation exige des enregistrements d’objets ou de versions, utilisez un rapport S3 Inventory correctement configuré. Les agrégats Storage Lens n’identifient pas l’objet précis à supprimer. Inventory constitue un autre rapport, à interpréter selon les besoins applicatifs et de conservation.
Après un changement approuvé, vérifiez la configuration et le comportement réels, puis comparez des rapports Storage Lens ultérieurs au même périmètre. Notez les envois, suppressions et changements de conservation simultanés qui peuvent expliquer l’évolution. Un pourcentage peut baisser uniquement parce que son dénominateur augmente.
Une part de 12 % d’octets non courants ne signifie pas qu’une baisse de facture de 12 % est possible. Classes de stockage, requêtes, récupération, frais minimaux et conservation requise influencent le résultat. Estimez les coûts avec les données de facturation et les tarifs applicables ; cet exemple mesure seulement des ratios d’octets.
Storage Lens est une fonction d’analyse AWS. Pour Hivenet ou un autre fournisseur, vérifiez séparément les fonctions de suivi et d’export disponibles. La compatibilité avec l’API S3 ne suffit pas à établir la prise en charge du tableau de bord Storage Lens ou de ses options payantes.
Les 18 contrôles ont été exécutés localement avec Python 3.12.14 et des données synthétiques. Ils valident le filtrage, les calculs, la gestion des erreurs et le code affiché. Aucun accès AWS, métrique réelle, livraison de rapport, intégration CloudWatch, rapprochement de facture ou changement de données n’a été testé.
Choisissez une charge de travail d’IA, de calcul ou de stockage à tester sur Hivenet, ou échangez avec notre équipe sur sa mise en production.