|
|||
Das ist mein Blog. Hier gibts, was ich tue, getan habe und vielleicht tun werde. Auch, wenn und weil das total unwichtig für den weiteren Verlauf der Geschichte ist. Viel Spaß damit. Wer mich möglichst zeitnah erreichen und/oder beschimpfen will, versuche dies per Email (s.u.), per Twitter, auf Facebook oder im ircnet oder suche mich persönlich auf. RSS-Feed br> Startseite br> --> br> Einträge nach Kategorien br> Einträge nach Datum br> |
28.11.2009
Okay, wenn der pointy-haired boss das so will, dann machen wir das mal. Seit ungefähr 4 Wochen vor dem passenden Dilbert beschäftige ich mich mit Cloud Computing, und versuche herauszufinden, ob das für unsere Firma eine brauchbare Möglichkeit ist. Genauer, ob es für uns interessant ist, entsprechende Resourcen zu nutzen, weil sie angeblich schnell und auf den Punkt verfügbar sind, sehr gut skalieren und erst genau im Moment der Nutzung Kosten verursachen. Ziel der Untersuchung ist einer der ganz großen Cloud Computing Anbieter, Amzon. Genauer AWS - Amazon WebService. Das gute daran: Jeder, der einen 'normalen' Amazonk-Account hat, kann darüber eventuelle Experimente abrechnen. Da das für die meisten Leser ein relativ neues Feld sein wird, gibts erstmal ein paar AWS-Konzepte erklärt. AWS bietet sehr viel mehr als ich hier darstelle - siehe die Produktseite, ich beschränke mich hier erstmal auf EC2 und S3. Grob gesagt stellt Amazon EC2 (Elastic Compute Cloud) die eigentlichen virtuellen Maschinen-Resourcen zur Verfügung. EC2 ist auf gute Skalierbarkeit und pay-per-compute ausgerichtet. D.h., es ist sehr einfach, zusätzliche, identisch konfigurierte Instanzen auch kurzfristig zu den vorhandenen dazuzustarten. Abgerechnet wird streng nach Verbrauch (CPU, Traffic, Plattenplatz, genutzte IPs usw). Was man nicht nutzt (und deswegen abschaltet), zahlt man auch nicht. Eine gute Einführung in die Konzepte gibts im EC2 GettingStartedGuide und die eigentliche Bedienungsanleitung im EC2 UserGuide. Da, wo mein Geschreibsel ins Nebulöse abgleitet, ist man beim Nachspielen gut beraten, diese Dokus zu lesen (die gibts auch als html und auch diverse weitere, gute Doku). Amazon S3 (Simple Storage Service) bietet eine einfache Mögllichkeit, beliebige Daten im Netz vorzuhalten. S3 wird über eine eigene API angesprochen und kann nicht direkt als Filesystem in eine EC2-Instanz gemounted werden. Auch S3 wird streng nach Verbrauch (verbrauchter Plattenplatz, Traffic) abgerechnet. Alle AWS Komponenten laufen selbst auch in Clouds, die Amazon als Regions bezeichnet. Derzeit gibt es zwei Regionen, eine an der US-Ostküste, eine in Europa. Wichtig ist hier nur, daß in der Regel alle Services in der gleichen Region läufen müssen, wenn diese in einem Projekt gemeinsam genutzt werden sollen. Ein Umzug in die andere Region ist möglich, aber umständlich. Die konkrete Anzahl von Rechenzentren hinter diesen Regionen ist erstmal verborgen und unwichtig. Im EC2 gibt es ein paar tolle Marketingschwurbel-Begriffe, die ich trotzdem verwende, weil ich sonst andere, die ebenfalls EC2 verwenden, nicht verstehe.
Eigentlich kommt man mit dem oben dargestellten Möglichkeiten gut zurecht, allerdings nur, wenn man keine selbst vergurkten AMIs verwendet :-) Die sinnvollste Möglichkeit, größere Datenmengen (z.B. eben AMIs) unabhängig von einer laufenden Instanz in der Amazon Wolke abzulegen, bietet S3 - Simple Storage Service. Zum S3 gibts auch wieder diverse Dokumentationen, Einstieg ist wieder der entsprechende GettingStartedGuide. S3 ist nicht direkt mit mount als klassisches Filesystem mountbar, sondern über eine REST- bzw SOAP-API, für die es in jeder aktuell gängigen Programmiersprache Beispiele zum Anflanschen eigener Software gibt. Aktuelle Software zum Handhaben von Dateien (z.B. cyberduck aufm Mac, S3fox für Firefox und eben EC2-AMIs) hat entsprechende Schnittstellen implementiert.Informationen werden in sogenannten buckets organisiert und bieten eine relativ granulare Möglichkeit der Zugangsberechtigungssteuerung. Die AWS nutzen eine mehrstufige Authentifizierung, die sich auch je nach Komponente unterscheidet.
Neben den oben genannten Tools für S3 gibt es noch ein paar weitere, mit denen man sich an die Möglichkeiten von EC2 rantasten kann:
Seine ganze geballte Kraft entfaltetet sich aber erst, wenn man die ec2-api-tools einsetzt, die man einigermaßen vernünftig skripten kann. Die ec2-api-tools sind in java geschrieben, und durch clevere wrapper für so ziemlich jede Betriebssystemsumgebung geeignet, wo man ein java und eine shell draufgewämst bekommt. Meine Beispiele beziehen sich auf nen Unix, genauer nen Mac. Das geht aber auch gut unter Windows. Wenn man sich an die traditionellen Regeln für shell-Betrieb hält, und alle einigermaßen konstanten Parameter als Umgebungsvariablen exportiert ( $ set|grep EC2 EC2_CERT=/Users/alesti/.ec2/cert-test.pem EC2_HOME=/usr/local/ec2-api-tools EC2_PRIVATE_KEY=/Users/alesti/.ec2/pk-test.pem EC2_URL=https://eu-west-1.ec2.amazonaws.com ), sind die Tools angenehm zu nutzen, ansonsten hat man schnell ekelhafte Kommandowürmer: ec2-describe-instances -K ~/.ec2/pk-test.pem -C ~/.ec2/cert-test.pem \ -U https://eu-west-1.ec2.amazonaws.com i-04f60b73 gegen ec2-describe-instances i-04f60b73 Das Ergebnis ist in beiden Fällen (auf zwei Zeilen): RESERVATION r-b07398c7 \ 358240633166 \ testgroup,default INSTANCE i-04f60b73 \ ami-370e2543 \ ec2-79-125-2-112.eu-west-1.compute.amazonaws.com \ ip-10-224-99-79.eu-west-1.compute.internal \ running \ 0 \ m1.small \ 2009-11-24T16:56:00+0000 \ eu-west-1a \ aki-02486376 ari-fa4d668e \ monitoring-disabled \ 79.125.2.112 \ 10.224.99.79 Das kann man gut mit shell-Mitteln auseinanderfummeln und weiter verwursten. Soviel erstmal zu den Basics, im folgenden zweiten Teil folgt dann der praktische Umgang mit AWS EC2 und S3.
[Kategorie: /computers] - [permanenter Link] - [zur Startseite] |