Cloud-Geschichten – Teil 3 – Das schnelle Lagerregal

Weiter geht’s mit oder vielmehr in der Alibaba Cloud. Für das Ziel des Hostings von statischen Webseiten wollte ich insbesondere keine virtuelle Maschine in der Cloud einrichten, die dann wiederum mit Web-Server-Software etc. bestückt hätte werden müssen. Schließlich sollten die angebotenen Cloud-Dienste genutzt werden, denn um eine VM in Eigenregie mit der benötigten Software einzurichten, bräuchte man keinen Cloud-Anbieter, dazu würde ein klassischer Provider genügen. Unter den vielen Services innerhalb der Alibaba Cloud findet sich für die Zwecke der Speicherung von beliebigen Dateien der Dienst namens Object Storage Service, dessen offizielle Abkürzung OSS im Folgenden auch verwendet werden soll – die drei Buchstaben stehen in diesem Kontext somit nicht für Open Source Software.

OSS – was, wie, warum?

Vereinfacht dargestellt kann OSS als Dateisystem angesehen werden, was die Präsentation im Admin-UI und der Alibaba-Cloud-eigenen Desktop-Anwendung auch nahelegt. Letztlich lassen sich Dateien, die als Objekte bezeichnet werden, ablegen und unter gewissen Bedingungen natürlich auch wieder lesen. Beispielsweise kann das Recht vergeben werden, dass der lesende Dateizugriff von überall möglich ist und allen offen steht, während das Schreiben oder Verändern nur speziellen (Sub-)Accounts mit entsprechenden Zugangsdaten erlaubt ist. Genau diese Einstellung ist für das Hosting von statischen Seiten auch notwendig, wenn die Öffentlichkeit in der Lage sein soll, auf Web-Seiten zuzugreifen.

OSS bietet aber natürlich mehr, insbesondere steht die Skalierbarkeit und Zuverlässigkeit im Vordergrund, Alibaba Cloud gibt für Letzteres tatsächlich eine Zahl von 99,999999999% an, womit jedoch kaum die Hochverfügbarkeit gemeint sein kann, denn bereits “nine nines”, also 99,9999999% würde auf ein Jahr betrachtet bedeuten, dass der Dienst gerade einmal (gerundet) 32 Millisekunden (!) ausfallen dürfte.  Als Angabe zur “service availability” werden hingegen “nur” 99,9% genannt, womit OSS bereits knapp neun Stunden pro Jahr ausfallen dürfte. Schätzungsweise beziehen sich die elf Neunen auf die Zuverlässigkeit der Datensicherung an sich, also dass die gespeicherten Daten mit einer solchen Wahrscheinlichkeit auch erhalten bleiben. Um noch ein paar Features anzugeben, OSS soll leicht zu benutzen sein, bietet feingranulierte Sicherheits-Funktionen, ist selbstverständlich kosteneffizient und für eine Vielzahl von Speicher-Anwendungen nutzbar. OSS bietet ebenfalls unterschiedliche Speicherklassen, die für ihren jeweiligen Anwendungszweck optimiert sind. Unterschieden wird dabei bei der Art und Weise des Zugriffs, so müssen etwa Web-Seiten oder deren statische Dateien, Fotos etc. schnell erreichbar sein und einen hohen Durchsatz bieten, während Backup-Dateien oder grundsätzlich Dateien, die als Archiv anzusehen sind, nicht parallel an Hunderte Clients ausgeliefert werden. Diese Unterschiede machen sich auch in den Kosten bemerkbar, wobei natürlich gilt, je schneller, desto teurer. Alibaba Cloud nennt noch weitere Anwendungsszenarien wie Bild- und Video-Verarbeitung oder die Nutzung von OSS innerhalb des ETL-Prozesses (Extract, Transform, Load) bei Datenbanken.

Viele Speicher-Dienste von Cloud-Anbietern orientieren sich an Amazon S3 (Simple Storage Service) und bieten eine S3-kompatible API an, so auch Alibaba Cloud mit OSS. Das führt dazu, dass Client-Anwendungen, die die S3-API nutzen, auch mit OSS funktionieren müssten. Anhand meiner vorsichtigen Wortwahl wird bereits deutlich, dass dies nicht immer gilt, so ist mir beispielsweise ein Client begegnet, der tatsächlich nur mit Amazons S3 lief, ganz einfach sich die API-URL unsinnigerweise nicht ändern ließ. Andererseits habe ich im Rahmen einer anderen Entwicklung die API von Alibabas OSS problemlos mit dem AWS SDK für PHP ansprechen und somit nutzen können. Die S3-Kompatibilität erstreckt sich bis hin zur Verwendung derselben Nomenklatur, so wird OSS in so genannten “Buckets” organisiert. Ein Bucket ist dabei ein Namensraum, eine Einheit zur Strukturierung. In einem Bucket lassen sich wie in einem Dateisystem wiederum Verzeichnisse und natürlich Dateien anlegen. Die verfügbaren Konfigurationsoptionen wie Wahl der Region des Rechenzentrums, Zugriffsrechte, Storage Class etc. gelten jedoch immer gemeinsam für ein Bucket, selbstverständlich können mehrere Buckets angelegt und verwendet werden.

Erste Schritte

Im Folgenden ein paar Hinweise zu den ersten Schritten mit OSS.

Für alle Services von Alibaba Cloud gilt, dass man sich vor deren Nutzung noch explizit registrieren und natürlich die Nutzungsbedingungen bestätigen muss. Die Anmeldung wird einerseits per Mail bestätigt,

 

Die erfolgreiche Anmeldung wird einerseits per Mail bestätigt, andererseits auch umgehend angezeigt.

Falls man sich im Rahmen der kostenlosen Testphase angemeldet hat, erfolgt die Information, welcher Betrag für den jeweiligen Dienst zur Verfügung steht. Bei OSS waren es gerade einmal fünf Dollar von insgesamt 300 US-$, aber auch das ist vollkommen ausreichend, um sich einen detaillierten Eindruck zu verschaffen.

Die OSS-Übersicht ist zunächst erwartungsgemäß leer. Der erste Schritt besteht daher im Anlegen eines Buckets.

Nach dem Klick auf “Create Bucket” öffnet sich rechts ein Dialogfeld, in dem der Name des Buckets angegeben und die Region festgelegt werden muss.

Sprachprobleme

Wie anhand der Screenshots zu erkennen ist, sehen manche Dialoge bzw. generell Bereiche auf den Seiten etwas merkwürdig aus. Genau das ist der Sprachwahl geschuldet, weshalb es sich empfiehlt, auf die englische Sprache zu wechseln.

Nach Wahl der englischen Sprache sieht der Dialog zum Erstellen eines Buckets schon wesentlich verständlicher aus, was sich in der Wahl der Storage Class und Access Control bemerkbar macht. Der folgende, ein wenig später erstellte Screenshot zeigt denselben Dialog in der englischen Fassung.

Buckets, Verzeichnisse, Dateien

Nach dem Anlegen des Buckets lässt sich auf die entsprechende Overview-Seite wechseln, die Auswahl erfolgt in der linken Spalte, dort werden alle verfügbaren Buckets dargestellt. Auch hier erscheint die Ausgabe wieder etwas “zerschossen”.

Eine aktuelle bzw. englische Ansicht zeigt der nächste Screenshot:

Auf dieser Seite werden alle relevanten Informationen genannt, einerseits der Speicher- und Traffic-Verbrauch, andererseits die Namen der so genannten Endpoints, d.h. URLs, unter denen der Speicher von außen bzw. innerhalb der Alibaba Cloud erreichbar ist. Da im Beispiel der Zugriff auf “private” gesetzt ist, erübrigt sich der Versuch des Zugriffs von außen.

Nachdem ein Bucket angelegt worden ist, können bereits mit der Admin-UI Dateioperationen durchgeführt werden. Unter dem Tab “Files” – wiederum hier schwer zu erkennen – lassen sich Dateien hochladen, Ordner erstellen und natürlich auch wieder löschen und weitere Aktionen durchführen.

Natürlich sind diese Dateioperationen auch mittels der OSS-API möglich, dazu mehr in einem der nächsten Beiträge.

Sicherheit & Co.

An dieser Stelle zunächst noch ein Wort zu den Zugangsdaten. Wie bei konkurrierenden Cloud-Services, bietet die Alibaba Cloud ebenfalls ein umfassendes System zur Zugangskontrolle und Authentifizierung, genannt Resource Access Management (RAM). Dabei können Sub-User und Gruppen angelegt werden, denen wiederum Rollen und Policies zugewiesen werden, so dass der Zugriff auf einzelne Bereiche bzw. Dienste innerhalb der Cloud detailliert spezifiziert wird. Wie bei so vielen dieser Systeme ist die Nutzung mit einiger Vorarbeit und Komplexität verbunden. Für den ersten Test habe ich somit die für den Login-User globalen Zugangsdaten genutzt. Diese sind per Klick auf das User-Icon unter “Access Key” erreichbar.

Zunächst erscheint ein Dialog mit eingehender Warnung, dass man doch besser Sub-User mit RAM nutzen sollte.

Dennoch lassen sich die globalen Zugangsdaten nutzen, mit Klick auf “Continue to manage AccessKey” können dessen Bestandteile AccessKey ID und Access Key Secret (nach Klick auf “Show”) angezeigt werden.

In einem späteren Teil werde ich noch auf Sub-User, RAM und eine Policy zur Verwaltung eines Buckets von OSS eingehen.

Ein Gimmick – der OSS Browser

Falls man noch keinen S3-kompatiblen Client hat, bietet Alibaba Cloud sogar eine Desktop-Anwendung namens “ossbrowser” für Windows (32 und 64 Bit), Mac OS X und Linux an. Zwecks Test habe ich diese in der Mac-Version heruntergeladen. Beim Start offenbart sich der folgende Konfigurationsdialog.

Sofern die Zugangsdaten korrekt eingegeben sind, gelangt man zu dem Hauptbildschirm, der sich als eine Art Dateimanager zeigt. Netterweise steht der OSS Browser als Open Source auf GitHub zur Verfügung.

Der Dateimanager bietet die üblichen Funktionen wie Dateien und Verzeichnisse anlegen, löschen usw..

Darüber hinaus lässt sich der Zugriff anhand der ACL anpassen, hier steht entweder “Private”, “Public Read” oder “Public Read/Write” zur Verfügung. Natürlich findet man diese Einstellungsmöglichkeiten ebenso in der Web-UI der Alibaba Cloud, weshalb ich die Desktop-Anwendung tatsächlich auch nur ein einziges Mal zum Testen genutzt habe.

Tatsächlich wäre der OSS Browser ein schönes Dateimanagement-Tool für S3-kompatible Speicherdienste, aber leider ist die Alibaba Cloud hier fest “verdrahtet” worden.

Fazit und Ausblick

Der Einstieg in den Object Storage Service OSS von Alibaba Cloud gelingt leicht – letztlich müssen nur wenige Parameter wie Name und Zugriffseigenschaften eines Buckets festgelegt werden, danach steht OSS als verteilte und skalierbare Lösung zur Speicherung beliebiger Dateien zur Verfügung. Im nächsten Teil werde ich darauf eingehen, wie sich damit eine statische Website ins Netz bringen lässt, dabei kommt auch das OSS-CLI zum Einsatz, denn nachdem Hugo die Dateien generiert hat, ist es einfach praktischer, mittels einem weiteren Kommandozeilen-Aufruf alles in die Cloud zu laden, ohne einen Umweg über den Browser oder eine Desktop-Anwendung gehen zu müssen. Zuvor werde ich jedoch auf das hier nur angerissene Resource Access Management (RAM) eingehen und einen User anlegen, dessen Zugriff beschränkt sein wird auf die Administration des Buckets, in dem die statische Website platziert wird. Klingt langweilig? Ist es auch, muss aber leider sein, früher oder später…

 

Ähnliche Beiträge

Schreibe einen Kommentar

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

Tags: