S3: Einführung

Betreibt man einen Cloud-Service zur Datenspeicherung, geht es für den Betreiber weniger darum, was für Daten darin gespeichert werden (Word-Dokumente, Video-Dateien oder Zip-Archive) und mehr darum, wie diese Daten kostengünstig, effizient und fehlerfrei verwaltet und bereitgestellt werden können. Dabei sind Kriterien wie Vertrauenswürdigkeit, Integrität und Verfügbarkeit besonders wichtig.

Speicherhierarchie

Um Daten verwalten zu können, wird ein Datenspeicher benötigt. Man unterscheidet zwischen verschiedenen Arten von Datenspeichern, die sich u.a. nach folgenden Kriterien einordnen lassen:

  • Zugriffsgeschwindigkeit (lesend & schreibend)
    • von langsam bis schnell
  • Speicherkapazität (z.B. in Megabyte, Gigabyte, Terabyte)
    • von klein bis gross
  • Kosten (pro Speichereinheit)
    • von günstig bis teuer

Hierbei gilt die folgende Faustregel:

  • Schneller Speicher ist klein und teuer.
  • Langsamer Speicher ist gross und günstig.

Nach diesen Kriterien lassen sich verschiedene Arten von Datenspeichern in eine Speicherheirarchie einordnen (Beispiele Stand 2022):

SpeichertypZugriffszeitKapazitätPreis
CPU-Register< 1 ns64 kB> 1 CHF pro kB
CPU-Cache (L1, L2, …)5-10 ns8-64 MB> 1 CHF pro MB
RAM15-20 ns16-256 GB~ 4 CHF pro GB
SSD25-100 µs0.25-4 TB~ 0.1 CHF pro GB
HDD5-10 ms1-20 TB~ 30 CHF pro TB
Tape10-100 s1-30 TB~ 10 CHF pro TB

Aufgrund dieser Eigenschaften eignen sich verschiedene Datenspeicher für verschiedene Einsatzgebiete:

SpeichertypEinsatzgebiet
CPU-RegisterDaten für aktuell laufende Instruktionen
CPU-CacheDaten für häufig verwendete Instruktionen
RAMDaten für derzeit laufende Programme (Datenstrukturen)
SSDDaten für häufigen Zugriff (Dokumente, Programme)
HDDDaten für seltenen Zugriff (Datenablage, Online-Backup)
TapeDaten für Langzeitarchivierung (Offline-Backup)

Ein oft genannter Vorteil vom Cloud Computing besteht darin, dass man sich nicht um die Hardware zu kümmern brauche. Doch auch Cloud-Speicherplatz gibt es in verschiedenen Speicherklassen, deren Parameter (Zugriffsgeschwindigkeit, Grösse, Preis pro Speichereinheit) davon abhängen, welcher Speichertyp zum Einsatz kommt.

S3: Simple Storage Service

Amazon Simple Storage Service (S3) Amazon Simple Storage Service (S3)

Amazons Simple Storage Service (kurz: S3) ist seit Frühling 2006 verfügbar und damit eines der ältesten Cloud-Angebote. Kann man ein lokales Dateisystem als eine Zuordnung von absoluten Dateipfaden zu Dateien verstehen, verwendet S3 URLs zur Identifikation und zum Zugriff (lesend, schreibend) von Objekten. Objekte sind dabei als unstrukturierte Daten bzw. als reine BLOBs (Binary Large Object) zu verstehen.

Im Gegensatz zu einem Dateisystem ist die Hierarchie von S3 flach:

  • Ein Bucket (“Eimer”) entspricht einem Ordner, kann aber nur Objekte und keine anderen Buckets beinhalten.
  • Ein Object (“Objekt”) entspricht einer Datei und kann bis zu 5 Terabyte gross sein.

Zwar können Buckets auch Ordner aufnehmen, diese gelten jedoch als Objekte und nicht als “Untereimer”.

Grobe Zugriffsberechtigungen können auf Stufe Bucket vergeben werden. Weiter ist es möglich, Buckets wie einen normalen Dateiordner in ein Dateisystem einzuhängen. Das Konzept nennt sich FUSE (Filesystem in Userspace) und wird im Rahmen der Übungen betrachtet.

S3-Speicherklassen

Wie sich auf der Hardware-Ebene verschiedene Arten von Speicher in eine Speicherhierarchie einordnen lassen, verfügt auch S3 über sogenannte Speicherklassen:

SpeicherklasseZweck
StandardHäufig verwendete Daten
Standard-IASelten verwendete Daten (IA: Infrequent Access)
Intelligent-TieringAutomatische Ablage in kosteneffizienter Klasse
One Zone-IASelten verwendete Daten in einer bestimmten Zone
OutpostsAusserhalb von Amazon-Infrastruktur gehosted
Glacier Instant RetrievalSeltene, aber schnelle Zugriffe
Glacier Flexible RetrievalSeltene, unterschiedlich schnelle Zugriffe (3 Stufen)
Glacier Deep ArchiveSeltene, langsame (dafür günstige) Zugriffe

Dabei ist es denkbar, dass die schnelleren Speicherklassen für häufigere Zugriffe mit SSDs, die langsameren Speicherklassen für seltenere Zugriffe mit HDDs oder externen Speichermedien auf der Amazon-Infrastruktur umgesetzt werden.

Es ist möglich, die Datenspeicherung auf bestimmte Regionen und Zonen einzuschränken. Die Kosten können dabei variieren.

Aufgrund der Einfachheit von S3 haben praktisch alle Cloud-Anbieter einen zu S3 kompatiblen Service im Angebot. In der Regel heissen diese Service auch “S3”. Manche Anbieter bezeichnen ihre S3-Implementierung einfach als “Storage” oder “Object Store”. Ausserdem gilt S3-Speicherplatz als extrem günstig. Es gibt auch verschiedene S3-Implementierungen, die als Open-Source-Software zur Verfügung stehen, wie z.B. RustFS, das im Rahmen dieses Moduls zum Einsatz kommt. Neben virtuellen Maschinen stellen S3-kompatible Services somit ein sehr geringes Risiko dar was das Vendor Lock-In betrifft.