Zum Hauptinhalt springen

Lifecycle-Policies anwenden

Lifecycle-Regeln räumen Buckets automatisch auf: Objekte werden nach einer definierten Zeit gelöscht, alte Versionen entfernt und abgebrochene Multipart-Uploads bereinigt. Das spart Speicherkosten ohne manuelle Pflege.

Was Lifecycle-Regeln können

  • Expiration: aktuelle Objekte nach X Tagen (oder zu einem Datum) löschen
  • NoncurrentVersionExpiration: nichtaktuelle Versionen nach X Tagen entfernen (bei Versioning)
  • ExpiredObjectDeleteMarker: verwaiste Delete-Marker aufräumen
  • AbortIncompleteMultipartUpload: hängengebliebene Multipart-Uploads nach X Tagen verwerfen
  • Filter: Regeln auf Prefixes (z. B. logs/) oder Tags einschränken

Beispielkonfiguration

lifecycle.json:

{
"Rules": [
{
"ID": "logs-nach-30-tagen-loeschen",
"Status": "Enabled",
"Filter": { "Prefix": "logs/" },
"Expiration": { "Days": 30 }
},
{
"ID": "alte-versionen-aufraeumen",
"Status": "Enabled",
"Filter": { "Prefix": "" },
"NoncurrentVersionExpiration": { "NoncurrentDays": 90 },
"Expiration": { "ExpiredObjectDeleteMarker": true }
},
{
"ID": "multipart-reste-verwerfen",
"Status": "Enabled",
"Filter": { "Prefix": "" },
"AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 }
}
]
}

Anwenden:

aws s3api put-bucket-lifecycle-configuration --bucket mein-bucket \
--lifecycle-configuration file://lifecycle.json \
--endpoint-url https://s3.internet1.de
Warnung

put-bucket-lifecycle-configuration ersetzt die gesamte bestehende Konfiguration. Vor Änderungen die aktuelle Konfiguration exportieren und ergänzen statt überschreiben.

Prüfen und entfernen

aws s3api get-bucket-lifecycle-configuration --bucket mein-bucket \
--endpoint-url https://s3.internet1.de

aws s3api delete-bucket-lifecycle --bucket mein-bucket \
--endpoint-url https://s3.internet1.de

Verhalten und Feinheiten

  • Regeln werden asynchron ausgeführt (typischerweise einmal täglich); das Löschen kann daher mit Verzögerung erfolgen.
  • Bei aktiviertem Versioning erzeugt eine Expiration auf die aktuelle Version zunächst nur einen Delete-Marker – endgültig gelöscht wird die Version erst über NoncurrentVersionExpiration.
  • Objekte mit aktiver Object-Lock-Retention oder Legal Hold werden erst gelöscht, wenn der Schutz endet.
  • Days zählt ab dem Zeitpunkt des letzten Uploads (LastModified), NoncurrentDays ab dem Moment, in dem eine Version nichtaktuell wurde.

Typische Rezepte

ZielRegel
Temp-Dateien unter tmp/ nach 1 Tag löschenFilter.Prefix = "tmp/", Expiration.Days = 1
Versionierten Backup-Bucket schlank haltenNoncurrentVersionExpiration.NoncurrentDays = 30 + ExpiredObjectDeleteMarker = true
Kosten durch abgebrochene Groß-Uploads vermeidenAbortIncompleteMultipartUpload.DaysAfterInitiation = 7 (für jeden Bucket empfehlenswert)
Backup-Software

Auf Buckets, die von Backup-Tools (Veeam, Bareos, restic …) verwaltet werden, keine Expiration-Regeln anwenden – die Aufbewahrung steuert dort ausschließlich die Backup-Software. Unschädlich und sinnvoll ist einzig die Multipart-Aufräumregel.

Verwandte Themen