Exemples de configuration de cycle de vie - Amazon Simple Storage Service

Exemples de configuration de cycle de vie

Cette section fournit des exemples de configuration de Cycle de vie S3. Chaque exemple indique comment vous pouvez spécifier XML dans chaque exemple de scénarios.

Exemple 1 : Spécification d'un filtre

Chaque règle de Cycle de vie S3 comprend un filtre que vous pouvez utiliser pour identifier un sous-ensemble d'objets dans votre compartiment auquel s'applique la règle du cycle de vie. Les configurations S3 de cycle de vie suivantes présentent des exemples de spécification d'un filtre.

  • Dans cette règle de configuration du cycle de vie, le filtre spécifie un préfixe de clé (tax/). Par conséquent, la règle s'applique aux objets avec le préfixe du nom de clé tax/, comme tax/doc1.txt et tax/doc2.txt

    La règle spécifie deux actions qui demandent à Amazon S3 d'effectuer ce qui suit :

    • La transition d'objets vers la classe de stockage S3 Glacier 365 jours (un an) après leur création.

    • La suppression d'objets (l'action Expiration) 3 650 jours (10 ans) après leur création.

    <LifecycleConfiguration> <Rule> <ID>Transition and Expiration Rule</ID> <Filter> <Prefix>tax/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>365</Days> <StorageClass>S3 Glacier</StorageClass> </Transition> <Expiration> <Days>3650</Days> </Expiration> </Rule> </LifecycleConfiguration>

    Au lieu de spécifier l'âge de l'objet en termes de jours après sa création, vous pouvez spécifier une date pour chaque action. Cependant, vous ne pouvez pas utiliser à la fois Date et Days dans la même règle.

  • Si vous souhaitez que la règle du cycle de vie s'applique à tous les objets dans le compartiment, spécifiez un préfixe vide. Dans la configuration suivante, la règle spécifie une action Transition indiquant à Amazon S3 d'effectuer la transition d'objets vers la classe de stockage S3 Glacier 0 jour après leur création, auquel cas les objets sont éligibles pour l'archivage dans Amazon S3 Glacier à minuit UTC après la création.

    <LifecycleConfiguration> <Rule> <ID>Archive all object same-day upon creation</ID> <Filter> <Prefix></Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>0</Days> <StorageClass>S3 Glacier</StorageClass> </Transition> </Rule> </LifecycleConfiguration>
  • Vous pouvez spécifier un préfixe de nom de clé, ou aucun, et plusieurs balises d'objets dans un filtre, ou aucune. L'exemple de code suivant applique la règle du cycle de vie à un sous-ensemble d'objets avec le préfixe de clé tax/ et aux objets ayant deux balises avec une clé et une valeur spécifiques. Notez que lorsque vous spécifiez plusieurs filtres, vous devez inclure AND comme indiqué (Amazon S3 applique une logique AND pour combiner les conditions de filtre spécifiées).

    ... <Filter> <And> <Prefix>tax/</Prefix> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> </And> </Filter> ...
  • Vous pouvez filtrer des objets en fonction uniquement des balises. Par exemple, la règle de cycle de vie suivante s'applique aux objets ayant les deux balises spécifiées (elle ne spécifie pas de préfixe).

    ... <Filter> <And> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> </And> </Filter> ...
Important

Lorsque vous avez plusieurs règles dans une configuration de Cycle de vie S3, un objet peut être éligible pour plusieurs actions du cycle de vie. Dans de tels cas, Amazon S3 suit ces règles générales :

  • La suppression permanente a priorité sur la transition.

  • La transition a priorité sur la création de marqueurs de suppression.

  • Lorsqu'un objet est éligible pour une transition S3 Glacier et S3 Standard-IA (ou S3 One Zone-IA), Amazon S3 choisit la transition S3 Glacier.

Pour obtenir des exemples, consultez Exemple 5 : Chevauchement de filtres, actions de cycle de vie contradictoires et ce qu'Amazon S3 fait .

Exemple 2 : Désactivation d'une règle de cycle de vie

Vous pouvez désactiver temporairement une règle de cycle de vie. La configuration de cycle de vie suivante spécifie deux règles :

  • La règle 1 indique à Amazon S3 d'effectuer la transition d'objets avec le préfixe logs/ vers la classe de stockage S3 Glacier peu de temps après leur création.

  • La règle 2 indique à Amazon S3 d'effectuer la transition d'objets avec le préfixe documents/ vers la classe de stockage S3 Glacier peu de temps après leur création.

Dans la stratégie, la règle 1 est activée et la règle 2 est désactivée. Amazon S3 n'entreprend pas d'action sur les règles désactivées.

<LifecycleConfiguration> <Rule> <ID>Rule1</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>0</Days> <StorageClass>S3 Glacier</StorageClass> </Transition> </Rule> <Rule> <ID>Rule2</ID> <Prefix>documents/</Prefix> <Status>Disabled</Status> <Transition> <Days>0</Days> <StorageClass>S3 Glacier</StorageClass> </Transition> </Rule> </LifecycleConfiguration>

Exemple 3 : Choix d'une classe de stockage inférieure pendant la durée de vie d'un objet

Dans cet exemple, vous utilisez la configuration du cycle de vie pour choisir la classe de stockage d'objets inférieure pendant leur cycle de vie. Ce choix peut permettre de réduire les coûts de stockage. Pour plus d'informations sur la tarification, consultez Tarification Amazon S3.

L'exemple suivant de configuration du Cycle de vie S3 spécifie une règle qui s'applique aux objets avec le préfixe de nom de clé logs/. La règle spécifie les deux actions suivantes :

  • Deux actions de transition :

    • La transition d'objets vers la classe de stockage S3 Standard-IA 30 jours après leur création.

    • La transition d'objets vers la classe de stockage S3 Glacier 90 jours après leur création.

  • Une action d'expiration qui indique à Amazon S3 de supprimer les objets un an après leur création.

<LifecycleConfiguration> <Rule> <ID>example-id</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>STANDARD_IA</StorageClass> </Transition> <Transition> <Days>90</Days> <StorageClass>GLACIER</StorageClass> </Transition> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>
Note

Vous pouvez utiliser une règle pour décrire toutes les actions du cycle de vie si toutes les actions s'appliquent au même ensemble d'objets (identifiés par le filtre). Sinon, vous pouvez ajouter plusieurs règles, chacune spécifiant un filtre différent.

Exemple 4 : Spécification de plusieurs règles

Vous pouvez spécifier plusieurs règles si vous voulez différentes actions du cycle de vie de différents d'objets. La configuration du cycle de vie suivante a deux règles :

  • La règle 1 s'applique aux objets ayant le préfixe de nom de clé classA/. Elle indique à Amazon S3 d'effectuer la transition d'objets vers la classe de stockage S3 Glacier un an après leur création et de faire expirer ces objets 10 ans après leur création.

  • La règle 2 s'applique aux objets ayant le préfixe de nom de clé classB/. Elle indique à Amazon S3 d'effectuer la transition d'objets vers la classe de stockage S3 Standard-IA 90 jours après leur création et de les supprimer un an après leur création.

<LifecycleConfiguration> <Rule> <ID>ClassADocRule</ID> <Filter> <Prefix>classA/</Prefix> </Filter> <Status>Enabled</Status> <Transition>       <Days>365</Days>       <StorageClass>GLACIER</StorageClass>     </Transition> <Expiration> <Days>3650</Days> </Expiration> </Rule> <Rule> <ID>ClassBDocRule</ID> <Filter> <Prefix>classB/</Prefix> </Filter> <Status>Enabled</Status> <Transition>       <Days>90</Days>       <StorageClass>STANDARD_IA</StorageClass>     </Transition> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>

Exemple 5 : Chevauchement de filtres, actions de cycle de vie contradictoires et ce qu'Amazon S3 fait

Vous pouvez définir une configuration du Cycle de vie S3 dans laquelle vous spécifiez des préfixes, ou des actions, se chevauchant.

Généralement, le cycle de vie Amazon S3 optimise le coût. Par exemple, si deux stratégies d'expiration se chevauchent, la stratégie d'expiration la plus courte est appliquée pour que des données ne soient pas stockées plus longtemps que prévu.

De même, si deux stratégies de transition se chevauchent, le Cycle de vie S3 transfert vos objets vers la classe de stockage au coût le plus bas. Dans les deux cas, le Cycle de vie S3 essaie de choisir le chemin qui est le moins cher pour vous. Une exception à cette règle générale concerne la classe de stockage S3 Intelligent-Tiering. S3 Intelligent-Tiering est favorisée par le cycle de vie S3 par rapport à toutes les autres classes de stockage, à l'exception de S3 Glacier et S3 Glacier Deep Archive.

Les exemples suivants illustrent comment Amazon S3 choisit de résoudre les conflits potentiels.

Exemple 1 : Chevauchement de préfixes (aucun conflit)

L'exemple de configuration suivant comporte deux règles qui indiquent des préfixes qui se chevauchent comme suit :

  • La première règle spécifie un filtre vide, indiquant tous les objets du compartiment.

  • La deuxième règle spécifie un préfixe de nom de clé logs/, indiquant uniquement un sous-ensemble d'objets.

La règle 1 demande à Amazon S3 de supprimer tous les objets un an après leur création. La règle 2 demande à Amazon S3 d’effectuer la transition d'un sous-ensemble d'objets vers la classe de stockage S3 Standard-IA 30 jours après la création.

<LifecycleConfiguration> <Rule> <ID>Rule 1</ID> <Filter> </Filter> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> <Rule> <ID>Rule 2</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <StorageClass>STANDARD_IA<StorageClass> <Days>30</Days> </Transition> </Rule> </LifecycleConfiguration>

Exemple 2 : Actions de cycle de vie contradictoires

Dans cet exemple de configuration, il existe deux règles qui indiquent à Amazon S3 d'effectuer en même temps deux actions différentes sur le même ensemble d'objets pendant la durée de vie de l'objet :

  • Les deux règles spécifient le même préfixe de nom de clé et les deux règles s'appliquent par conséquent au même ensemble d'objets.

  • Les deux règles spécifient les mêmes 365 jours après la création de l'objet lorsque les règles s'appliquent.

  • Une règle indique à Amazon S3 d'effectuer la transition d'objets vers la classe de stockage S3 Standard-IA et une autre règle veut que Amazon S3 fasse expirer les objets en même temps.

<LifecycleConfiguration> <Rule> <ID>Rule 1</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> <Rule> <ID>Rule 2</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <StorageClass>STANDARD_IA<StorageClass> <Days>365</Days> </Transition> </Rule> </LifecycleConfiguration>

Dans ce cas, dans la mesure où vous voulez que les objets expirent (soient supprimés), il est inutile de modifier la classe de stockage et Amazon S3 choisit simplement l'action d'expiration sur ces objets.

Exemple 3 : Chevauchement de préfixes entraînant des actions de cycle de vie contradictoires

Dans cet exemple, la configuration comporte deux règles qui indiquent des préfixes qui se chevauchent comme suit :

  • La règle 1 spécifie un préfixe vide (indiquant tous les objets).

  • La règle 2 spécifie un préfixe de nom de clé (logs/) qui identifie un sous-ensemble de tous les objets.

Pour le sous-ensemble d'objets avec le préfixe du nom de clé logs/, les actions du cycle de vie dans les deux règles s'appliquent. Une règle indiquant à Amazon S3 d'effectuer la transition des objets 10 jours après leur création et une autre règle indiquant à Amazon S3 d'effectuer la transition des objets 365 jours après leur création.

<LifecycleConfiguration> <Rule> <ID>Rule 1</ID> <Filter> <Prefix></Prefix> </Filter> <Status>Enabled</Status> <Transition> <StorageClass>STANDARD_IA<StorageClass> <Days>10</Days> </Transition> </Rule> <Rule> <ID>Rule 2</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <StorageClass>STANDARD_IA<StorageClass> <Days>365</Days> </Transition> </Rule> </LifecycleConfiguration>

Dans ce cas, Amazon S3 choisit d'effectuer leur transition 10 jours après leur création.

Exemple 4 : Filtrage basé sur des balises et actions du cycle de vie contradictoires générées

Supposons que vous avez la stratégie de Cycle de vie S3 suivante qui a deux règles, chacune spécifiant un filtre de balise :

  • La règle 1 spécifie un filtre basé sur une balise (tag1/value1). Cette règle indique à Amazon S3 d'effectuer la transition des objets vers la classe de stockage S3 Glacier 365 jours après leur création.

  • La règle 2 spécifie un filtre basé sur une balise (tag2/value2). Cette règle indique à Amazon S3 de faire expirer les objets 14 jours après leur création.

La configuration du cycle de vie apparaît comme suit.

<LifecycleConfiguration> <Rule> <ID>Rule 1</ID> <Filter> <Tag> <Key>tag1</Key> <Value>value1</Value> </Tag> </Filter> <Status>Enabled</Status> <Transition> <StorageClass>GLACIER<StorageClass> <Days>365</Days> </Transition> </Rule> <Rule> <ID>Rule 2</ID> <Filter> <Tag> <Key>tag2</Key> <Value>value1</Value> </Tag> </Filter> <Status>Enabled</Status> <Expiration> <Days>14</Days> </Expiration> </Rule> </LifecycleConfiguration>

La stratégie est très bien, mais s'il y a un objet avec les deux balises, S3 doit alors décider ce qu'il faut faire. Autrement dit, les deux règles s'appliquent à un objet et en fait, vous indiquez à Amazon S3 d'effectuer des actions contradictoires. Dans ce cas, Amazon S3 fait expirer l'objet 14 jours après sa création. L'objet est supprimé et par conséquent, l'action de transition ne peut pas intervenir.

Exemple 6 : Spécification d'une règle de cycle de vie pour un compartiment activé pour la gestion des versions

Supposons que vous avez un compartiment activé pour la gestion des versions, ce qui signifie que pour chaque objet vous avez une version actuelle et aucune, une ou plusieurs versions anciennes. Vous voulez conserver un an d'historique puis supprimer les versions anciennes. Pour plus d'informations sur Gestion des versions S3, consultez Gestion des versions d'un objet.

De plus, vous voulez économiser sur les coûts de stockage en déplaçant les versions anciennes vers S3 Glacier 30 jours après qu'elles soient devenues anciennes (des données légères auxquelles vous n'avez pas besoin d'accéder en temps réel). De plus, vous vous attendez à ce que la fréquence d'accès des versions actuelles diminue 90 jours après la création et vous voulez peut-être déplacer ces objets vers la classe de stockage S3 Standard-IA.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Filter> <Prefix></Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>90</Days> <StorageClass>STANDARD_IA</StorageClass> </Transition> <NoncurrentVersionTransition> <NoncurrentDays>30</NoncurrentDays> <StorageClass>S3 Glacier</StorageClass> </NoncurrentVersionTransition> <NoncurrentVersionExpiration> <NoncurrentDays>365</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

Exemple 7 : Suppression des marqueurs de suppression d'objet expiré

Un compartiment activé pour la gestion des versions a une version d'objet actuelle et une ou plusieurs versions anciennes pour chaque objet. Lorsque vous supprimez un objet, notez ce qui suit :

  • Si vous ne spécifiez pas un ID de version dans votre demande de suppression, Amazon S3 ajoute un marqueur de suppression au lieu de supprimer l'objet. La version de l'objet actuelle devient ancienne et le marqueur de suppression devient alors la version actuelle.

  • Si vous spécifiez un ID de version dans votre demande de suppression, Amazon S3 supprime la version de l'objet définitivement (aucun marqueur de suppression n'est créé).

  • Un marqueur de suppression avec aucune version ancienne est appelé marqueur de suppression d'objet expiré.

Cet exemple présente un scénario qui peut créer des marqueurs de suppression d'objet expiré dans votre compartiment et montre la façon dont vous pouvez utiliser une configuration de Cycle de vie S3 pour indiquer à Amazon S3 de supprimer les marqueurs de suppression d'objet expiré.

Supposons que vous écrivez une stratégie de cycle de vie qui spécifie que l'action NoncurrentVersionExpiration supprime les versions anciennes 30 jours après qu'elles soient devenues anciennes, comme indiqué ci-dessous.

<LifecycleConfiguration> <Rule> ... <NoncurrentVersionExpiration> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

L'action NoncurrentVersionExpirationne s'applique pas aux versions d'objets actuelles. Elle retire définitivement les versions anciennes.

Pour les versions d'objet actuelles, vous avez les options suivantes pour gérer leur cycle de vie selon que les versions d'objet actuelles suivent un cycle de vie bien défini :

  • Les versions d'objet actuelles suivent un cycle de vie bien défini.

    Dans ce cas, vous pouvez utiliser la stratégie du cycle de vie avec l'action Expiration pour indiquer à Amazon S3 de supprimer les versions actuelles comme illustré dans l'exemple suivant.

    <LifecycleConfiguration> <Rule> ... <Expiration> <Days>60</Days> </Expiration> <NoncurrentVersionExpiration> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

    Amazon S3 supprime les versions actuelles 60 jours après leur création en ajoutant un marqueur de suppression à chaque version d'objet actuelle. La version actuelle devient ancienne et le marqueur de suppression devient la version actuelle. Pour plus d'informations, consultez Utilisation de la gestion des versions.

    Note

    Cette règle effectue automatiquement le ExpiredObjectDeleteMarker nettoyage dans un compartiment versionné, ce qui rend l'inclusion d'une ExpiredObjectDeleteMarker balise inutile.

    L'action NoncurrentVersionExpiration dans la même configuration du cycle de vie supprime les objets anciens 30 jours après qu'ils soient devenus anciens. Ainsi, dans cet exemple, toutes les versions d'objet sont définitivement supprimées 90 jours après la création de l'objet. Vous avez des marqueurs de suppression d'objet expiré, mais Amazon S3 détecte et supprime les marqueurs de suppression d'objet expiré à votre place.

  • Les versions d'objet actuelles n'ont pas de cycle de vie bien défini.

    Dans ce cas, vous pouvez supprimer les objets manuellement lorsque vous n'avez pas besoin d'eux, créant un marqueur de suppression avec une ou plusieurs versions anciennes. Si la configuration du cycle de vie avec l'action NoncurrentVersionExpiration supprime toutes les versions anciennes, vous avez à présent des marqueurs de suppression d'objet expiré.

    Plus précisément pour ce scénario, la configuration du cycle de vie Amazon S3 fournit une action Expiration où vous pouvez demander à Amazon S3 de supprimer les marqueurs de suppression d'objet expiré.

    <LifecycleConfiguration> <Rule> <ID>Rule 1</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker> </Expiration> <NoncurrentVersionExpiration> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

En définissant l'élément ExpiredObjectDeleteMarker sur vrai dans l'action Expiration, vous indiquez à Amazon S3 de supprimer les marqueurs de suppression d'objet expiré.

Note

Lorsque vous spécifiez l'action du cycle de vie ExpiredObjectDeleteMarker, la règle ne peut pas spécifier un filtre basé sur une balise.

Exemple 8 : Configuration du cycle de vie pour annuler des chargements partitionnés

Vous pouvez utiliser l'API de chargement partitionné pour charger des objets volumineux en plusieurs parties. Pour en savoir plus sur le chargement partitionné, consultez Présentation du chargement partitionné.

Avec une configuration du Cycle de vie S3, vous pouvez indiquer à Amazon S3 d'annuler les chargements partitionnés incomplets (identifiés par le préfixe du nom de clé spécifié dans la règle) s'ils ne se terminent pas après un nombre de jours spécifié après leur lancement. Lorsque Amazon S3 annule un chargement partitionné, toutes les parties associées au chargement partitionné sont supprimées. Cela garantit que vous n'avez pas de chargements partitionnés incomplets avec des parties stockées dans Amazon S3 et par conséquent, vous n'avez pas à payer les frais de stockage pour ces parties.

Note

Lorsque vous spécifiez l'action du cycle de vie AbortIncompleteMultipartUpload, la règle ne peut pas spécifier un filtre basé sur une balise.

Voici un exemple de configuration du Cycle de vie S3 qui spécifie une règle avec l'action AbortIncompleteMultipartUpload. Cette action demande à Amazon S3 d'annuler les chargements partitionnés incomplets sept jours après leur lancement.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Filter> <Prefix>SomeKeyPrefix/</Prefix> </Filter> <Status>rule-status</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>7</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>