Hallo,
Das Verhalten, das Sie beobachten, ist typisch für S3‑Buckets mit aktivierter Versionierung und Lifecycle‑Policies. Wenn eine Expiration‑Regel greift, setzt S3 zunächst einen Expiration Marker auf die aktuelle Version, anstatt die Objekte sofort physisch zu löschen. Alte Versionen bleiben bestehen, bis die Lifecycle‑Engine sie tatsächlich entfernt. Das erklärt, warum der Speicherverbrauch unverändert bleibt, obwohl die Marker sichtbar sind.
Um zu verifizieren, ob die Marker korrekt verarbeitet werden, sollten Sie zunächst die Lifecycle‑Logs prüfen. Aktivieren Sie S3 Server Access Logging oder verwenden Sie CloudTrail mit dem Event DeleteObjectVersion. Damit sehen Sie, ob die Engine Löschoperationen tatsächlich ausführt. Zusätzlich können Sie mit dem Befehl aws s3api list-object-versions --bucket <bucketname> kontrollieren, ob die alten Versionen noch vorhanden sind oder ob nur Marker gesetzt wurden. Wenn Sie sehen, dass die Marker existieren, aber keine DeleteMarker‑Events protokolliert werden, bedeutet das, dass die Lifecycle‑Policy zwar greift, aber die eigentliche Löschung noch nicht durchgeführt wurde.
Wichtig ist auch, dass die Lifecycle‑Engine in S3 nicht sofort arbeitet, sondern in einem asynchronen Prozess. Das Löschen kann sich um mehrere Stunden verzögern. Wenn nach Tagen keine Löschungen erfolgen, sollten Sie die Policy selbst prüfen: insbesondere die Parameter NoncurrentVersionExpiration und Expiration. Nur NoncurrentVersionExpiration entfernt alte Versionen, während Expiration die aktuelle Version durch einen Marker ersetzt.
Um Konflikte mit aktiven Prozessen auszuschließen, stellen Sie sicher, dass keine Replikations‑Jobs oder Anwendungen auf alte Versionen zugreifen. Wenn ein Replication Rule oder ein Compliance‑Lock (Object Lock / Legal Hold) aktiv ist, verhindert das die Löschung. Sie können dies mit aws s3api get-object-lock-configuration --bucket <bucketname> prüfen.
Zusammengefasst: kontrollieren Sie die Policy‑Definition, prüfen Sie mit list-object-versions den tatsächlichen Status, und überwachen Sie mit CloudTrail, ob DeleteObjectVersion‑Events ausgelöst werden. Erst wenn diese Events erscheinen, wird Speicherplatz tatsächlich freigegeben.
Domic VO.