Erste Schritte mit der Ubuntu Enterprise Cloud

Das Eucalyptus System kann auf viele unterschiedliche Umgebungen beliebig angepasst werden. Diese Installations-Anleitung zeigt die Einrichtung einer Privat Cloud auf Basis von Eucalyptus mit der Ubuntu Enterprise Cloud.

Ziel dieses Tutorials

Dieses Tutorial beschreibt die Installation, Konfiguration und Registierung, sowie weitere Schritte für die Arbeit mit einer grundlegenden Eucalyptus Einrichtung. Am Ende haben wir eine Cloud mit einem "Front-End" Controller und einem Knoten, auf dem mehrere Instanzen von Virtual Machines ausgeführt werden können, vollständig eingerichtet. Siehe dazu die Schritte 1 - 3.

In den Schritten 4 - 6 lernen wir die ersten Schritte für die Einrichtung einer Private Cloud und wie diese z.B. mit der RightScale Cloud Management Platform verbunden werden kann.

  • Schritt 1: Die Voraussetzungen
  • Schritt 2: Installation & Konfiguration
  • Schritt 3: Registrierung der Eucalyptus Komponenten
  • Schritt 4: Erster Login
  • Schritt 5: Erstellen eines Virtual Machine Image
  • Schritt 6: Starten eines Images

1. Schritt: Die Voraussetzungen

Das Eucalyptus System hat drei grundlegende Bestandteile:

  • eucalyptus-cloud: Beinhaltet den Cloud Controller (Front-End Services) und das Walrus Speichersystem.

  • eucalyptus-cc : Beinhaltet den Cluster Controller der für das virtuelle Netzwerk zuständig ist.

  • eucalyptus-nc: Beinhaltet den Node Controller zur Verwaltung der einzelnen Knoten, der mit der KVM (Kernel basierende Virtual Machine) kommuniziert und die jeweiligen Virtual Machines verwaltet.

Eine einfache Eucalyptus Umgebung besteht aus zwei Systemen, einem Front-End und einem Node. Das Front-End ist für eucalyptus-cloud und eucalyptus-cc zuständig. In einer komplexeren Umgebung mit mehreren Systemen können/ sollten die oben genannten Teile des Front-Ends voneinander getrennt betrieben werden. Da die Kommunikation vollständig über das Netzwerk erfolgt, ist diese Separierung einfach vorzunehmen.

Das folgende Diagramm zeigt einen einfachen Aufbau einer Eucalyptus Umgebung:

Vor der Installation der Pakete gibt es ein paar Voraussetzungen die erfüllt sein müssen, damit am Ende ein voll funktionsfähiges Eucalyptus System vorhanden ist. Zunächst muss das Front-End in der Lage sein E-Mails zu verschicken. Die Administrations-Tools von Eucalyptus nutzen E-Mails um den Administrator zu benachrichtigen, das er die Anmeldeinformationen von Benutzern prüfen muss. Dazu sollte Postfix installiert werden und als 'mailhost' der 'localhost' eingetragen werden (z.B. als Eintrag in die /etc/hosts).

Auf dem Node auf welchem von Eucalyptus die Virtual Machines ausgeführt werden, muss die erste Netzwerkschnittstelle als Bridge (BR0) konfiguriert werden. Sie dazu (Ubuntu Server Guide Bridging - in Englisch). Dieser Bridge fügt Eucalyptus für jede vorhandene Virtual Machine eine virtuelle Netzwerkschnittstelle (Virtual Network Interfaces) hinzu, bevor die Netzwerkverbindung einer Virtual Machine aktiviert wird.

Des Weiteren benötigt Eucalyptus einen DHCP Server der automatisch IP-Adressen vergibt. Ab dem Zeitpunkt wo die Virtual Machines über die Bridge mit dem lokalen Netzwerk verbunden sind, führen sie ihren lokalen DHCP Client aus, um eine IP-Adresse zu erhalten.

Auf jedem Host der einen Eucalyptus Client nutzt, sollten die Amazon Elastic Compute Cloud (EC2) API und AMI Tools installiert werden. Dafür wird folgendes benötigt:

http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip
http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip

Damit die ec2-ami-tools einwandfrei funktionieren müssen zusätzlich die Pakete ruby, libopenssl-ruby und curl installiert werden.

Für den Zugriff der EC2-ami-Tools auf die Meta-Daten (wie z.b. EC2-bundle-vol), muss folgender Eintrag vorgenommen werden. Bei der CC_IP handelt es sich um die IP-Adresse des Rechners auf dem Eucalyptus-cc ausgeführt wird.

vi ec2ami/lib/ec2/amitools/instance-data.rb
(set META_DATA_URL="http://:8773/latest/meta-data")

  • Ports: Um auf Eucalyptus auch hinter einer Firewall zugreifen zu können muss der Port 8773 geöffnet werden. Das ist z.B. dann der Fall, wenn sich die EC2- und AMI-Tools sowie die Eucalyptus Cloud auf unterschiedlichen Seiten der Firewall befinden. Wenn das Eucalyptus System mit einer Cloud Management Platform verbunden werden soll, müssen zusätzlich die Ports 8773 und 8443 geöffnet werden.

Schritt 2: Installation & Konfiguration

Zuerst werden die eucalyptus-cloud und eucalyptus-cc Pakete auf der Front-End Machine installiert.

sudo apt-get install eucalyptus-cloud eucalyptus-cc

Anschließend erfolgt die Installation des eucalyptus-nc Pakets auf jedem Node.

sudo apt-get install eucalyptus-nc

Am Ende wird der eucalyptus-nc Service auf dem Node gestoppt und die /etc/eucalyptus/eucalyptus.conf editiert. In der eucalyptus.conf erhält die Bridge den Namen der ersten Netzwerkschnittstelle. Danach wird der eucalyptus-nc Service wieder gestartet.

Die oben beschriebenen Schritte können wie folgt umgesetzt werden:

sudo /etc/init.d/eucalyptus-nc stop
sudo vi /etc/eucalyptus/eucalyptus.conf
(set VNET_BRIDGE="br0")
sudo /etc/init.d/eucalyptus-nc start

Das folgende Diagramm zeigt, wie die Umgebung danach aussehen sollte:

Das Netzwerk sollte außerdem so konfiguriert werden, dass der IPv4 Datenverkehr von den IPv6 Ports weitergeleitet wird, da das Eucalyptus Web-Frontend standardmäßig IPv6 verwendet.

sudo vi /etc/sysctl.conf
(uncomment net.ipv4.ip_forward=1)
sudo sysctl -p

Schritt 3: Registrierung der Eucalyptus Komponenten

Eucalyptus setzt voraus, das jeder Node innerhalb des Systems zu einem Cluster gehört. Ein Cluster wiederum gehört zu einer Cloud. Auf jedem Node wird eine Kopie von eucalyptus-nc ausgeführt. Genauso muss auf jedem Cluster eine Kopie von eucalytpus-cc ausgeführt werden. In unserem Beispiel wird der eucalytpus-cc auf der selben Maschine ausgeführt wie der Cloud Controller (eucalyptus-clc). Diese Komponenten müssen sich vor dem Start des Systems nun gegenseitig registrieren.

Für die Registrierung eines Cluster wird der folgende Befehl benötigt:

sudo euca_conf -addcluster localhost

Dabei entspricht dem Namen des Clusters, den die Benutzer sehen werden. Es handelt sich dabei um einen reinen logischen Namen, der nur lokal zu Eucalyptus gehört und mit einer Verfügbarkeitszone übereinstimmt, wie sie bei den Client-Tools angezeigt wird.

Um nun einen Node bei einem Cluster zu registrieren, ist der folgende Befehl notwendig.

sudo euca_conf -addnode

Später können weitere Nodes - auf denen eine Kopie von eucalyptus-nc ausgeführt wird - hinzugefügt werden, indem der obige Befehl erneut für jeden Node ausgeführt wird.

Schritt 4: Erster Login

Nach dem ersten Start von Eucalyptus muss die Administrationsumgebung der Cloud eingerichtet werden. Dazu öffnen wir im Webbrowser folgende UR:

https://[front-end-ip-address]:8443

Mit den Standardzugangsdaten Benutzername: admin und Passwort: admin erfolgt die erste Anmeldung, bei der das Passwort geändert werden muss. Nun folgen wir den Anweisungen auf dem Bildschirm. Ist die Konfiguration abgeschlossen klicken wir auf den Reiter credentials und anschließend auf Download Certificate.

Wichtig ist hierbei zu beachten, dass wir eine sichere Verbindung nutzen, also "https" anstatt "http". Wir erhalten eine Warnung auf Grund des Sicherheitszertifikats. Dafür müssen wir eine Ausnahme eintragen, um die Seite sehen zu können. Wird für diese Seite keine Ausnahme eingetragen, kann die Konfigurationsseite von Eucalyptus nicht angezeigt werden.

Jetzt müssen wir mittels X.509 Zertifikaten die EC2 API und AMI Tools auf unserem Server wie folgt einrichten.

mkdir ~/.euca
cd ~/.euca
mv ~/Desktop/euca2-admin-x509.zip ~/.euca
unzip euca2-admin-x509.zip

Die Installation kann mittels eines Skripts (ec2toolsinstall.sh) wie folgt durchgeführt werden.

cd ~/.euca
# Eucalyptus is not compatible with the newer ec2tools so we will
# install and remove them to insure all dependencies get installed
sudo apt-get install ec2-api-tools ec2-ami-tools
sudo apt-get remove ec2-api-tools ec2-ami-tools
wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip
unzip ec2-api-tools-1.3-30349.zip
mv ec2-api-tools-1.3-30349 ec2
wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip
unzip ec2-ami-tools-1.3-26357.zip
mv ec2-ami-tools-1.3-26357 ec2ami
echo 'export JAVA_HOME=/usr' >> eucarc
echo 'export EC2_HOME=~/.euca/ec2' >> eucarc
echo 'export EC2_AMITOOL_HOME=~/.euca/ec2ami' >> eucarc
echo 'export PATH=$PATH:$EC2_HOME/bin:$EC2_AMITOOL_HOME/bin' >> eucarc

Vergabe der Zugriffsrechte:

chmod +x ec2toolsinstall.sh

Das Skript sollte die Datei eucarc erzeugt haben, die noch noch ge-sourced werden muss.

source ~/.euca/eucarc

Optional: Registrierung bei RightScale

RightScale bietet eine Cloud-Management-Plattform für den Einsatz mit Eucalyptus. Diese Cloud Management Software wird als Service innerhalb der Amazon Web Services ausgeführt und muss daher die Möglichkeit haben, mit dem Eucalyptus Cloud Controller (eucalyptus-clc) der hinter einer Firewall steht, zu kommunizieren.

Daher müssen die Ports 8443 und 8773 (Richtung > Internet) geöffnet werden, damit RightScale mit der Eucalyptus Cloud kommunizieren kann.

Um unsere Eucalyptus Cloud bei RightScale zu registrieren, folgen wir den Anweisungen in der unten verlinkten Anleitung:

  • Registrieren der Eucalyptus Cloud bei RightScale.

Schritt 5: Erstellen eines Virtual Machine Image

Mit dem vmbuilder können wird ein Virtual Machine Image erstellen, das mit Eucalyptus gestartet werden kann.

Zunächst erstellen wir eine Datei mit dem Namen part, in der die Größe, der Typ und der Mountpunkt der Virtual Machine beschrieben ist:

root 400
/mnt/ephemeral 0 /dev/sda2
swap 1 /dev/sda3

Anschließend erstellen wir eine Skriptdatei mit dem Namen firstboot. Dieses Skript wird ausgeführt wenn das Image das erste Mal in Eucalyptus gestartet wird und installiert dabei einen SSH Daemon.

apt-get -y install openssh-server

Nun erstellen wir ein Image mit dem vmbuilder und übergeben beim Aufruf die beiden Skripte als Parameter.

sudo vmbuilder xen ubuntu --part ./part --firstboot ./firstboot

Mit Hilfe der EC2 API Tools packen und registrieren wir abschließend den Kernel, die Ramdisk und das Image.

mkdir kernel
ec2-bundle-image -i /boot/vmlinuz-2.6.28-11-generic -d ./kernel --kernel true
ec2-upload-bundle -b kernel -m ./kernel/vmlinuz-2.6.28-11-generic.manifest.xml
EKI=`ec2-register kernel/vmlinuz-2.6.28-11-generic.manifest.xml | awk '{print $2}'`
echo $EKI

mkdir ramdisk
ec2-bundle-image -i /boot/initrd.img-2.6.28-11-generic -d ./ramdisk --ramdisk true
ec2-upload-bundle -b ramdisk -m ramdisk/initrd.img-2.6.28-11-generic.manifest.xml
ERI=`ec2-register ramdisk/initrd.img-2.6.28-11-generic.manifest.xml | awk '{print $2}'`
echo $ERI

mkdir image
ec2-bundle-image -i ubuntu-xen/root.img -d ./image --kernel $EKI --ramdisk $ERI
ec2-upload-bundle -b image -m ./image/root.img.manifest.xml
EMI=`ec2-register image/root.img.manifest.xml | awk '{print $2}'`
echo $EMI

Der Kernel, die Ramdisk und das Image sind nun in der Eucalyptus Cloud und können dort genutzt werden.

Zur Bestätigung geben wir folgenden Befehl ein:

ec2-describe-images

Die Ausgabe sollte nun einen registrierten Kernel, Ramdisk und Image anzeigen, die als "available" gekennzeichnet sind.

Schritt 6: Starten eines Images

Bevor eine Instanz eines Image gestartet wird, müssen wir ein Schlüsselpaar (SSH Key) erstellen um uns nach dem Start als Root anmelden zu können. Der Schlüssel wird gespeichert, daher muss dieser Schritt nur einmal durchgeführt werden.

ec2-add-keypair mykey > ~/.euca/mykey.priv
chmod 0600 ~/.euca/mykey.priv

Falls wir unseren Key mal vergessen sollten, können wir uns mittels ec2-describe-keypairs eine Liste aller erstellten und auf dem System gespeicherten Schlüssel anzeigen lassen.

Nun können wir Instanzen von unserem registrierten Image wie folgt erstellen.

ec2-run-instances $EMI -k mykey

Während des ersten Starts einer Instanz erstellt das System einen Cache für das Image aus welchem die Instanz erstellt wird. Da die Images in der Regel sehr groß sind, kann dieser Vorgang etwas dauern.

Der aktuelle Status der Instanz kann mit folgendem Befehl abgefragt werden.

ec2-describe-instances

Die Ausgabe zeigt die aktuellen Informationen und den Status der Instanz. Während des ersten Starts sollte sich die Instanz im Status "pending" befinden. Ist die Instanz gestartet, sollte der Status auf "running" wechseln. Nachdem die Instanz über DHCP eine IP-Adresse erhalten hat können wir uns mittels des oben generierten SSH Keys mit der Instanz verbinden.

ssh -i ~/.euca/mykey.priv root@

Die Umgebung der Eucalyptus Cloud sollte nun diesem Diagramm entsprechen.

Weitere Informationen

  • Log Dateien: /var/log/eucalyptus
  • Konfigurationsdateien: /etc/eucalyptus
  • Init Skripte: /etc/init.d/eucalyptus-cc, /etc/init.d/eucalytpus-cloud und /etc/init.d/eucalytpus-nc
  • Datenbank: /var/lib/eucalyptus/db
  • Neustart (Anmerkung): Bei einem Neustart wird Eucalyptus nicht automatisch neu gestartet. Die Services müssen daher manuell geladen werden.
  • Umgebung (Anmerkung): Bevor der Client gestartet wird, sollten die Quellen unter ~/.euca/eucarc ge-sourced werden.

Quellen

Eucalyptus-Jaunty



Rackspace – Cloud Sites

Das Cloud Sites [1] Angebot von Rackspace gehört zu dem Bereich der klassischen Webhosting Angebote, wie man sie von jedem üblichen Anbieter kennt. Es dient zum Bereitstellen von statischen Webseiten, Weblogs wie z.B. Wordpress, Portalen wie Drupal, Joomla und DotNetNuke, Webshops oder Seiten für Marketing und Werbekampagnen. Der Zusatznutzen hebt sich von dem klassischen Webhosting dadurch ab, das die die Systeme auf denen sich die Webseiten befinden bei Bedarf automatisch skalieren und dadurch auch vor saisonalen Überlastungen geschützt sind.

Funktionsweise

    Erstellen der Seite und hochladen der Daten

  • Die Infrastruktur zum Hosten einer Webseite kann innerhalb von fünf Minuten erstellt werden. Konfigurationen für das Load Balancing, Clustering und redundantes Speichern der Daten wird automatisch durch das Rackspace übernommen.

    Automatische Skalierung

  • Die Daten der Webseiten werden automatisch und ohne Eingriff des Benutzers auf speziellen Clustersystemen gespeichert. Das bedeutet, dass die Performance mit den Anfragen der Benutzer wächst und eine Überlastung der Webseite nicht stattfindet.

Technologie

    Betriebssysteme

  • Die Infrastruktur hinter Cloud Sites besteht aus einer Vielzahl von Linux und Windows Servern, wobei jeder Cluster speziell auf das Betriebssystem abgestimmt ist. Vor Überlastungen schützen u.a. Load Balancing Mechanismen die bei Bedarf die Anfragen automatisch verteilen. Für jede Webseite oder einzelne Seite einer Webseite kann auf Linux oder Windows zurückgegriffen werden. Neben Standardsoftware wie Wordpress, Drupal oder .NETNuke besteht ebenfalls die Möglichkeit eigene proprietäre Software auf den System zu installieren.

    Load Balancing

  • Die Daten der Webseiten und Anwendungen werden auf eine Vielzahl von Servern verteilt und mittels Load Balancing findet anschließend die Verteilung der Anfragen auf die Server statt. Fällt z.B. ein Server aus, übernimmt automatisch ein anderer Server seine Aufgabe und beantwortet die Anfrage, wodurch der Benutzer gar nicht bemerkt das ein technisches Problem vorliegt. Ein weiterer Vorteil besteht im Skalieren der Webseiten-Performanz. In Momenten, z.B. während eines Fernsehberichts in dem über die Webseite berichtet wird, sind die meisten Webseiten (vielmehr die Server auf denen sich die Webseiten befinden) auf Grund von zu vielen Anfragen überlastet und die Anfragen werden nicht mehr beantwortet. Der Sinn und Zweck des Fernsehberichts ist damit gescheitert, denn die meisten Benutzer werden nicht wiederkommen, wenn Sie merken, dass sie kein Angebot vorfinden. Durch das Load Balancing werden die Anfragen in solchen Momenten automatisch auf mehrere Server verteilt und die Antwortzeiten der Webseiten verhalten sich wie an "normalen" Tagen.


[2]

    Linux

  • Debian + Red Hat Enterprise
  • PHP v5.2MySQL v5
  • Apache v1.3 + v2.
  • 2Perl v5.8
  • Mod Rewrite Enabled


[3]

    Windows

  • Windows 2008 Server
  • .NET v2, v3, & v3.5 SP1
  • IIS 7
  • MS SQL 2008

    Verwaltung

  • Web-Interface für die Verwaltung
  • Secure File Transfer (SFTP)
  • Master FTP Account und weitere
  • Starten von Cron Jobs, Zugriffsverwaltung und entpacken von Dateien


[4]

    DNS

  • White-label Nameserver
  • Online DNS Verwaltung
  • Private-label Nameserver
  • Eigener DNS-Server (optional)


[5]

Preise

Alle Preise sind hier zu finden: Rackspace Cloud Files Preise

Quelle

[1] Rackspace Cloud - Cloud Sites
[2] Graphik: Rackspace Cloud - Cloud Sites (1)
[3] Graphik: Rackspace Cloud - Cloud Sites (2)
[4] Graphik: Rackspace Cloud - Cloud Sites (3)
[5] Graphik: Rackspace Cloud - Cloud Sites (4)



Rackspace – Cloud Files

Mit dem Cloud Files [1] Angebot von Rackspace können einzelne Dateien bis zu einer Größe von 5 GByte in der Rackspace Cloud redundant gespeichert werden. Dabei wächst der Speicherplatz mit dem genutzten Bedarf. Somit wird auch nur für den Speicherplatz bezahlt, der auch tatsächlich benötigt wird. Der Preis pro GByte liegt derzeit bei 15 Cent.

Funktionsweise

  • Hochladen der Dateien
    Mit Hilfe des Webinterface, der Desktop Software oder der Rackspace API kann eine unbegrenzte Anzahl von Daten gespeichert werden.
  • Kosten pro Speicherbedarf
    Der Speicherplatz wird lediglich gemietet. Die Abbrechung erfolgt pro genutzten Speicherplatz und Datentransfer. Dabei wächst der Speicherplatz mit dem Datenvolumen.
  • Datenschutz & Verfügbarkeit
    Die Dateien werden in sogenannte Container organisiert. Die Zugriffsrechte auf einen solchen Container können als Public oder Privat gekennzeichnet werden.

Cloud Files Speichertechnologie


[2]

  • Das Speichern und Verwalten der Daten erfolgt über das Webinterface, der Desktop Software oder der Rackspace API. Cloud Files dient z.B. als Backuplösung, zur Bereitstellung von Bildern oder als Datenspeicher für das Streaming von Videos. Weitere Möglichkeiten bestehen im Bereich Onlinespeicher um über das Internet z.B. mit einem Webbrowser auf die Daten direkt zuzugreifen oder für Entwickler zum Speichern Ihrer Anwendungsdaten.
  • Dem Gegenüber stehen aber auch Dinge, die typischerweise nicht mit Cloud Files genutzt werden können. Die Daten können z.B. nicht als virtuelle Festplatte lauf dem lokalen System eingebunden werden (mount, map). Das Spiegeln von Festplatten oder Backuplösungen die auf Byte-Level Striping oder Block-Level Striping basieren können ebenfalls nicht genutzt werden, genauso wie das anhängen (append) und sperren (locking).
  • Die Daten werden in Container organisiert, können aber nicht verschachtelt werden. Das bedeutet genau: Wenn nur ein Container (auf oberster Ebene) existiert, kann anschließend keine verschachtelte Verzeichnis/ Ordner Struktur ohne eine Transformation in eine flachere Struktur hochgeladen werden.
  • Innerhalb des Rechenzentrums werden mehrfache Kopien der Daten erzeugt und auf mindestens drei verschiedenen Geräten in zwei unterschiedlichen Bereichen des Rechenzentrums gespeichert. Dabei verfügt jeder Bereich eines Rechenzentrums über ein separate Strom- und Netzwerkverbindungen.


[3]

Cloud Files CDN-Technologie

  • Dateien die für die Öffentlichkeit bestimmt sind, werden über ein spezielles Content Distribution Network (CND) verteilt. Dabei handelt es sich um ein Netzwerk mit weltweit verteilten Standorten. Werden die Daten von einem Benutzer z.B. aus Tokyo das erste Mal abgerufen, wird von diesen Daten eine lokale Kopie im Cache auf den Servern in Hamburg gespeichert.


[4]


[5]

  • Werden diese Daten ein weiteres Mal erneut abgerufen aus Tokyo (oder Umgebung) abgerufen, werden die Daten direkt aus dem Cache bereitgestellt und müssen nicht von dem ursprünglichen (weiter entfernten) Server geladen werden. Das erhöht die Geschwindigkeit der Bereitstellung, da somit Latenzen die z.B. durch längere Übertragungswege entstehen, vermieden werden.

Die API

Mit der Cloud Files API können eigene Lösung/ Programme auf Grundlage der Rackspace Infrastruktur entwickelt werden.

  • Programmatisches Hochladen von Dateien.
  • Aktivierung von Cloud Files CDN für jede Art von Container zur Bereitstellung öffentlichen Inhalts.
  • Programmatische Erstellung von Container.
  • Programmatische Verwaltung der Container und Dateien.

Preise

Alle Preise sind hier zu finden: Rackspace Cloud Files Preise

Quelle

[1] Rackspace Cloud - Cloud Files

[2] Graphik: Rackspace Cloud - Cloud Files (1)
[3] Graphik: Rackspace Cloud - Cloud Files (2)
[4] Graphik: Rackspace Cloud - Cloud Files (3)
[5] Graphik: Rackspace Cloud - Cloud Files (4)
[6] Graphik: Rackspace Cloud - Cloud Files (5)



Rackspace – Cloud Servers

Mit dem Cloud Server [1] Angebot von Rackspace können innerhalb von wenigen Minuten von einem bis zu 50 Server eingerichtet werden. Die Konfiguration erfolgt über ein Webinterface bzw. über eine spezielle von Rackspace bereitgestellte offen API. Die Server verfügen über einen vollständigen Root-Zugang und können je nach Wunsch und Aufgabenbereich eingerichtet werden. Abgerechnet wird nur die tatsächliche Nutzung.

Funktionsweise

  • Auswahl der Serverkonfiguration
    Die Auswahl der Grundkonfiguration erfolgt aus Basis des Arbeitsspeichers. Es steht ein Bereich von 256 MB bis zu 16 GB zur Verfügung
  • Auswahl des Betriebssystem
    Aktuelle stehen mehrere Linux Distributionen zur Verfügung, darunter Ubuntu, Debian, Gentoo, Centos, Fedora, Arch und Red Hat Enterprise Linux. Windows Varianten sollen folgen.
  • Verwaltung
    Innerhalb von wenigen Minuten sind die Server verfügbar. Über ein Webinterface oder eine spezielle API kann die Performance jedes vorhandene Servers vergrößert, verkleinert oder vollständig entfernt werden.

Technologie

  • Virtualisierung
    Jeder Cloud Server wird in einer eigenen Virtual Machine abgebildet und ist vollständig von der Hardware getrennt. An dieser Stelle werden Software Hypervisor eingesetzt, wodurch weitere Cloud Server innerhalb von wenigen Minuten zur Verfügung stehen, da nur eine weitere Virtual Machine auf der bereits laufenden Hardware gestartet werden muss. Damit kann die Performanz (Prozessorleistung, Arbeitsspeicher) eines einzelnen Cloud Servers schnell vergrößert oder verkleinert werden.
  • CPU Geschwindigkeit
    Alle Cloud-Server garantieren die CPU-Leistung die vorbar konfiguriert wurde. Wenn die Hardware auf der die Virtual Machine betrieben wird allerdings freie CPU Kapazitäten zur Verfügung hat, werden diese genutzt um ohne weitere Kosten zusätzliche Rechenleistung für die Virtual Machine bereitzustellen.
  • Skalierung
    Die Skalierung eines Cloud Servers erfolgt entweder manuell über das Webinterface oder die API. Allerdings ist der Server dabei vorübergehend nicht erreichbar(!), da der Arbeitspeicher, die Festplattenkapazität und die Prozessorleitstung angepasst werden müssen und der Server neu gestartet(!) wird. Der gesamte Prozess ist automatisiert und dauert ein paar Minuten.
  • Technik

    • Xen Hypervisor
    • RAID-10
    • 64-bit Systeme
    • 4 virtuelle CPUs pro Cloud Server
    • Reservierter Arbeitsspeicher und Speicherplatz
    • Voneinander getrennte Public und Privat Netzwerkschnittstellen
    • Mehrfache Öffentliche IP-Adressen sind möglich
    • Kostenlose Bandbreite für die private Netzwerkschnittstelle und der Kommunikation innerhalb der Rackspace Cloud z.B. zu Cloud Files.
    • Snapshot-basierte Server-Images
    • Dynamische IP-Adressen für Hochverfügbarkeits-Failover-Konfigurationen
    • Bootfähiger Rettungs-Modus
    • Zugriff auf das Dateisystem für die Reperatur


[2]

Verfügbare Betriebssysteme

  • Ubuntu 9.10 (Karmic Koala)
  • Centos 5.4
  • Gentoo 2008.0
  • Ubuntu 9.04 (Jaunty)
  • Centos 5.3
  • Red Hat EL 5.3
  • Ubuntu 8.10 (Intrepid Ibex)
  • Centos 5.2
  • Arch 2009.02
  • Ubuntu 8.04.2 (Hardy Heron) LTS
  • Fedora 11 (Leonidas)
  • Fedora 10 (Cambridge)
  • Debian 5.0 Lenny


[3]

Funktionen der API

  • Starten und verwalten der Server programmatisch mit der REST-API.
  • Individuelle Anpassung der Server.
  • Zuweisen von speziellen Metadaten zu bestimmten Server Instanzen über key/value Paare.
  • Neustart der Server mittels Soft- oder Hardreset.
  • Wiederherstellen von Servern aus jedem beliebigen eigenen Image.
  • Erstellung von individuellen Images.
  • Zeitlich gesteuerte Backups der Server.
  • Je nach Wunsch kann die Performanz der Server vergrößert oder verkleinert werden.
  • Mehrere Server können sich mehrere öffentliche IP-Adressen teilen.


[4]

Preise

Alle Preise sind hier zu finden: Rackspace Cloud Server Preise

Quelle

[1] Rackspace Cloud - Cloud Servers
[2] Graphik: Rackspace Cloud - Cloud Servers (1)
[3] Graphik: Rackspace Cloud - Cloud Servers (2)
[4] Graphik: Rackspace Cloud - Cloud Servers (3)



Was ist "Amazon CloudFront"?

Amazon CloudFront [1] gehört zu dem Webservice Angebot von Amazon und dient zur Bereitstellung von Inhalten. Das Ziel des Service ist die schnelle Bereitstellung von Inhalten mit möglichst geringen Latenzzeiten. Dazu wird ein weltweit verteiltes Netzwerk genutzt, in welchem die Daten immer automatisch zum nächstgelegenden Standort (edge Location) der Anfrage geroutet werden um damit die höchstmögliche Geschwindigkeit zu erzielen.


[2]

Amazon CloudFront Funktionsweise

Amazon CloudFront wird wie jeder Amazon Webservice über die Webservice-API angesprochen. Die Objekte die Bereitgestellt werden sollen, werden in so genannten Distributions organisiert. Eine Distribution definiert den Speicherort der ursprünglichen Version der Objekte. Eine Distribution verfügt über einen eindeutigen CloudFront.net Domainnamen (z.B. name.cloudfront.net), der dafür genutzt wird, um die Objekte auf einen Standort zu verweisen. Zusätzlich kann auch ein eigener Domainname (z.B. bilder.meinedomain.de) genutzt werden. Distributions können dafür genutzt werden um Inhalte über das HTTP Protokoll herunterzuladen oder mit dem RTMP Protokoll zu streamen.

Für die Nutzung sind die folgenden Schritte notwendig:

  • Speichern der originalen Daten in einem Amazon S3 Bucket.
  • Erstellen einer Distribution um das Bucket bei Amazon CloudFront zu erfassen.
  • Wenn Benutzer nun über Webseiten, Media Player oder anderen Anwendungen auf die Domain zugreifen die bei der Distribution hinterlegt ist, wird deren Anfrage automatisch an den nächstgelegenden Standort dieser Anfrage geroutet, von dem aus dann der angefragte Inhalt ausgeliefert wird.
  • Die Abbrechnung erfolgt nur für Datenübertragung und die Anfragen, die tatsächlich entstehen.

Funktionen

  • Geschwindigkeit
    In dem weltweiten Netzwerk werden an allen Standorten (Edge Locations) Kopien der Inhalte in einem Cache gespeichert, damit werden die angefragten Daten dem User schnell und ohne Verzögerung bereitgestellt.
  • Einfache Verwaltung
    Über die Amazon Web Service API oder die AWS Management Console kann die Administration von Amazon CloudFront auf eine einfache Weise vorgenommen werden.
  • Integration mit anderen Amazon Webservices
    Amazon CloudFront wurde in erster Linie für den Amazon S3 Dienst entwickelt. Es besteht aber auch die Möglichkeit Amazon EC2 Instanzen damit zu betreiben. Zum Beispiel für die Bereitstellung einer EC2 Instanz als Webserver der dynamische HTML-Seiten zur Verfügung stellt, wobei Amazon CloudFront in diesem Fall dann die Daten für den statischen Inhalt liefert.
  • Kosten
    Kosten für Amazon CloudFront enstehen nur dann, wenn der Dienst auch tatsächlich genutzt wird.
  • Skalierbarkeit
    Amazon CloudFront reagiert automatisch auf das Anfrageverhalten und skaliert das System entsprechend den aktuellen Anforderungen. Steigen die Anfragen wird die Performance des Systems durch das Hinzufügen von weiteren Ressourcen erhöht. Nimmt die Nachfrage wieder ab, werden die Ressourcen ebenfalls wieder heruntergefahren.
  • Weltweite Verfügbarkeit
    Die Amazon CloudFront Standorte befinden sich in den USA, Europa und Asien.

Die Standorte des Amazon CloudFront Netzwerks

Die Amazon CloudFront Standorte gliedern sich nach folgenden Kontinenten und Städten.

    USA

  • Ashburn, VA
  • Dallas/Fort Worth, TX
  • Los Angeles, CA
  • Miami, FL
  • Newark, NJ
  • Palo Alto, CA
  • Seattle, WA
  • St. Louis, MO

    Europa

  • Amsterdam
  • Dublin
  • Frankfurt
  • London

    Asien

  • Hong Kong
  • Tokyo


[3]

Anwendungsmöglichkeiten von Amazon CloudFront

  • Schnelle Bereitstellung von Webseiten
    Die Geschwindigkeit von Webseiten kann erhöht werden, wenn Objekte, die oft aufgerufen werden, wie z.B. Graphiken, Logos, Navigationsbuttons oder auch Dinge wie CSS oder Java Code schnell bereitgestellt werden. Es macht daher Sinn, solche Daten in einem Cache wie es z.B. Amazon CloudFront darstellt, zu speichern.
  • Bereitstellung von Downloads
    Auf Grund der hohen Datentransferrate können Anwendungen, Softwareupdates oder andere beliebige Downloadangebote per Amazon CloudFront schnell den Benutzern bereitgestellt werden. Das Erhöht die Zufriedenheit der Besucher.
  • Bereitstellung von Multimediainhalten
    Multimediadaten (Audio und Video) sind ebenfalls Ideale Inhalte für die Bereitstellung über Amazon CloudFront. Durch die hohe Geschwindigkeit und das Vorhalten der oft angefragten Daten im Cache können die Inhalte schnell und zuverlässig gestreamt werden.

Preise

Alle Preise sind hier zu finden: Amazon CloudFront Preise

Quellen:

[1] Amazon CloudFront
[2] Graphik: Amazon CloudFront (1)
[3] Graphik: Amazon CloudFront (2)



Was sind "Amazon EC2 Elastic IP-Addresses"?

Elastische IP-Adressen sind statische IP-Adressen die für dynamisches Cloud Computing entwickelt wurden. Eine IP-Adresse ist mit dem AWS-Account und nicht mit einer konkreten Instanz verknüpft. Im Fehlerfall einer Instanz wird die IP-Adresse des betroffenen Servers auf einen funktionieren Server neu gemapped.

Begriffsbestimmungen

  • EC2 Private IP Address
    Dabei handelt es sich um die interne Adresse einer Instanz, ide nur innerhalb der EC2 Cloud geroutet werden kann. Der Datenverkehr außerhalb des EC2 Netzwerks kann nicht zu dieser IP Adresse geroutet werden. Dazu muss die Public IP oder die Elastic IP verwendet werden.
  • EC2 Public IP Address
    Dabei handelt es sich um die öffentliche IP-Adresse aller Instanzen die durch das Internet geroutet werden kann. Datenverkehr der zu dieser öffentlichen IP-Adresse geroutet wird, wird 1:1 per Network Address Translation (NAT) übersetzt und an die Private IP-Adresse einer Instanz weitergeleitet. Die öffentlichen IP-Adressen können nicht mehr genutzt werden, wenn eine EC2 Instanz ausfällt.
  • EC2 Elastic IP Address
    Dabei handelt es sich um die öffentliche IP-Adresse aller Instanzen die durch das Internet geroutet werden kann und einem AWS Account zugerordnet sind. Datenverkehr der zu dieser Elastic IP-Adresse geroutet wird, wird per Network Address Translation (NAT) übersetzt und an die zugeordnete Private IP-Adresse weitergeleitet. Elastic IP-Adressen werden explizit einem AWS Account zugeordnet und können bei Bedarf auch anderen EC2-Instanzen zugeordnet werden.


[2]

Beispiel

  • Eine Elastic IP Addresse einem AWS Account zuweisen
    Mit dem Befehl ec2-allocate-address wird eine Elastic IP Address einem Account zugeordnet. Mit dem Befehl ec2-release-address kann die Adresse von dem Account wieder entfernt werden.


    ec2-allocate-address
    ADDRESS 75.101.155.119

  • Beschreibung der Zuordnung von IP-Adressen zu einem Account
    Nachdem eine Adresse einem Account zugewiesen wurde, können mit dem Befehl ec2-describe-addresses alle eingesehen werden, die einem Account zugeordnet sind. Über den Parameter kann auf eine spezielle IP-Adresse gefiltert werden. Ohne Parameter werden alle IP-Adressen ausgegeben.


    ec2-describe-addresses
    ADDRESS 75.101.157.145
    ADDRESS 75.101.155.119

    ec2-describe-addresses 75.101.157.145
    ADDRESS 75.101.157.145

  • Zuordnung einer Elastic IP Addresse zu einer bereits gestarteten Instanz
    Nachdem eine Elastic IP Adresse zugeordnet wurde, kann diese mit dem Befehl ec2-describe-instances ausgewählt und über den Befehl ec2-associate-address mit einer gestarteten Instanz verknüpft werden.


    ec2-describe-instances
    INSTANCE i-b2e019da ami-2bb65342 ec2-72-44-33-67.compute-1.amazonaws.com
    INSTANCE i-b2e019db ami-2bb65342 ec2-67-202-3-83.compute-1.amazonaws.com

    ec2-describe-addresses
    ADDRESS 75.101.157.145

    Nun wird die Elastic IP 75.101.157.145 der Instanz mit der ID i-b2e019da zugeordnet.


    ec2-associate-address -i i-b2e019da 75.101.157.145
    ADDRESS 75.101.157.145 i-b2e019da

    Anschließend ist mit dem Befehl ec2-describe-addresses zu sehen, dass die IP der Instanz zugeordnet wurde.


    ec2-describe-addresses
    ADDRESS 75.101.157.145 i-b2e019da

    ec2-describe-instances i-b2e019da
    INSTANCE i-b2e019da ami-2bb65342 ec2-75-101-157-145.compute-1.amazonaws.com

  • Zuordnung einer Elastic IP Address zu einer anderen gestarteten Instanz
    Die Elastic IP kann auch einer anderen gestarteten Instanz zugeordnet werden. In diesem Beispiel gehören zu dem Account zwei aktive Instanzen -b2e019da und i-b2e019db. Es wird die IP-Adresse 75.101.157.145 von der Instanz i-b2e019da auf die Instanz i-b2e019db neu zugeordnet.


    ec2-describe-addresses
    ADDRESS 75.101.157.145 i-b2e019da

    ec2-associate-address -i i-b2e019db 75.101.157.145
    ADDRESS 75.101.157.145 i-b2e019db

    Nach dem Update wird der Datenverkehr der an die IP Adresse 75.101.157.145 gesendet wird, nun per NAT an die interne IP Adresse der Instanz i-b2e019db weitergeleitet.


    ec2-describe-addresses
    ADDRESS 75.101.157.145 i-b2e019db

    Der Instanz i-b2e019da ist nun keine öffentliche IP Adresse mehr zugewiesen, da diese der anderen Instanz zugeordnet ist. Dadurch ist sie nicht mehr über das Internet erreichbar, innerhalb der der Amazon Cloud aber schon.


    ec2-describe-instances
    INSTANCE i-b2e019da ami-2bb65342 <> ip-10-251-71-165.ec2.internal
    INSTANCE i-b2e019db ami-2bb65342 ec2-75-101-157-145.compute-1.amazonaws.com

    Im Hintergrund sorgt ein Prozess dafür, dass die Instanz i-b2e019da automatisch eine neue öffentliche IP Adresse erhält.


    ec2-describe-instances
    INSTANCE i-b2e019da ami-2bb65342 ec2-67-202-46-87.compute-1.amazonaws.com
    INSTANCE i-b2e019db ami-2bb65342 ec2-75-101-157-145.compute-1.amazonaws.com

  • Beenden einer laufenden Instanz mit einer zugeordneten Elastic IP
    Mit dem Befehl ec2-terminate-instance wird zuerst die Zuordnung der Elastic IP zu der Instanz entfernt, anschließend wird die Instanz beendet.
  • Entfernen der Zuordnung einer Elastic IP zu einer gestarteten Instanz

    Mit dem Befehl ec2-disassociate-address wird die Zuordnung einer Elastic IP aufgehoben.


    ec2-describe-addresses
    ADDRESS 75.101.157.145 i-b2e019db

    ec2-disassociate-address 75.101.157.145
    ADDRESS 75.101.157.145


    ec2-describe-addresses
    ADDRESS 75.101.157.145

  • Freigeben einer Elastic IP eines AWS Account
    Um eine Elastic IP von einem AWS Account wieder zu entfernen wird der Befehl ec2-release-address benötigt. Als Parameter wird die IP Adresse verwendet, die von dem Account entfernt werden soll.


    ec2-describe-addresses
    ADDRESS 75.101.157.145

    ec2-release-address 75.101.157.145
    ADDRESS 75.101.157.145


    ec2-describe-addresses

Quellen

[1] Amazon EC2 Elastic IP-Addresses
[2] Graphik: Amazon EC2 Elastic IP-Addresses



Was ist "Amazon Virtual Privat Cloud"?

Bei der Amazon Virtual Private Cloud (Amazon VPC) handelt es sich um eine Lösung zur sicheren und nahtlosen Verbindung der vorhandenen Unternehmensinfrastruktur mit den angemieteten Ressourcen innerhalb der Amazon Cloud. Die eigene Infrastruktur wird mittels einer VPN Verbindung (Virtual Private Network) mit der Amazon Infrastruktur verbunden und somit erweitert, wodurch eine Hybrid Cloud entsteht. Aktuell können nur Amazon EC2 Instanzen in die eigene Infrastruktur integriert werden. Die Integration der restlichen Amazon Web Services wie z.B. Amazon S3 soll folgen. Die Abbrechnung der Amazon Virtual Private Cloud erfolgt wie bei allen Amazon Web Services über die tatsächliche Nutzung (VPN Verbindungsdauer pro Stunde, VPN Datentransfer pro GByte).


[2]

Amazon VPC Funktionsweise

Mit der Amazon Virtual Private Cloud können die eigenen (isolierten) Ressourcen innerhalb der Amazon Cloud mit den Ressourcen im eigenen Rechenzentrum über ein verschlüsseltes IPsec VPN verbunden werden.

Dafür sind die folgenden Schritte notwendig:

  • Erstellung der Virtual Private Cloud innerhalb von Amazons Infrastruktur.
  • Festlegen eines eigenen IP-Adressbereiches.
  • Aufteilung des VPCs IP-Adressbereiches in mehrere Subnetze.
  • Verbinden der VPC mit der eigenen Infrastruktur mittels der VPN Verbindung.
  • Hinfzufügen der Amazon EC2 Instanzen zur VPC.
  • Das Routing so konfigurieren, das der Datentransfer zwischen der VPC und dem Internet über die VPN Verbindung vorgenommen wird.
  • Hinzufügen der innerhalb der eigenen Infrastruktur vorhandenen Sicherheits- und Managementregeln zu der VPC.

Funktionen

  • Isolierte Netzwerkverbindung
    Die Amazon Virtual Privat Cloud ermöglicht eine isolierte Ende zu Ende Netzwerkverbindung durch den Einsatz eines vorher festgelegten IP-Adressbereichs. Dadurch wird der gesamten Netzwerkverkehr zwischen der VPC und dem Rechenzentrum geroutet. Eine zusätzliche IPsec VPN Verbindung sorgt für die Verschlüsselung des Datentransfers.
  • Flexibilität
    Die Verwaltung der VPC erfolgt so wie die Verwaltung der eigenen Infrastruktur. Das bedeutet, dass innerhalb der VPC ebenso komplexe Netzwerkstrukturen mittels Subnetzen und Gateways aufgebaut werden kann. Zu den Möglichkeiten gehören:

    1. Erstellung und Verwaltung von Subnetzen.
    2. Hinzufügen von IP-Adressbereichen für Amazon EC2 Instanzen innerhalb der Subnetze.
    3. Konfiguration von sicheren Verbindungen um den Zugriff auf die Amazon Cloud einzuschränken.
  • Skalierung der bestehenden Infrastruktur
    Mit der Amazon Virtual Private Cloud kann die bereits bestehende Infrastruktur im eigenen Rechenzentrum mit den angemieteten Ressourcen innerhalb der Amazon Infrastruktur verbunden und damit erweitert werden - wodurch eine Hybrid Cloud entsteht. Damit besteht die Möglichkeit die Infrastruktur im eigenen Rechenzentrum bei Bedarf schnell, kostengünstig und ohne die Anschaffung weiterer Serverhardware zu erweitern, indem innerhalb der Amazon Cloud zusätzliche Amazon EC2 Instanzen hinzugefügt werden. Darüber hinaus kann z.B. ein Backup (1:1 Abbild) des Rechenzentrums erfolgen, indem das Rechenzentrum in die Amazon Cloud repliziert wird.

Preise

Alle Preise sind hier zu finden: Amazon VPC Preise

Quellen:

[1] Amazon VPC
[2] Graphik: Amazon VPC



Gründe für eine "Software as a Service Strategie"!

Von Tag zu Tag wächst der Markt der Cloud Computing Angebote. Neben immer neuen Services sind besonders die Angebote von Anbietern wie z.B. Amazon sehr beliebt, die Rechenleistung pro Stunde oder den Speicherplatzverbrauch pro GByte abrechnen. Dennoch fangen Unternehmen erst langsam an über Cloud Services nachzudenken.

Auf Grund der hohen Erwartungen, haben bisher nur wenige bemerkt, wie leistungsfähig Software as a Service (SaaS) Angebote geworden sind. Allerdings dürfen die Auswirkungen von SaaS auf die IT-Organisation nicht übersehen werden und es muss weiterhin sichergestellt werden, dass ein SaaS Ansatz für das gesamte Unternehmen geeignet ist.

Im Falle von SaaS verschiebt sich die Bereitstellung und die Wartung der Software in Richtung des Anbieters, wodurch sich freie Ressourcen ergeben, die für andere bzw. neue IT-Projekte verwendet werden können. Für die IT-Organisation entstehen dadurch aber neue Aufgaben, denn die Verfügbarkeit, Datensicherheit, mögliche Einhaltung gesetzlicher Vorschriften etc. müssen regelmäßig überprüft und mit dem Anbieter vertraglich festgehalten werden. Auf Grund von möglichen Ausfällen oder schlechten Reaktionszeiten, die nicht im eigenen Einflussbereich liegen und ein Unternehmen in seiner Produktivität einschränken oder vollständig stoppen können, sollten SaaS Anwendungen nicht als ein nice-to-have angesehen werden, sondern ernsthaft evaluiert werden. Der größte Benefit wird durch SaaS Anwendungen nämlich erst dann erzielt, wenn ein ganzheitlicher Ansatz verfolgt und SaaS als ein Teil in die gesamte Unternehmensarchitektur integriert wird.

Für einen SaaS Ansatz sprechen u.a. eine schnelle Implementierung, die Verringerung der eigenen IT-Infrastruktur und die daraus resultierenden Einsparungen hinsichtlich der Investitionskosten und operativen Kosten.

Zu den bereits heute von Unternehmen eingesetzten SaaS Anwendungen gehören z.B. automatische Vertriebs- und Informationsysteme, CRM Systeme, Systeme für die Personalverwaltung, Webseiten, E-Mail Lösungen, Service Desks, Collaboration Suites, Finanzsysteme und Backup Lösungen. Vor allem für Start-Ups ergeben sich hier Chancen die Investitionen in eigene Serverhardware und Softwarelizenzen zu vermeiden, sowie die IT-Infrastruktur schnell einzurichten und bei Bedarf beliebig zu skalieren, indem zu 100% auf SaaS gesetzt wird und z.B. Anwendungen für die Rechnungsstellung, Zeiterfassung, E-Mail bis hin zum Vertriebsmanagement- und Controlling von einem oder mehreren Anbietern bezogen werden.

Ein weiterer offensichtlicher Benefit durch Software as a Service ist die Befriedigung der Nachfrage nach mehr Mobilität durch die eigenen Arbeitnehmer. IT-Organisationen haben durch SaaS die Möglichkeit mit einfachen Mitteln und auf einem sicheren Weg viele Anwendungen außerhalb des Unternehmensnetzwerks bereitzustellen und so für Arbeitnehmer unterwegs, auf dem Smartphone, in Zweigniederlassung oder im Home Office zugänglich zu machen. In herkömmlichen IT-Infrastrukturen führt der Remote-Zugriff auf Grund von unterschiedlichen Plattformen und Umgebungen häufig zu Schwierigkeiten bei der Bereitstellung. Durch den Einsatz von Webbrowser basierenden SaaS Anwendungen kann auch diese Hürde auf einem einfachen Weg genommen werden.

Wie heutzutage bei allen IT Fragen ist auch bei einer SaaS Strategie zu beachten, dass die Entscheidung nicht alleine von der IT-Organisation getragen werden sollte, sondern ebenfalls vom Business mit initiiert und unterstützt wird.

Die IT-Organisation sollte als interner Berater des Business dienen und SaaS berücksichtigen wenn es darum geht, in Zukunft neue Anwendungen für das Unternehmen auszuwählen. Dazu sollte sie sich für die Entwicklung einer SaaS Strategie ein Framework mit klar definierten Regeln für die Bewertung und den Betrieb einer Umgebung mit SaaS Anwendungen aufbauen.



Cloud Computing mit Open Source

Ein Vorteil von Cloud Computing besteht in dem einfachen gegenseitigen Bereitstellen und Nutzen von IT Services. Die Herausforderung ist aber, die Voraussetzungen zu schaffen eine einzelne Cloud mit anderen Clouds zusammenarbeiten zu lassen. Dazu sollten die kollaborierenden IT-Systeme über dieselben Sicherheitsanforderungen und robusten Infrastrukturen verfügen, wie es aus traditionellen IT Umgebungen bekannt ist. Auf Grund der Offenheit, Flexibilität, Interoperabilität und einem verringerten Risiko bzgl. eines Vendor lock-in, ist Open Source dafür die geeignete Technologie. Das führt dazu, dass sich Open Source mit Cloud Computing verschmelzen wird und "Open Source Clouds" in den nächsten Jahren zu einem großen Trend werden.

Es existieren bereits Cloud Computing Technologien auf Basis von Open Source, die ebenfalls schon eingesetzt werden. Diese möchte ich kurz vorstellen.

Linux Betriebssysteme

  • Die Ubuntu Enterprise Cloud kombiniert Ubuntu Linux mit Eucalyptus und diversen anderen Cloud Management Tools.
  • Red Hat Enterprise Linux, sowie andere Linux Distributionen können ebenfalls mit vorhanden Open Source Cloud Technologien kombiniert werden um Cloud Computing Umgebungen aufzubauen

Eucalyptus

  • Bei Eucalyptus handelt es sich um ein Forschungsprojekt von der University of California in Santa Barbara. Eucalyptus enthält die Apache Axis2 Web Services Engine, den Mule Enterprise Service Bus, Rampart Security und die Libvirt Virtualisierung API. Eucalyptus verfügt darüber hinaus über seine eigene Umsetzung der Amazon-API.
  • Webseite: http://open.eucalyptus.com

Deltacloud

  • Im September 2009 wurde durch Red Hat das Deltacloud Projekt gegründet. Die Idee hinter dem Projekt ist die einfache Integration von Public und Private Clouds. Deltacloud stellt eine gemeinsame auf REST basierende API zur Verfügung, um Amazon EC2 Instanzen und/oder Private Clouds auf Basis von VMware oder Red Hat Enterprise Linux miteinander zu verbinden. Das Deltacloud Portal dient zur Verwaltung aller Clouds die innerhalb einer Umgebung bereitgestellt werden. Geht es nach Red Hat, soll Deltacloud zu dem Standard des Cloud Computing werden.
  • Webseite: http://deltacloud.org

Nimbus

  • Bei Nimbus handelt es sich um ein Open Source Toolkit, mit dem Clustersystem in eine Infrastructure as a Service Umgebung verwandelt werden können. Mittels der EC2 Schnittstelle können sich Unternehmen mit der Public Cloud Infrastruktur von Amazon verbinden.
  • Webseite: http://www.nimbusproject.org

Virtual Machine Hypervisor

  • Viele Open Source Lösungen beinhalten den Xen Server von Citrix Systems.
  • Webseite: http://www.xen.org

Simple Cloud API

  • Die Simple Cloud API von Zend Technologies kann dafür verwendet werden, um von einem System aus auf mehrere Clouds zuzugreifen. Unterstützt werden u.a. GoGrid, IBM, Microsoft, Nirvanix Storage Delivery Network, and Rackspace Files
  • http://www.simplecloud.org

Damit sich Open Source Clouds durchsetzen, sind natürlich Standards notwendig. Darüber hinaus müssen sich ebenfalls Zuverlässigkeit und Sicherheit beweisen. Werden diese Herausforderungen gemeistert, befinden sich die Open Source Clouds auf einem guten Weg. Durch den Einsatz von Open Source können hier die Vorab-Investitionen minimiert werden. Zusätzlich behält jedes Unternehmen die vollständige Kontrolle über seine eigene Cloud, kann aber trotzdem die Infrastruktur durch shared Services von Public Clouds erweitern.



Was ist “Amazon S3?”

Amazon Simple Storage Service (Amazon S3) [1] stellt über einen Webservice eine Schnittstelle bereit, um darüber von überall aus eine unbegrenzte Menge an Daten zu speichern und diese wieder abzurufen.

Amazon S3 Funktionsweise

  • Speichern, Lesen und Löschen einer unbegrenzten Anzahl von Objekten (Dateien). Jedes Objekt kann eine Größe von 1 Byte bis zu 5 GByte haben.
  • Jedes Objekt wird in einem sogenannten Bucket gespeichert und kann über einen eindeutigen Key angesprochen werden.
  • Ein Bucket wird in einer von vielen Regionen gespeichert, wobei eine bestimmte Region z.B. auf Grund von Latenzzeiten zu bevorzugen ist. Jeder Bucket verfügt über einen eindeutigen Identifier und ist damit in der gesamten Amazon Cloud einmalig vorhanden.
  • Objekte die in einer bestimmten Region gespeichert werden, können auch nur in dieser Region wieder angesprochen werden. Sind z.B. Daten in Europa (Irland) gespeichert, kann auf diese Daten auch nur innerhalb von Europa zugegriffen werden. Ein Zugriff aus den USA auf die Daten ist in diesem Fall nicht möglich.
  • Über Authentifizierungs-Mechanismen wird sichergestellt, dass die Daten vor unbefugtem Zugriff geschützt sind. Die Objekte können als privat oder öffentlich gekennzeichnet werden. Jeder Benutzer kann unterschiedliche Zugriffsrechte auf Objekte erhalten.
  • Der Zugriff erfolgt über REST und SOAP Schnittstellen.
  • Amazon S3 ist protokollunabhängig, wobei HTTP das Standard Protokoll ist.


[2]

Amazon S3 Design Anforderungen

In Amazon S3 sollen Daten preiswert und sicher gespeichert werden und darüber hinaus zu jeder Zeit verfügbar sein, wenn sie benötigt werden.

  • Skalierbar: Amazon S3 skaliert anhand des verfügbaren Speicherplatz, der Anzahl der aktuellen Anfragen sowie der Anzahl der Benutzer um eine unbegrenzte Anzahl von Web-Anwendungen bereitzustellen. Indem das System weitere Knoten zur Verfügung gestellt bekommt wird die Verfügbarkeit, Geschwindigkeit, Kapazität, Robustheit und der Durchsatz erhöht.
  • Zuverlässig: Daten werden dauerhaft und mit einer Verfügbarkeit von 99,99% gespeichert. Es darf kein Single Point of Failure vorhanden sein. Alle Fehler müssen toleriert und durch das System automatisch repariert werden.
  • Fast: Die Geschwindigkeit muss hoch genug sein, um High-Performance-Anwendungen zu unterstützen. Die Server-seitige Latenz darf im Vergleich zur Internet Latenz keine Bedeutung haben. Jeder Performance-Engpass kann durch das einfache Hinzufügen von weiteren Knoten gelöst werden.
  • Preiswert: Amazon S3 besteht aus kostengünstiger Standard Hardware. Dadurch ist der Ausfall eines einzelnen Knoten der Normalfall, was aber nicht das gesamte System betreffen darf.
  • Einfach: Der Aufbau von hoch skalierbarem, zuverlässigen, schnellen und kostengünstigen Speicherplatz ist schwierig. Darüber hinaus muss jede Anwendung darauf von überall aus zugreifen können. Die Anforderung besteht also darin, Amazons interne Anwendungen (die Amazon Webseite) und zusätzlich parallel die Anwendungen von externen Entwicklern hoch performant zu handhaben.


[3]

Amazon S3 Design Grundsätze

Folgenden Grundsätze für das Design von verteilten Systemen werden für Amazon S3 eingesetzt:

  • Dezentralisierung: Vollständiger Einsatz von Technologien zur Dezentralisierung um Engpässe und Single Point of Failure zu vermeiden.
  • Asynchronität: Das System macht unter allen Umständen Fortschritte.
  • Autonomität: Das System ist so ausgelegt, dass einzelne Komponenten ihre Entscheidungen auf Basis lokaler Informationen treffen können.
  • Lokale Verantwortung: Jede Komponente ist selbst für seine eigene Konsistenz verantwortlich und muss diese auch selber erreichen.
  • Kontrollierte Nebenläufigkeit: Alle Operationen sind so ausgelegt, dass keine oder nur eine begrenzte Kontrolle der Konsistenz erforderlich ist.
  • Fehlertoleranz: Das System behandelt den Ausfall von Komponenten wie gewöhnliche Operationen und wird dadurch gar nicht oder nur minimal Unterbrochen.
  • Kontrollierte Parallelität: Parallelität kann genutzt werden, um die Leistung und Robustheit der Wiederherstellung zu verbessern, bzw. neue Knoten zu verwenden. Ein einziger Dienst sollte nicht alles für jeden bereitstellen. Stattdessen sollten kleine Komponenten verwendet werden, die als Bausteine für andere Dienste genutzt werden können.
  • Symmetrie: Alle Knoten im System sind bzgl. ihrer Funktionalität identisch und benötigen keine oder nur minimale knotenspezifische Konfigurationen um ausgeführt zu werden.
  • Einfachheit: Das System sollte so einfach wie möglich (aber nicht einfacher) gemacht werden.

Preise

Alle Preise sind hier zu finden: Amazon S3 Preise

Quellen:

[1] Amazon S3
[2] Graphik: Amazon S3 (1)
[3] Graphik: Amazon S3 (2)



Was ist "Amazon EC2?"

Amazon EC2 (Amazon Elastic Compute Cloud) [1] ist ein Webservice für die Bereitstellung von hoch skalierbarer Rechnerkapazität und wurde entwickelt, um die Entwicklung von skalierbare Web-Anwendungen für Entwickler einfacher zu machen. Die angemietete Rechnerleistung befindet sich in den weltweit verteilten Rechenzentren von Amazon und kann über eine Webservice Schnittstelle vollständig konfiguriert und kontrolliert werden.

Durch das Hinzufügen und Starten von Serverinstanzen innerhalb von Minuten kann die verwendete Infrastruktur in kurzer Zeit je nach den aktuellen Anforderungen skaliert werden. Ist die Last hoch, werden mehr Instanzen hinzugefügt, nimmt die Last wieder ab, werden die nicht mehr benötigten Kapazitäten entfernt.

Da nur für die Ressourcen bezahlt wird, die auch tatsächlich verwendet werden, erhält man dadurch eine bessere Kosteneffizienz. Der Normalfall besteht in der Anschaffung eigener überdimensionierter Systeme, die im Gesamtdurchschnitt nur zu 20% ausgelastet sind. Die restlichen 80% werden nur während Spitzenlasten genutzt und verursachen sonst nur unnötige Kosten.

Amazon EC2 Funktionsweise

Die virtuelle Umgebung von Amazon EC2 wird mittels einer Webservice Schnittstelle angesprochen, über die auf Serverinstanzen mit einer vielzahl unterschiedlicher Betriebssysteme zugegriffen werden kann. Die Betriebssysteme können wie eigene "lokale" Betriebssysteme mit Software erweitert und können ebenfalls mit Zugriffsberechtigungen konfiguriert werden.


[2]

Eine einfache Vorgehensweise

  • Auswahl und Start eines bereits vor-konfigurierten Images (Vorlage). Alternativ kann auch ein eigenes Amazon Machine Image (AMI) erstellt werden. Dieses beinhaltet dann eigene Anwendungen, Bibliotheken, Daten und Konfigurationen.
  • Konfiguration der Sicherheitseinstellungen und des Netzwerkzugriffs auf die jeweilige EC2 Instanz.
  • Auswahl des Instanz Typs und des Betriebssystems.
  • Festlegen des Orts, wo die Server ausgeführt werden sollen (USA, Europa, ...).
  • Festlegen einer statischen IP-Adresse.
  • Hinzufügen von Speicherplatz.

Leistungen im Überblick

  • Elastisch: Rechnerkapazität kann je nach Bedarf innerhalb von Minuten vergrößert und verkleinert werden. Dabei kann man einen aber auch tausend Server Instanzen gleichzeitg nutzen, die mittels der Web Service API angesprochen werden und automatisch skalieren.
  • Vollständige Kontrolle: Für jede Server Instanz besteht vollständiger Root-Zugriff.
  • Flexibilität: Man kann zwischen mehreren Instanzen Typen, Betriebssystemen und Software-Pakete wählen. Die Serverhardware kann so konfiguriert werden, dass der Speicher, die CPU, und die Größe der Boot-Partition, optimal für das Betriebssystem und die Anwendung ausgelegt sind.
  • Amazon Web Services: Vollständige Unterstützung und Integration mit den anderen Amazon Web Services wie Amazon Simple Storage Service (Amazon S3), Amazon SimpleDB und Amazon Simple Queue Service (Amazon SQS).
  • Zuverlässig: Das Service Level Agreement von Amazon EC2 besagt 99,95% Verfügbarkeit für jede Amazon EC2 Region.
  • Sicherheit: Amazon EC2 stellt folgende Sicherheitsfunktionen bereit:

    • Über die Webservice Schnittstelle kann eine Firewall für den Zugriff auf die jeweilige Instanz und zwischen einzelnen Instanzen/ Gruppen von Instanzen konfiguriert werden.
    • Mittels der Amazon Virtual Private Cloud (Amazon VPC) können die Instanzen in einen eigenen (privaten) IP-Adressbereich verlagert werden. Darüber hinaus kann über die (haus)-eigene Infrastruktur mit einem IPSec VPN auf diese Instanzen in der Amazon Cloud zugegriffen werden.
  • Kostengünstig:

    • On-Demand Instanzen: Bei On-Demand Instanzen zahlt man nur für die Rechnerkapazität die tatsächlich genutzt wird. Die Abbrechnung erfolg dabei pro Stunde ohne langfristige Verpflichtungen einzugehen. Dadurch entfällt die Überdimensionierung der Serverlandschaft um Lastspitzen auszugleichen.
    • Reservierte Instanzen: Instanzen können für eine niedrige, einmalige Zahlung pro Instanz reserviert werden. Im Gegenzug erhält man einen Rabatt auf die Nutzungsgebühr (Stundenpreis) für diese Instanz. Anschließend ist diese Instanz ohne weitere Verpflichtungen reserviert und kann wie gewohnt genutzt werden.
    • Spot Instanzen: Hier bietet man auf ungenutzte Amazon EC2 Kapazitäten. Dazu teilt man Amazon mit, welche EC2 Instanz man gerne haben möchte und was man bereit ist dafür zu bezahlen. Anhand von Angebot und Nachfrage wird ein Spot-Preis ermittelt.


[3]

Funktionen

  • Amazon Elastic Block Store
    Amazon Elastic Block Store (EBS) dienen zur dauerhaften Speicherung der Amazon EC2-Instanzen. Neben aktiven können auch Instanzen gespeichert werden, die gerade nicht verwendet werden. Die Volumes können als Boot Partition für EC2-Instanzen verwendet werden oder direkt an eine bereits gestartete EC2-Instanz angeschlossen werden. Die EBS-Volumes werden automatisch in eine einfache Verfügbarkeitszone repliziert und ein Snapshot kann zusätzlich in Amazons S3 Dienst abgelegt werden. Dieser Snapshot wird dann über mehrere Verfügbarkeitszonen verteilt. Ein Snapshot kann, wenn gewünscht, als Ausgangspunkt für einen neuen Amazon EBS dienen.

  • Mehrere Standorte
    Amazon EC2 Instanzen können an mehreren Standorten verteilt werden. Die Standorte sind dabei in Regionen und Verfügbarkeitszonen aufgeteilt. Verfügbarkeitszonen sind unterschiedliche Orte, die entwickelt wurden, um von Fehlern in anderen Verfügbarkeitszonen nicht betroffen zu sein. Zudem haben unterschiedliche Verfügbarkeitszonen unterschiedliche Latenzzeiten in einer Region. Durch den Einsatz von separaten Verfügbarkeitszonen wird eine Anwendung von Ausfällen an einzelnen Standorten nicht betroffen. Die einzelnen Verfügbarkeitszonen sind geografisch in verschiedenen Orten und Ländern verteilten. Dazu gehören derzeit der Osten der USA (Northern Virginia), der Westen der USA (Northern California) und Europa (Irland).
  • Elastische IP-Adressen
    Elastische IP-Adressen sind statische IP-Adressen die für dynamisches Cloud Computing entwickelt wurden. Diese IP-Adresse ist mit dem AWS-Account und nicht mit einer konkreten Instanz verknüpft. Im Fehlerfall einer Instanz wird die IP-Adresse des betroffenen Servers auf einen funktionieren Server neu gemapped.
  • Amazon Virtual Private Cloud
    Mit der Virtual Private Cloud die EC2-Instanzen innerhalb der Amazon Cloud in das eigenen Firmennetz eingebunden werden. Sie fungieren dann im Prinzip als lokal vorhandene Server und können auf andere Systeme zugreifen, genau so wie auf sie zugegriffen werden kann.
  • Amazon CloudWatch
    Wird HIER beschrieben.
  • Auto Scaling
    Wird HIER beschrieben.
  • Elastic Load Balancing
    Wird HIER beschrieben.

Typen von Instanzen

Standard Instanzen

  • Small Instance: 1.7 GB Arbeitsspeicher, 1 EC2 Prozessor, 160 GB Speicherplatz, 32-bit Plattform
  • Large Instance: 7.5 GB Arbeitsspeicher, 4 EC2 Prozessoren, 850 GB Speicherplatz, 64-bit Plattform
  • Extra Large Instance:15 GB Arbeitsspeicher, 8 EC2 Prozessoren, 1690 GB Speicherplatz, 64-bit Plattform

High-Memory Instanzen

  • High-Memory Double Extra Large Instance: 34.2 GB Arbeitsspeicher, 13 EC2 Prozessoren, 850 GB Speicherplatz, 64-bit Plattform
  • High-Memory Quadruple Extra Large Instance: 68.4 GB Arbeitsspeicher, 26 EC2 Prozessoren, 1690 GB Speicherplatz, 64-bit Plattform

High-CPU Instanzen

  • High-CPU Medium Instance: 1.7 GB Arbeitsspeicher, 5 EC2 Prozessoren, 350 GB Speicherplatz, 32-bit Plattform
  • High-CPU Extra Large Instance: 7 GB Arbeitsspeicher, 20 EC2 Prozessoren, 1690 GB Speicherplatz, 64-bit Plattform

EC2 Prozessor: Ein EC2 Prozessor ist mit mit einem 1.0-1.2 GHz 2007 Opteron bzw. 2007 Xeon Prozessor vergleichbar.

Betriebssysteme und Software

Betriebssysteme

Folgende vorkonfigurierte Amazon Machine Images (AMI) stehen zur Verfügung:

  • Red Hat Enterprise Linux
  • Windows Server 2003/2008
  • Oracle Enterprise Linux
  • OpenSolaris
  • openSUSE Linux
  • Ubuntu Linux
  • Fedora
  • Gentoo Linux
  • Debian

    Des Weiteren können vorkonfigurierte AMIs inkl. vorinstallierter Software genutzt werden. Folgende Softwarelösungen stehen zur Verfügung:

Datenbanken

  • IBM DB2
  • IBM Informix Dynamic Server
  • Microsoft SQL Server Standard 2005
  • MySQL Enterprise
  • Oracle Database 11g

Batch-Verarbeitung

  • Hadoop
  • Condor
  • Open MPI

Web Hosting

  • Apache HTTP
  • IIS/Asp.Net
  • IBM Lotus Web Content Management
  • IBM WebSphere Portal Server

Anwendungsentwicklung

  • IBM sMash
  • JBoss Enterprise Application Platform
  • Ruby on Rails

Applikationserver

  • IBM WebSphere Application Server
  • Java Application Server
  • Oracle WebLogic Server

Video Encoding & Streaming

  • Wowza Media Server Pro
  • Windows Media Server

Preise

Alle Preise für

  • Datentransfer
  • Amazon Elastic Block Store
  • Elastic IP Addresses
  • Amazon CloudWatch
  • Elastic Load Balancing

sind hier zu finden: Amazon EC2 Preise

Quellen:

[1] Amazon EC2
[2] Graphik: Amazon EC2 (1)
[3] Graphik: Amazon EC2 (2)



Computer Games as a Service

Computer Games as a Service (CGaaS) specified a term in the field of Cloud Computing and stands for a service model in which Computer games are provided via the Internet and are streamed to the Home-PC.



Computer Games as a Service

Computer Games as a Service (CGaaS) bezeichnet einen Begriff aus dem Bereich des Cloud Computing und steht für ein Servicemodell, bei dem Computerspiele über das Internet bereitgestellt und auf den heimischen PC gestreamt werden.



Die Google App Engine

Die Google App Engine [1] ist das Platform as a Service Angebot von Google und
bietet Softwareentwicklern die Entwicklung und das Hosting ihrer Anwendungen auf der
Infrastruktur von Google an. Der Service ist bis zu einem bestimmten Grad kostenlos.
Folgende Richtlinien müssen eingehalten werden, um den Dienst kostenlos nutzen zu
dürfen:

  • Seitenaufruf einer Anwendung: max. 1.300.00 mal pro Tag und max. 7.400 mal pro
    Minute
  • Pro Anwender dürfen max. 10 Applikationen erstellt werden.
  • Max. Versand von E-Mails über die entsprechende API: 2.000 pro Tag
  • Ein-/ und ausgehender Datentransfer max. 1 GB am Tag und max. 56 MB pro Minute
  • Pro Tag darf eine Applikation max. 6,5 CPU-Stunden nutzen

Die Entwicklungsumgebung

Die Google App Engine wurde bereitgestellt um Anwendungen auch während hoher Last oder während der Verarbeitung von vielen Daten zuverlässig ausführen zu lassen. Dazu unterstütz die Google App Engine folgende Funktionen:

  • Dynamische Webdienste inkl. der gänigigen Web-Technologien
  • Persistenter Speicher inkl. der Möglichkeit für Abfragen, Sortierungen und Transaktionen
  • Automatische Skalierung und Loadbalancing
  • APIs für die Authorisierung der Benutzer und die Nutzung der Google E-Mail Accounts
  • Eine Entwicklungsumgebung für lokale System für die Simulation der Google App Engine
  • Warteschlangen für die Steuerung von Aufgaben die eine hohe Performance benötigten
  • Aufgabenverwaltung für die Steuerung von Events zu bestimmten Zeitpunkten
  • Die Anwendungen werden in einer Sandbox ausgeführt. Dadurch hat die Anwendung niemals direkten Zugriff auf das darunterliegende Betriebssystem.
  • Für die Entwicklung stehen mit der Java JRE 6, sowie Python 2.5.2. zwei Laufzeitumgebungen zu Verfügung.
  • Für das Speichern der Anwendungen wird von der App Engine eine verteilte Datenhaltung verwendet, wobei der verteilte Speicher mit der Menge der Daten wächst.

App Engine Services

Die Google App Engine bietet folgende APIs zur Arbeit und der Verwaltung der Applikationen:

  • URL Fetch: Mit dem URL-Fetch Service können Anwendungen auf andere Ressourcen wie Web Services oder Daten über das Internet zugreifen. Dabei wird dieselbe Google Infrastuktur verwendet, wie sie auch von bekannten Google Produkten genutzt wird.
  • Mail: Mittels der App Engine Mail API sind Anwendungen in der Lage direkt E-Mails zu versenden.
  • Memcache: Mittels Memcache kann auf Daten zugegriffen werden, die nicht im persistenten Speicher abgelegt werden. Durch einen schnellen in-Memory Key-Value Cache ist eine Anwendung in der Lage mehreren Instanzen parallel nur temporär vorhandene Daten performant bereitzustellen.
  • Image Manipulation: Mittels der Image Manipulation API sind Anwendungen in der Lage Bilder zu verändern. Bei Bildern im JPEG oder PNG Format können folgende Manipulation durchgeführt werden:
    • Anpassen der Größe
    • Zuschneiden/ Beschneiden
    • Drehen
    • Spiegeln

Geplante Tasks und Warteschlangen

Anwendungen können so gesteuert werden, dass sie hoch performante Aufgaben dann erledigen, wenn die Belastung durch Anfragen nicht so hoch ist, z.B. zu einer vorher definierten Uhrzeit oder Tag. Des Weiteren besteht die Möglichkeit eine Anwendung in eine Warteschleife zu legen oder sie im Hintergrund auszuführen.

Quellen:

[1] Google App Engine



Was ist AWS Import/Export?

Der Import/Export [1] Dienst der Amazon Web Services dient dazu, große Datenmengen auf einem schnelleren Weg in die Amazon Cloud zu transferieren bzw. diese hinaus zu bekommen, indem die Daten auf einem Datenträger auf postalischen Weg an Amazon verschickt werden. Dazu überträgt Amazon die Daten direkt vom gelieferten Datenträger über ihr internes Netzwerk in die Cloud. In einigen Fällen ist es kostengünstiger die Daten auf diesem Weg in die Amazon Cloud zu übertragen, als den Weg über das Internet zu wählen und dabei ggf. die Geschwindigkeit der Internetverbindung zu erhöhen.

Vorgehensweise

  • Vorbereiten eines Datenträgers mit den zu transferierenden Daten.
  • Eine Manifest Datei, die alle Informationen (Amazon S3 buckt, AWS Access Key ID, Rücksendeadresse) an Amazon verschicken.
  • Anschließend sendet Amazon eine E-Mail mit einem eindeutigen Kennzeichen und der AWS Versandadresse an die der Datenträger versendet werden muss.
  • Jetzt muss der Datenträger noch für die Identifizierung und Authorisierung vorbereitet werden, indem die Manifest-Datei und die Job-Id mit einer Digitalen Signatur verschlüsselt und auf den Datenträger hinterlegt werden.
  • Der Datenträger mird mit sämtlichen Zubehör an Amazon verschickt.


[2]

Wofür kann AWS Import/Export verwendet werden?

  • Datenmigration: Große Menge an Daten die erstmals in die Amazon Cloud transferiert werden sollen. AWS Import/Export ist in der Regel schneller als der Datentransfer über das Internet.
  • Externe Datensicherung: Vollständige oder Inkrementelle Backups können durch Amazon S3 zuverlässig und redundant gesichert werden.
  • Direkter Datenaustausch: Erhält man von seinen Geschäftspartnern die Daten regelmäßig auf Datenträgern, können diese auf direkten Weg zu Amazon versendet werden. Von dort werden die Daten dann in das eigene Amazon S3 bucket importiert.
  • Systemwiederherstellung: Für den Fall eines Systemausfalls und der notwendigen Wiederherstellung können die Daten mittels AWS Import/Export von Amazon S3 heruntergeladen, auf einem Datenträger gespeichert und anschließend in das eigene (lokale) System wieder importiert werden.

Quellen:

[1] AWS - Import/Export
[2] Graphik: AWS - Import/Export



Decaf – Mobiles Infrastrukturmanagement für Amazon EC2

Jeder Administrator oder Entwickler kennt das Problem. Man(n) sitzt gemütlich mit der Frau/ Freundin im Restaurant und schwelgt mit seinen Gedanken gerade in Wolke Sieben. "Funktionieren meine Instanzen noch? Wie ist die aktuelle Performance". ;)

Genau dafür hat das Unternehmen 9apps mit seiner Anwendung Decaf erstmalig eine mobile Infrastrukturmanagementsoftware für Amazon EC2 Instanzen auf Basis von Android entwickelt. Die Funktionen und Einsatzmöglichkeiten der Software möchte ich hier nun kurz vorstellen.

Was ist Decaf?

  • Decaf ist eine auf Basis von Android funktionierende mobile Infrastrukturmanagementsoftware zur Verwaltung von Amazon EC2 Instanzen.

Welche Funktionen bietet Decaf?

  • Monitoring der Server inkl. Benachrichtigungen bei evtl. Ausfällen.
  • Kontinuierliche graphische Darstellung der aktuellen Zustände der Instanzen als Widget. Das beinhaltet die CPU-Auslastung, Netzwerk Aktivitäten und die Lese- und Schreibzugriffe der Festplatten.
  • Alle Managementfunktionen von Amazon EC2 stehen zur Verfügung, darunter z.B. Stoppen, Neustart und Monitoring der Instanzen oder das Hinzufügen von weiteren Volumes.
  • Zugriff auf alle Informationen von Amazon EC2, wie z.B. einer Gesamt Zusammenfassung bis zu Details der einzelnen Instanzen.

Zukünftige Funktionen?

  • Verwaltung von mehreren Amazon EC2 Accounts.
  • Entwicklung einer speziellen Schnittstelle für Kunden, die eine vielzahl an Instanzen zu verwalten haben.

Das Dashboard

Mit dem Dashboard kann auf alle Daten des jeweiligen Accounts zugegriffen werden. Dazu gehören u.a. Informationen wie Details über alle Instanzen, Amazon Machine Images (AMIs), Snapshots, Elastic IPs, sowie Security Groups und die Key Pairs.

Das Widget

Das Widget stellt alle Informationen in Echtzeit dar und aktualisiert sich selbständig, wodurch es unverzüglich informiert wenn etwas unerwartetes passiert. Die Diagramme des Widgets geben Auskunft über die Entwicklung und Änderungen der durchschnittlichen CPU-Leistung, der gesamten Lese- und Schreib-Aktivitäten der Festplatten, sowie des ein- und ausgehenden Netzwerktraffics innerhalb der letzten 24 Stunden.

Ansicht einer Instanz

Der Verwaltungsbereich bietet die Möglichkeit zum Starten, Beenden und Neustarten einer Instanz. Alle von EC2 bekannten Informationen können hierüber abgefragt und überwacht werden.

Ansicht mehrerer Instanzen

Mittels der Ansicht aller Instanzen erhält man einen Gesamtüberblick über den Zustand sämtlicher Instanzen eines Accounts. Anhand der grünen, roten und grauen Kaffeebohne wird der Status dargestellt.

  • Grün = alles ist in Ordnung
  • Rot = es besteht ein Problem
  • Grau = die Instanz ist nicht verfügbar

Durch das Tippen auf eine Instanz erhält man detailliertere Informationen - siehe "Ansicht einer Instanz".

Wunschliste

Folgende Wünsche zur Funktionserweiterung wurden an 9apps bisher von den Benutzern herangetragen, die sukzessive eingebaut werden:

  • Monitoring von Ports (ssh, http, mysql, smtp, etc.)
  • Verwaltung mehrerer Accounts
  • Verwaltung von Images und Snapshots
  • Integration von CloudWatch inkl. Autoscaling und Loadbalancing
  • Konfiguration der Diagramme bzgl. der Größenangaben (Widget und CloudWatch)
  • Einstellungen von Schwellwerten und Integration einer Alarmfunktion auf Basis der CloudWatch Daten
  • Integration von CloudFront
  • Integration mit 'ConnectBot'
  • Anbindung weiterer Anbieter (möglicherweise über Plugins)
  • Ein Release für das iPhone ist ebenfalls geplant.

Weitere Informationen



"Leitfaden Cloud Computing" des BITKOM

Der Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e.V. (BITKOM) hat einen Leitfanden zum Cloud Computing herausgegeben, der sich speziell an Unternehmen richtet um sie zu motivieren sich mit Cloud Computing auseinander zu setzen und somit Potenziale für Ihr Business zu erkennen.

Der Fokus liegt dabei auf den geschäftlichen Herausforderungen, den Geschäftsmodellen und der Integrierbarkeit von Cloud-Lösungen in die Geschäftsprozesse. Im Vordergrund stehen dabei die strategischen und wirtschaftlichen Aspekte.

Der vorliegende Leitfaden umfasst 7 Kapitel. Entscheider finden im Kapitel 1 die wesentlichen Aussagen über die Relevanz von Cloud Computing für ihr Business. Das Kapitel 2 zeigt auf, welchen Einfluss Cloud Computing auf Wertschöpfungsketten ausübt. Im Kapitel 3 werden wesentliche Faktoren erörtert, die die Diffusionsgeschwindigkeit von Cloud Computing determinieren. Das Kapitel 4 ist juristischen Fragestellungen vorbehalten. Einsatzszenarien und –beispiele für Cloud Computing werden im Kapitel 5 erläutert, während das Kapitel 6 den Zusammenhang zwischen Cloud Computing und anderen Technologieentwicklungen beleuchtet. Den Leitfaden rundet eine Checkliste im Kapitel 7 ab.

Der Leitfanden kann auf der Internetseite des BITKOM kostenlos heruntergeladen werden. - DOWNLOAD

An dieser Stelle auch vielen Dank an Herrn Andreas Wilker, der in der Cloud-Community.org | DE auf diesen Leitfaden aufmerksam gemacht hat.



Was ist "CloudWatch"?

Amazon CloudWatch stellt eine Echtzeit Überwachungsfunktion für EC2-Instanzen bereit. Dabei wird der gesamte Ressourcenverbrauch wie die CPU-Auslastung, die Schreib/Lesezugriffe der Festplatten sowie die Netzlast/ Traffic visualisiert. Die Werte werden jede Minute aktualisiert und zwei Wochen gespeichert. Für die Nutzung von CloudWatch muss der Dienst nur einer EC2-Instanz zugewiesen werden. Die Datenauswertung erfolgt anschließend über die AWS Management Console, die Webservice APIs oder über die Kommandozeile.


[2]

Quellen:

[1] AWS - CloudWatch
[2] Graphik: Cloud Watch



Was ist "Elastic Load Balancing"?

Bei Elastic Load Balancing [1] handelt es sich um einen Loadbalancer von Amazon für sein EC2. Dabei wird der eingehende Traffic auf mehrere dahinter liegende EC2-Instanzen verteilt um damit Überlastungen zu vermeiden und einen unterbrechungsfreien Dienst zu garantieren. Fällt eine Instanz temporär aus, wird der Traffic durch den Loadbalancer automatisch auf die restlichen funktionsfähigen Instanzen umgeleitet, bis die ausgefallene Instanz wiederhergestellt ist. Das Elastic Load Balancing funktioniert für einzelne oder aber auch über mehrere Verfügbarkeitszonen hinweg. Entwickler haben darüber hinaus die Möglichkeit über sogenannte Health Checks z.B. mittels Pings oder URL-Fetches die Verfügbarkeit der Instanzen zu prüfen.


[2]

Um garantiert nie weniger als z.B. zwei funktionsfähige EC2 Instanzen hinter dem Elastic Load Balancer arbeiten zu lassen, kann das Elastic Load Balancing mit dem Autoscaling kombiniert werden. Dazu wird das Autoscaling so konfiguriert, dass nie weniger als zwei funktionsfähige EC2 Instanzen vorhanden sein dürfen. Der Ausfall einer Instanz wird dann durch das Autoscaling erkannt, was dazu führt, dass automatisch die erforderliche Menge von EC2-Instanzen zu der Autoscaling Gruppe hinzugefügt werden.

Quellen:

[1] AWS - Elastic Load Balancing
[2] Graphik: Elastic Load Balancing



Was bedeutet "Autoscaling?

Autoscaling [1] sorgt dafür, dass die Anzahl der Server innerhalb einer Server-Farm automatisch skaliert. Bei steigender Serverlast wird die Arbeit dann von einer größeren Anzahl an Servern übernommen. Sinkt die Serverlast werden die nicht mehr benötigten Server automatisch heruntergefahren.


[2]

Autoscaling ist typisch für das Cloud Computing und ist dann vorteilhaft, wenn die Auslastung der Server großen Schwankungen zugrunde liegt. Ein typischer Fall sind Webseiten, die nur zeitlich oder saisonal stark betroffen sind. Viele Webseiten "schlafen" am Tag und müssen in der Nacht Spitzenlasten verarbeiten. Ein anderes Beispiel sind Webshops, die über das Jahr hinweg eine konstante Besucherzahl haben, aber zu Feiertagen, wie z.B. Weihnachten zunehmend "überlaufen" werden. Das Gleiche gilt für Online Reisebüros, die im Sommer und im Winter ihre Spitzenzeiten haben, im Früjahr und Herbst aber eher weniger ausgelastet sind. Das Autoscaling sorgt in diesen Fällen dafür, dass während der Spitzenzeiten automatisch die Performance der Webseiten mitwächst und in den Zeiten, wo weniger Last zu verarbeiten ist, die überschüssigen Server "abgestossen" werden. Es handelt sich also um eine dynamische Skalierung der zum jeweiligen Zeitpunkt benötigten Performance.

Die technischen als auch wirtschaftlichen Vorteile liegen somit auf der Hand. Da im Cloud Computing die Server pro Stunde "gemietet" und abgerechnet werden, können durch die Verringerung der eingesetzten Server während geringer Lastzeiten ebenfalls die Kosten reduziert werden. Auf Grund der Nutzung einer höheren Anzahl an Servern zu Spitzenzeiten, werden Performanceprobleme vermieden.

Ein Video der Elusive KG veranschaulicht wie autoscaling funktioniert.

http://www.youtube.com/watch?v=a8zyu9Lg0L0

Quellen:

[1] AWS - Autoscaling
[2] Graphik: Autoscaling