Im Rahmen der Cloud-Beratung, die wir unseren Kunden bei DoiT International bieten, begegnen mir gelegentlich Extremfälle, in denen Sparversuche der Kunden tatsächlich zu höheren S3-Speicherkosten führen. Dieser Beitrag zeigt, wie sich das vermeiden lässt.

Beim Speichern von Dateien (Objekten) in einem S3-Bucket stehen folgende Storage Classes zur Verfügung: Standard (Standardeinstellung), Infrequent Access (auch Standard-IA genannt), Intelligent-Tiering, Glacier und S3 Outposts.
Die Storage Class wird beim Upload oder zu einem späteren Zeitpunkt festgelegt. Üblich ist es, im Bucket eine Lifecycle Rule anzulegen, die festlegt, welche Aktionen Amazon S3 während der Lebensdauer eines Objekts ausführen soll – etwa den Wechsel der Storage Class von Standard zu Infrequent Access 30 Tage nach Erstellung der Datei.
Die Storage Class Infrequent Access ist günstiger als Standard. Download-Geschwindigkeit, Speicherbeständigkeit und Latenz sind identisch mit Standard, allerdings ist der Download einer Datei teurer als bei Standard. Wie der Name schon sagt, eignet sich Infrequent Access daher für Dateien, auf die nur selten zugegriffen wird.

Eine Lifecycle Rule, die Dateien von Standard in den Intelligent Tier überführt. Die Transitionskosten betragen 2.000 $. Fünf Monate nach der Umstellung zahlt der Kunde unter dem Strich weniger für die Speicherung.
Häufige Kostenfallen bei S3
Zwei typische Probleme treiben die Speicherkosten eines Buckets in die Höhe:
- Den wenigsten ist bewusst, dass der Wechsel von einer Storage Class in eine andere Geld kostet. AWS berechnet 0,01 $ pro 1.000 Transitionen von Standard zu Infrequent Access.
- Bei einigen S3 Storage Classes gilt eine Mindestdateigröße. Bei Infrequent Access liegt sie bei 128 KB.


Spezifikationen der S3 Storage Classes
Das kann dazu führen, dass ein Kunde mit Hunderten Millionen kleiner Dateien in einem S3-Bucket eine hohe einmalige Transitionsgebühr zahlen muss.
Wie viele Dateien liegen in meinem Bucket?
Es gibt zwei Wege, die Anzahl der Dateien und die Größe des Buckets zu ermitteln:
- Auf Dateiebene – Mit dem S3 Inventory lässt sich ein täglich generierter Report erstellen, der die Liste der Dateien im Bucket samt Dateigröße und Storage Class ausweist.
- Auf Bucket-Ebene – Über CloudWatch-Metriken sehen Sie die Anzahl der Dateien und die Größe des Buckets. Diese Metriken finden Sie auch in der S3-Konsole unter Management –> Metrics.

Größe des S3-Buckets

Anzahl der Dateien im S3-Bucket
Wann lohnt sich eine Lifecycle Rule?
Berechnen Sie zunächst die (ungewichtete) durchschnittliche Dateigröße, indem Sie die Größe des S3-Buckets durch die Anzahl der Dateien teilen.
In dem Bucket, aus dem die Screenshots in diesem Artikel stammen, liegen 22,1 TB Daten in 6,3 Millionen Dateien – das ergibt eine durchschnittliche Dateigröße von 3,42 MB.
Ein Wechsel zu Infrequent Access kann unter Umständen zu einer hohen Einmalzahlung bei den Speicherkosten führen.
Transitionskosten und Wirtschaftlichkeit der Lifecycle Rule berechnen
Stellen wir die Storage Class dieses 22,1-TB-Buckets per Lifecycle Rule auf Infrequent Access um, fällt für 6,3 Millionen Dateien eine einmalige Transitionsgebühr von 63 $ an (6.300.000 Dateien geteilt durch 1.000, multipliziert mit 0,01 $) – bei monatlichen Speicherkosten von 282,88 $.
Aus den obigen Berechnungen wird deutlich, dass der Wechsel zwischen den Klassen bereits ab dem ersten Monat zu einer Kostensenkung führt.
Fazit
AWS S3 bietet eine ganze Reihe an Storage Classes, die – richtig eingesetzt – für mehr Effizienz und niedrigere Kosten sorgen.