AWS Bits: Mountpoint für Amazon S3

Avatar von Jürgen Lesny

Mit Mountpoint for S3 ist seit dem 9. August 2023 ein neuer File-Client für den Zugriff auf Objekte im Amazon S3 verfügbar. Mit ihm können Entwickler ein S3 unter Unix als Filesystem einhängen. Für die Weiterverarbeitung von S3-Objekten steht damit die Welt der Unix-Tools offen – ohne für das S3-Retrieval zusätzlich Code schreiben zu müssen.

Da auch schon Packages für beliebte Distributionen bereitstehen, ist die Installation recht einfach. Hier für Ubuntu:

wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.deb
sudo apt-get install -y ./mount-s3.deb

Anschließend können Anwender ein S3 im System einhängen:

mkdir /tmp/mnt
aws-vault exec mayflower_workshop -- mount-s3 mayflower_workshop /tmp/mnt/ --allow-delete

Ich verwalte meine AWS-Credentials mit aws-vault. Man kann seine Credentials auch direkt in $HOME/.aws ablegen, wie für die AWS CLI üblich, das ist aber bei weiten nicht so komfortabel und sicher.

Jetzt stehen auch die Unix-Tools zur Verfügung. Möchte ich zum Beispiel alle Markdown-Dateien nach HTML mit pandoc konvertieren, schreibe ich:

cd /tmp/mnt
for md_file in *.md; do echo pandoc -o "$(basename "$md_file" .md).html" "$md_file"; done

Und natürlich kann ich das Filesystem wieder aushängen, wenn ich es nicht mehr benötigte:

umount /tmp/mnt

Wegen seiner Besonderheiten ist das Filesystem allerdings nicht mit allen UNIX-Tools kompatibel. Das Kopieren mit Rsync endet mit einem Fehler, da die temporären Dateien nicht umbenannt werden können!

Man sollte das Filesystem auch nicht für Logging verwenden, da die Dateien nur 1x beschrieben werden können.

Hier ein kleiner Spickzettel, welche UNIX-System Call unterstützt werden.

AktionSystem CallUnix CommandUnterstützung?Kommentar
Verzeichnis erstellenmkdirmkdir dir(Glühbirne)Nur lokal:

Leere Verzeichnisse existieren nur lokal und sind nach dem Aushängen aus dem Filesystem nicht mehr existent!
Verzeichnis löschenrmdirrmdir dir(Glühbirne)Nur lokal:

Wenn alle Objekte aus dem Verzeichnis gelöscht sind, wird das Verzeichnis automatisch gelöscht!
Verzeichnisinhalt lesenopendir, readdir, closedirls dir(Haken)
Dateien erstellencreattouch file(Haken)
Dateien schreibenwrite, fsyncecho content > file(Glühbirne)Nur einmalig möglich
Dateien lesenopen, read, lseek, closecat file(Haken)
Dateien löschenunlinkrm file(Haken)Die Option --allow-delete muss beim Einhängen verwendet werden
Dateien umbenennenrenamemv file newfile(Fehler)Ein Workaround besteht aus kopieren und löschen
Linkslinkln -s file symlink(Fehler)Weder harte noch symbolische Links werden unterstützt.

(Glühbirne) symlinks von einem anderen Dateisystem aus zu einem S3 Objekt gehen aber sehr wohl!

Noch ein kurzer Blick auf die Kosten … Mountpoint for S3 selbst ist frei erhältlich, beim Zugriff auf AWS S3 können aber sehr wohl Kosten entstehen. Zum Beispiel kann die Verwendung der Shell-Completion unbeabsichtigt Kosten verursachen, da im Hintergrund ein S3 LIST ausgeführt wird. 

weiterführende Links zum Thema

Weitere News aus dem AWS-Universum


Avatar von Jürgen Lesny

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Für das Handling unseres Newsletters nutzen wir den Dienst HubSpot. Mehr Informationen, insbesondere auch zu Deinem Widerrufsrecht, kannst Du jederzeit unserer Datenschutzerklärung entnehmen.