Tag: Amazon


Erste Schritte mit Amazon EC2 – Windows

Dieses Tutorial beschreibt das Einrichten einer virtuellen Instanz mit einem Windows Server 2008 AMI (Amazon Machine Image) auf Basis der Amazon Elastic Compute Cloud (Amazon EC2). Dazu gehören die vollständige Einrichtung der Instanz und der anschließende Zugriff per Remote Desktop Verbindung von einem Windows 7 Computer.

Voraussetzungen

  • Amazon Web Service Account
  • Amazon EC2 ist für den Account bereits aktiviert
  • RDP Client

Auswahl, Einrichten und Starten der Instanz

Zuerst öffnen wir die Webseite der Amazon Web Services und melden uns dort an.

Anschließend starten wir die AWS Management Console für EC2.

Hier klicken wir auf Launch Instance.

Ein weiteres Fenster öffnet sich, in dem bereits fertig vor-konfigurierte Amazon Machine Images (AMIs) von Amazon angezeigt werden. Hier wählen wir das erste AMI - Getting Started on Microsoft Windows Server 2008 (AMI Id: ami-a4698bcd)

Nun wählen wir folgende Konfiguration:

  • Number of Instances: 1
  • Availability Zone: No Preference
  • Instance Type: Small (m1.small 1.7 GB)

Als erweiterte Konfiguration wählen wir:

  • Kernel ID: Use Default
  • RAM Disk ID: Use Default
  • Monitoring: Nein

Anschließend erstellen wir ein Schlüsselpaar, hier mit dem Namen clouduser_key und speichern es auf unserem Rechner.

Im nächsten Schritt konfigurieren wir die Firewall, indem wir für unsere AMI eine Security Group erstellen. Die Standardvorgabe ist der externe Zugriff auf die Ports 3389 (RDP), MS SQL Server (1433) und 80 (HTTP). Die Freigaben für den Port 80 und 1433 habe ich entfernt, da wir sie in diesem Fall nicht benötigen. Wir geben der Security Group einen Namen, hier Security_Group_2 und eine Beschreibung, hier RDP_Only und wählen continue.

Danach erhalten wir eine Zusammenfassung unserer Konfiguration, wo wir mittels Launch unsere Instanz starten.

Über Your instances are now launching kommen wir zur Console zurück.

Dort sehen wir, dass unsere soeben erstellte Instanz aktiv ist und wir uns nun mit ihr verbinden können. Dazu notieren wir uns zunächst den Namen in der Spalte Public DNS.

Verbinden mit der Instanz

Um uns mit der Instanz zu verbinden öffnen wir zunächst die Datei mit unserem erstellten Private Key und kopieren den gesamten Inhalt inkl. der Kommentare -----BEGIN RSA PRIVATE KEY----- und -----END RSA PRIVATE KEY-----.

Nun gehen wir zurück zur AWS Management Console, klicken mit der rechten Maustaste auf die Instanz und wählen Get Windows Password

In das Feld Private Key* fügen wir den privaten Schlüssel inkl. der Kommentare -----BEGIN RSA PRIVATE KEY----- und -----END RSA PRIVATE KEY----- ein.

Nach dem Klick auf Decrypt Password wird uns der Benutzername und das Passwort für die Anmeldung an unserer Instanz angezeigt.

Jetzt öffnen wir die Remote Desktop Verbindung und tragen dort den Public DNS Namen ein.

Nach dem Klick auf Verbinden geben wir den Benutzernamen und das Passwort, das wir oben erhalten haben, ein.

Die Verbindung wird hergestellt.

Nun müssen wir noch das Zertifikat unserer Instanz akzeptieren.

Wir sind mit unserer Instanz verbunden.

Beenden der Instanz

Um die Instanz wieder zu beenden gehen wir zurück zu der AWS Management Console klicken mit der rechten Maustaste auf die Instanz und wählen Terminate.

Nach dem Bestätigen wird die Instanz beendet.

In der AWS Management Console ist am gelben Punkt zu sehen, dass die Instanz beendet wird. Das benötigt ein wenig Zeit.



Erste Schritte mit Amazon EC2 – Linux

Dieses Tutorial beschreibt das Einrichten einer virtuellen Instanz mit einem Fedora Linux AMI (Amazon Machine Image) auf Basis der Amazon Elastic Compute Cloud (Amazon EC2). Dazu gehören die vollständige Einrichtung der Instanz und der anschließende Zugriff per SSH von einem Windows 7 Computer.

Voraussetzungen

Auswahl, Einrichten und Starten der Instanz

Zuerst öffnen wir die Webseite der Amazon Web Services und melden uns dort an.

Anschließend starten wir die AWS Management Console für EC2.

Hier klicken wir auf Launch Instance.

Ein weiteres Fenster öffnet sich, in dem bereits fertig vor-konfigurierte Amazon Machine Images (AMIs) von Amazon angezeigt werden. Hier wählen wir das erste AMI - Getting Started on Fedora Core 8 (AMI Id: ami-b232d0db)

Nun wählen wir folgende Konfiguration:

  • Number of Instances: 1
  • Availability Zone: No Preference
  • Instance Type: Small (m1.small 1.7 GB)

Als erweiterte Konfiguration wählen wir:

  • Kernel ID: Use Default
  • RAM Disk ID: Use Default
  • Monitoring: Nein

Anschließend erstellen wir ein Schlüsselpaar, hier mit dem Namen clouduser_key und speichern es auf unserem Rechner.

Im nächsten Schritt konfigurieren wir die Firewall, indem wir für unsere AMI eine Security Group erstellen. Die Standardvorgabe ist der externe Zugriff auf die Ports 22 (SSH) und 80 (HTTP). Die Freigabe für den Port 80 habe ich entfernt, da wir sie in diesem Fall nicht benötigen. Wir geben der Security Group einen Namen, hier Security_Group_1 und eine Beschreibung, hier SSH_Only und wählen continue.

Danach erhalten wir eine Zusammenfassung unserer Konfiguration, wo wir mittels Launch unsere Instanz starten.

Über Your instances are now launching kommen wir zur Console zurück.

Dort sehen wir, dass unsere soeben erstellte Instanz aktiv ist und wir uns nun mit ihr verbinden können. Dazu notieren wir uns zunächst den Namen in der Spalte Public DNS.

Verbinden mit der Instanz

Um uns mit der Instanz zu verbinden starten wir zunächst PuTTYgen und laden uns über Load den privaten Schlüssel den wir uns oben erstellt haben.

Wenn dieser geladen ist, klicken wir auf Save private Key und ignorieren das Fenster mit der Passphrase!

Jetzt öffnen wir unseren PuTTY SSH Client und tragen den Public DNS Namen in das Feld Host Name. Der Port 22 (SSH) ist der Standardwert.

Wir navigieren im PuTTY SSH Client auf der linken Seite zu dem Punkt SSH >> Auth. Dort laden wir bei dem Punkt Authentication parameters unseren oben mit PuTTYgen erzeugten privaten Schlüssel.

Nach einem klick auf Open wird eine Verbindung zu unserer Instanz hergestellt.

Dort melden wir uns mit dem Benutzer root an. Nun können wir mit unserer erstellten Linux Instanz arbeiten.

Beenden der Instanz

Um die Instanz wieder zu beenden gehen wir zurück zu der AWS Management Console klicken mit der rechten Maustaste auf die Instanz und wählen Terminate.

Nach dem Bestätigen wird die Instanz beendet.

In der AWS Management Console ist am gelben Punkt zu sehen, dass die Instanz beendet wird. Das benötigt ein wenig Zeit.



Skalierung eines Cluster mit Amazon EC2

Dieses Beispiel zeigt welche Komponenten erstellt und konfiguriert werden müssen, um einen Mini Cluster innerhalb eines privaten Netzwerks unter der Verwendung von NIS und NFS aufzubauen. Zusätzlich werden externe Amazon EC2 Nodes per VPN mit dem Server verbunden und am Ende der Cluster mittels der Sun Grid Engine (SGE) aufgebaut.

Architektur

Folgende technische Voraussetzungen werden benötigt:

  • Das private Netzwerk darf nur über ein VPN erreichbar sein, damit die Nodes die sich darin befinden vollständig isoliert sind.
  • Der Server muss NFS, NIS und VPN unterstützen.
  • Die internen Nodes müssen den NFS und NIS Dienst automatisch vom Server starten.
  • Die externen Nodes sind von Amazon EC2.
  • Die externen Nodes müssen automatisch eine Verbindung in das VPN aufbauen und den NFS und NIS Dienst vom Server starten.

Auf Basis dieser Anforderungen werden 3 Images benötigt.

  • 2 Xen Images - einen Server und einen internen Node
  • 1 Amazon Machine Image (AMI) von Amazon EC2 mit derselben Konfiguration wie der interne Node.

Die Konfigurationen sehen in diesem Beispiel wie folgt aus:

Server

  • Private IP-Adresse: eth0 10.1.1.99
  • Öffentliche IP-Adresse: eth1 147.96.1.100
  • Hostname: oneserver

Xen Node (lokal)

  • Private IP-Adresse: eth0 10.1.1.55
  • Hostname: local01

Amazon EC2 Node (IP-Adress Bereich: 10.1.1.100 bis 10.1.1.254)

  • VPN IP-Adresse: tap0 10.1.1.100 (wird durch den VPN Server vergeben)
  • Öffentliche IP-Adresse: eth0 - wird automatisch von Amazon vergeben
  • Hostname: workernode0

Konfiguration

Konfiguration der Images

Nun wird eine Kopie des Image erstellt und die /etc/hostname und /etc/network/interfaces für den Server (oneserver) editiert. Eine weitere Kopie des Image dient als Node, die oben genannten Dateien müssen für diesen ebenfalls angepasst werden. Nach dem unmount der Images werden diese mit Xen gestartet. Für die Konfiguration von NFS und NIS helfen die beiden nachfolgend verlinkten Howtos.

Bei der Konfiguration des VPN Server ist darauf zu achten, dass alle Clients die Zertifikate doppelt verwenden können. Das liegt daran, da keine separaten Amazon EC2 Instanzen erstellt werden sollen und es sich bei den EC2 Instanzen daher um dieselben handelt. Dazu muss in der Konfigurationsdatei von OpenVPN /etc/openvpn/server.conf in Zeilt "duplicate-cn" eingefügt werden. Die Konfiguration von OpenVPN findet nur auf dem Server statt. Eine Howto für die Konfiguration von OpenVPN ist unter dem folgenden Link zu finden.

Für das Erstellen eines Amazon Machine Images wird der Befehl bundle benötigt, dazu kann der lokale Node genutzt werden. Weiterhin muss der VPN Client und die Sun Grid Engine installiert und konfiguriert werden. Auf dem schnellsten Wege sollte das funktionieren, indem eine Kopie des lokalen Node erstellt und konfiguriert wird, anschließend wird es mit dem Befehl ec2-bundle-image gebündelt.

Während des Boot-Vorgangs wird nun noch ein Skript benötigt, in welchem der IP-Adressbereich von OpenVPN für die Amazon EC2 Instanzen von 10.1.1.100 bis 10.1.1.254 reserviert wird. die Konfiguration erfolgt in der /etc/hosts auf dem Server (oneserver).

EC2 Konfiguration mit OpenNebula

Nach der Konfiguration werden nun die Templates benötigt, um die Maschinen zu starten. Für alle lokalen Maschinen wie den oneserver und die Nodes wird jeweils ein Template benötigt, für die EC2 Maschinen reicht ein Template aus.

clouduser@machine:bin$ ec2-describe-images
IMAGE ami-e4a94d8d one-w2/image.manifest.xml 587384515363 available private i386 machine
IMAGE ami-cdb054a4 sge-dolphin/image.manifest.xml 587384515363 available private i386 machine
IMAGE ami-d8b753b1 sge-parrot/image.manifest.xml 587384515363 available private i386 machine
IMAGE ami-dcb054b5 sge-squirrel/image.manifest.xml 587384515363 available private i386 machine

Auf Basis des Images "ami-dcb054b5" wird das EC2 Template erstellt.

CPU=1

MEMORY=1700

EC2=[ AMI="ami-dcb054b5", KEYPAIR="gsg-keypair", ELASTICIP="75.101.155.97", INSTANCETYPE="m1.small", AUTHORIZED_PORTS="22-25"]

REQUIREMENTS = 'HOSTNAME = "ec2"'

Deployment und Tests

Um den Test zu starten muss zunächst OpenNebula gestartet und der EC2 Host hinzugefügt werden.

clouduser@machine:one$ one start
oned and scheduler started
lgonzalez@machine:one$ onehost create ec2 im_ec2 vmm_ec2
lgonzalez@machine:one$ onehost list
HID NAME RVM TCPU FCPU ACPU TMEM FMEM STAT
0 ec2 0 0 100 on

Als nächstes wird die EC2 Instanz gestartet.

clouduser@machine:one$ onevm create ec2.template
ID: 0

Die virtuelle Maschine wird später automatisch auf Amazon EC2 bereitgestellt.

clouduser@machine:one$ onevm list
ID NAME STAT CPU MEM HOSTNAME TIME
0 one-0 pend 0 0 00 00:00:05
lgonzalez@machine:one$ onevm list
ID NAME STAT CPU MEM HOSTNAME TIME
0 one-0 boot 0 0 ec2 00 00:00:15

Mittels onevm show id können alle Informationen eingesehen werden.

clouduser@machine:one$ onevm show 0
VID : 0
AID : -1
TID : -1
UID : 0
STATE : ACTIVE
LCM STATE : RUNNING
DEPLOY ID : i-1d04d674
MEMORY : 0
CPU : 0
PRIORITY : -2147483648
RESCHEDULE : 0
LAST RESCHEDULE: 0
LAST POLL : 1216647834
START TIME : 07/21 15:42:47
STOP TIME : 01/01 01:00:00
NET TX : 0
NET RX : 0

....: Template :....
CPU : 1
EC2 : AMI=ami-dcb054b5,AUTHORIZED_PORTS=22-25,ELASTICIP=75.101.155.97,INSTANCETYPE=m1.small,KEYPAIR=gsg-keypair
IP : ec2-75-101-155-97.compute-1.amazonaws.com
MEMORY : 1700
NAME : one-0
REQUIREMENTS : HOSTNAME = "ec2"

In diesem Beispiel ist die EC2 Instanz über die Adresse ec2-75-101-155-97.compute-1.amazonaws.com zu erreichen.

Nun muss geprüft werden, ob alle virtuellen Maschinen im Cluster gestartet sind. Es existiert eine lokale virtuelle Maschine auf Basis von Xen (local01) und eine von Amazon EC2 (workernode0).

oneserver:~# qstat -f
queuename qtype used/tot. load_avg arch states
----------------------------------------------------------------------------
all.q@local01 BIP 0/1 0.05 lx24-x86
----------------------------------------------------------------------------
all.q@workernode0 BIP 0/1 0.04 lx24-x86
----------------------------------------------------------------------------

Um den Cluster zu testen können ein paar Jobs mittels qsub an die Sun Grid Engine geschickt werden.

oneserver:~# qsub test_1.sh; qsub test_2.sh;

Nun ist zu sehen, welche Jobs im Hybrid Cluster geplant und gestartet sind.


clouduser@oneserver:~$ qstat -f
queuename qtype used/tot. load_avg arch states
----------------------------------------------------------------------------
all.q@local01 BIP 0/1 0.02 lx24-x86
----------------------------------------------------------------------------
all.q@workernode0 BIP 0/1 0.01 lx24-x86
----------------------------------------------------------------------------
############################################################################
- PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS
############################################################################
1180 0.00000 test_1.sh clouduser qw 07/21/2008 15:26:09 1
1181 0.00000 test_2.sh clouduser qw 07/21/2008 15:26:09 1

clouduser@oneserver:~$ qstat -f
queuename qtype used/tot. load_avg arch states
----------------------------------------------------------------------------
all.q@local01 BIP 1/1 0.02 lx24-x86
1181 0.55500 test_2.sh clouduser r 07/21/2008 15:26:20 1
----------------------------------------------------------------------------
all.q@workernode0 BIP 1/1 0.07 lx24-x86
1180 0.55500 test_1.sh clouduser r 07/21/2008 15:26:20 1
----------------------------------------------------------------------------

Es können beliebig viele externe Amazon EC2 Instanzen automatisch zum Cluster als Nodes hinzugefügt werden und damit die Skalierbarkeit dynamisch erhöht werden.

Quelle



Skalierung von Web-Servern auf Amazon EC2

Dieses Beispiel zeigt, wie eine skalierbare Web Anwendung auf einer virtuellen Infrastruktur bereitgestellt wird. Um dies zu erreichen wird ein Load Balancer als Master Node für diese Web Anwendung eingesetzt. Hinter dem Load Balancer werden Slave Nodes eingesetzt, die über eine Kopie dieser Web Anwendung verfügen, für den Fall, dass eine Anfrage zu ihnen weitergeleitet wird. Die Leistung (Anfragen pro Sekunde) der Web Anwendung kann durch das Starten oder Herunterfahren von virtuellen Instanzen, die als Nodes des Load Balancer dienen, dynamisch erhöht oder verringert werden.

Ein Teil dieses Beispiels zeigt, wie Remote Nodes (Amazon EC2) eingesetzt werden, wenn die lokale Infrastruktur (auf Basis von Xen) ausgelastet ist.

Architektur

Folgende Komponenten werden für den Aufbau der virtuellen Infrastruktur genutzt:

  • Ein NGinx Server als Load Balancer - zur Aufteilung der Anfragen an die Webserver.
  • Mehrere NGinx Server als Webserver (die einzelnen Nodes des Load Balancer), die jeweils auf einer virtuellen Maschine ausgeführt werden.

Mit den folgenden Eigenschaften:

  • Die virtuellen Maschinen, auf welchen die Webserver ausgeführt werden, können sich lokal (auf dem Xen Hypervisor innerhalb der lokalen Infrastruktur) oder remote (auf Amazon EC2 Instanten) befinden.
  • Die Verwaltung (Monitoring, Deployment, Miration, ...) der virtuellen Maschinen wird mit OpenNebula vorgenommen.

Die obere Graphik beschreibt folgende Eigenschaften:

  • Die grünen Pfeile stehen für Web-Anfragen durch die Web-Clients an den Load Balancer.
  • Die roten Pfeile sind die Anfragen der Web-Clients, die von dem Load Balancer an die Webserver weitergeleitet werden.
  • Die orangen Pfeile stehen für das Monitoring und der Verwaltung durch den Virtual Machine Manager (OpenNebula).

Durch das dynamische Bereitstellen und Hinzufügen weiterer virtueller Webserver zu dem Load Balancer, verfügt diese Infrastruktur über eine hohe Fehlertoleranz, Verfügbarkeit und Skalierbarkeit. Darüber hinaus unterstützt die (virtuelle) Infrastruktur zwei unterschiedliche Virtualisierungs-Technologien (Xen und Amazon EC2), wodurch eine Erweiterung der lokalen Infrastruktur durch eine externe Infrastruktur möglich ist.

Konfiguration
Zunächst muss OpenNebula für das Deployment der virtuellen Infrastruktur konfiguriert werden. Weiterhin muss NGinx auf die Systeme installiert werden, die später den Load Balancer und die Webserver beherbergen sollen. Das Vorgehen dazu ist in dem folgenden Howto beschrieben.

Für die Konfiguration des Load Balancer gelten dieselben Schritte wie in dem oben genannten Howto. Als Konfigurationsdatei kann die nachfolgend aufgeführte genutzt werden. Hier ist der Host definiert, der als Load Balancer verwendet wird und welche Auswahlmethode (round-robin, gewichtet) genutzt werden soll.


clouduser@machine:one$ vim nginx.conf

user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
proxy_pass http://one_loadbalancer;
}
}
upstream one_loadbalancer {
server 10.1.1.11:80 ;
server 10.1.1.22:80 ;
server 10.1.1.33:80 ;
server 10.1.1.44:80 ;
}
}

Im Bereich upstream der Konfigurationsdatei werden die virtuellen Webserver definiert, auf welche die Anfragen für den Lastausgleich aufgeteilt werden. Hier müssen ggf. weitere virtuelle Webserver hinzugefügt werden.

In diesem Beispiel haben die Webserver die IP-Adressen 10.1.1.11, 10.1.1.22, 10.1.1.33 und 10.1.1.44. Damit können also vier Nodes verwendet werden.

Der Load Balancer verfügt über:

  • eine private IP-Adresse für die Kommunikation mit den Nodes im privaten Netzwerks. (in diesem Beispiel 10.1.1.99)
  • eine öffentliche IP-Adresse für die Kommunikation mit den Web-Clients und den Amazon EC2 Instanzen.

Die Amazon EC2 haben öffentliche IP Adressen und kommunizieren mit OpenNebula und dem Load Balancer über das Internet.

Um OpenNebula für die Kommunikation mit Amazon EC2 zu konfigurieren und die Instanzen mit NGinx bereitzustellen sind folgende Schritte notwendig.

Jetzt können die Templates für die lokalen und remote Machinen erstellt werden.

Für den Load Balancer wird folgendes Template verwendet:

clouduser@machine:one$ cat xen.loadbalancer
CPU = 0.5
MEMORY = 128
OS = [kernel="/boot/vmlinuz",initrd= "/boot/initrd",root="sda1" ]
DISK = [source="/images/loadbalancer.disk",target="sda",readonly="no"]

Die lokalen Maschinen verwenden diese Templates:

clouduser@machine:one$ cat xen.local01
CPU = 0.5
MEMORY = 128
OS = [kernel="/boot/vmlinuz",initrd= "/boot/initrd",root="sda1" ]
DISK = [source="/images/local01.disk",target="sda",readonly="no"]

Die Pfade zu den Images und dem Kernel müssen entsprechend der eigenen Umgebung angepasst werden. Aus den Images können beliebig viele Klone für die lokalen Nodes erstellt werden.

Die folgenden Templates werden für die remote Maschinen (Amazon EC2) verwendet.

clouduser@machine:one$ cat ec2.template
CPU=1
MEMORY=1700
EC2=[
AMI="ami-yao044b1",
KEYPAIR="gsg-keypair",
INSTANCETYPE="m1.small",
AUTHORIZED_PORTS="22-25"
]
REQUIREMENTS = 'HOSTNAME = "ec2"'

Die Parameter AMI Identifier, Key-Pair, Memory etc. müssen entsprechend der eigenen Umgebung angepasst werden.

Deployment und Test

Jetzt wird der virtuelle Cluster initialisiert. Zunächst wird der OpenNebula Daemon gestartet und mit dem onehost Befehl eine Host in die Liste der Ressourcen aufgenommen.

clouduser@machine:one$ one start
oned and scheduler started
clouduser@machine:one$ onehost create ec2 im_ec2 vmm_ec2
clouduser@machine:one$ onehost create ursa03 im_xen vmm_xen

Anschließend werden die virtuellen Maschinen mit dem onevm Befehl erstellt.

clouduser@machine:one$ onevm create xen.loadbalancer
ID: 0
clouduser@machine:one$ onevm create xen.local01
ID: 1
clouduser@machine:one$ onevm create xen.local02
ID: 2
clouduser@machine:one$ onevm create xen.local03
ID: 3
clouduser@machine:one$ onevm create xen.local04
ID: 4
clouduser@machine:one$ onevm create ec2.template
ID: 5
clouduser@machine:one$ onevm create ec2.template
ID: 6
clouduser@machine:one$ onevm create ec2.template
ID: 7
clouduser@machine:one$ onevm create ec2.template
ID: 8

Mit dem onevm Befehl kann anschließend der Status der Instanzen überprüft werden.

clouduser@machine:one$ onevm list
ID NAME STAT CPU MEM HOSTNAME TIME
0 one-0 runn 12 512 ursa03 00 00:01:15
1 one-1 runn 8 512 ursa03 00 00:01:11
2 one-2 runn 10 512 ursa03 00 00:01:10
3 one-3 runn 11 512 ursa03 00 00:01:02
4 one-4 runn 23 512 ursa03 00 00:00:51
5 one-5 runn 0 512 ec2 00 00:00:48
6 one-6 runn 0 512 ec2 00 00:00:48
7 one-7 runn 0 512 ec2 00 00:00:45
8 one-7 runn 0 512 ec2 00 00:00:43

Nachdem alle virtuellen Maschinen gestartet sind, kann der Load Balancer die Anfragen der Webclients annehmen. Nun muss noch für jede virtuelle Maschine die IP-Adresse in die /etc/nginx/nginx.conf eingetragen werden. Darüber wird dem NGinx Load Balancer mitgeteilt welcher Node bereit ist.

Die Leistung der Webanwendung kann durch das Hinzufügen weiterer lokaler oder Amazon EC2 Nodes mittels xen.localXX oder ec2.template und der Aktualisierung der Load Balancer Konfigurationsdatei erhöht werden.

Das Hinzufügen kann durch die Entwicklung eines Service Managers automatisiert werden.

Quelle



Erste Schritte mit dem CloudBerry S3 Explorer

Letzte Woche hab ich den CloudBerry S3 Explorer vorgestellt. Heute zeige ich die ersten Schritte und Funktionen, um damit einen Amazon S3 Account zu verwalten.

Verbindung zum Amazon S3 Account

Nach dem Start legen wir für den CloudBerry Explorer zunächst unseren Amazon S3 Account an, um uns später damit zu verbinden. Dazu gehen wir auf "File >> Amazon S3 Accounts" klicken dort auf "Add" und fügen unseren S3 Account hinzu, indem wir einen beliebigen Namen zur Anzeige für CloudBerry wählen und unseren von Amazon vergebenen "Access Key" und "Secret Key" eingeben. Die Werte für den "Access Key" und den "Secret Key" erhalten wir direkt im Amazon S3 Account auf der AWS Webseite unter "Security Credentials".

Um uns nun mit unserem S3 Account zu verbinden wählen wir auf einer der CloudBerry Explorer Seiten "Source >> [Name des eben angelegten S3 Accounts]"

Erstellen eines Amazon S3 Bucket

Um einen neuen Bucket zu erstellen klicken wir auf "New Bucket", geben dem Bucket einen Namen und wählen die Region in welcher der Bucket abgelegt werden soll.

Unser Bucket mit dem Namen "clouduser" ist für die Region "US" angelegt.

Nachdem der Bucket erstellt wurde, sollten wir die Zugriffsrechte überprüfen. Dazu klicken wir mit der rechten Maustaste auf den Bucket und wählen "ACL >> ACL Settings".

Dateien können nun hochgeladen werden, indem sie einfach von der einen Seite (lokaler Rechner) des CloudBerry Explorers auf die andere Seite (Amazon Bucket) verschoben werden.



Amazon senkt die Preise für ausgehenden Traffic

Wie ich, haben heute wahrscheinlich alle Amazon Web Service Nutzer eine E-Mail erhalten, in der Amazon ankündigt seine Preise für den ausgehenden Datentransfer rückwirkend zum 01. Februar 2010 um 0,02$ für alle Services und Regionen zu senken.

Die neuen Preise staffeln sich nun wie folgt:

  • First 10 TB per Month: $0.15 per GB
  • Next 40 TB per Month: $0.11 per GB
  • Next 100 TB per Month: $0.09 per GB
  • Over 150 TB per Month: $0.08 per GB

Quelle
AWS



Der CloudBerry S3 Explorer

Der CloudBerry Explorer ist ein Tool für die Verwaltung von Dateien innerhalb von Amazons S3 Cloud Storage. Mittels einer graphischen Benutzeroberfläche kann damit eine Verbindung zu dem S3 Account hergestellt werden, um Buckets anzulegen und Dateien zwischen dem eigenem Rechner und dem S3 Speicherplatz auszutauschen. Der CloudBerry S3 Explorer ähnelt äußerlich dem bekannten Windows Explorer, wodurch man seine Dateien innerhalb von Amazons Cloud so verwalten kann, als befinden sich diese auf dem lokalen Rechner.

Auf Grund der äußerlichen Anlehnung an den Windows Explorer, können (Windows)-Benutzer auch ohne spezielle technische Kenntnisse mit Amazon S3 ihre Dateien verwalten. Benutzer werden zusätzlich unterstützt, indem z.B. zeitaufwendige Aufgaben automatisiert werden können, und sich damit die Produktivität erhöht. Durch die vollständige Integration der Schnittstelle in Amazon S3 kann der lokale Speicher mit den S3 Speicher erweitert werden, wodurch man nicht mehr auf die bekannte "klassische" Art der Datenspeicherung auf der lokalen Festplatte angewiesen ist. Die Datenhaltung und Dateiverwaltung verhält sich dennoch so, als würden sich die Daten auf dem lokalen System befinden. Darüber hinaus können die Dateien, die sich auf dem Amazon S3 Speicher befinden auch Freunden, Bekannten oder allen anderen die über eine Internetverbindung verfügen bereitgestellt werden. Um den Zugriff zu beschränken können die Daten mit bestimmten Rechten und Passwörtern geschützt werden.

Beschreibung einzelner Funktionen

  • Durchsuchen der S3 Buckets
    Mit dem CloudBerry Explorer kann der Inhalt von S3 Buckets durchsucht und verwaltet werden. Dazu gehört z.B. das Erstellen von Buckets und Ordnern oder das Umbenennen von Dateien.

  • Kopieren von Dateien im Hintergrund
    Mit dem CloudBerry Explorer können die Dateien auch im Hintergrund zwischen Amazon S3 und dem lokalen Rechner kopiert oder verschoben werden. Die sonstigen Funktionen des Systems werden davon nicht beeinflusst. Darüber hinaus kann der Kopiervorgang angehalten und wieder fortgesetzt werden. Fehler bei der Übertragung werden wie in einer Warteschlange dokumentiert.

  • Nutzung mehrerer S3 Accounts
    Der CloudBerry Explorer unterstützt einen bis eine beliebige Anzahl von Amazon S3 Accounts.

  • Erstellen von Access Control Lists (ACL)
    Mit dem CloudBerry Explorer können mittels eines speziellen Editors Access Control Lists (ACL) erstellt werden, um damit anderen Amazon S3 Benutzern oder allen Internet Benutzern Zugriff auf den eigenen S3 Speicherplatz zu gewähren. Außerdem können die Rechte auf Bucket-Ebene vergeben werden, was sich auf alle Dateien innerhalb dieses Buckets auswirkt.

  • Kopieren von Dateien zwischen S3 Accounts
    Mit dem CloudBerry Explorer können Dateien schnell zwischen zwei Amazon S3 Accounts kopiert oder verschoben werden.

  • Erstellen öffentlicher URLs
    Mit dem CloudBerry Explorer können für ein oder mehrere Objekte öffentliche URLs generiert werden. Diese können ebenfalls zeitlich begrenzt sein und werden nach einer vorgegeben Zeit inaktiv. Über CNAMEs können die URLs lesbarer gemacht werden.

  • Konfiguration von Amazon CloudFront
    Der CloudBerry Explorer unterstützt die Konfiguration und Bereitstellung von Amazon CloudFront. Dazu wird einfach ein Bucket ausgewählt und dieser für Amazon CloudFront "aktiviert".

Funktionen

  • Verbindung zu einer beliebigen Anzahl von Amazon S3 Accounts
  • Paralleles Arbeiten mit unterschiedlichen Amazon S3 Accounts
  • Schnelles Kopieren zwischen Amazon S3 Accounts
  • Gemeinsame Nutzung von Buckets und Dateien (die sich auf S3 befinden) mit anderen Benutzern
  • Erstellen, Durchsuchen, Löschen von S3 Buckets
  • Kopieren und Verschieben von Dateien zwischen Amazon S3 und dem lokalen Computer
  • Einrichten von Zugriffsrechten für Dateien
  • Automatisieren von alltäglichen Aufgaben mit der Microsoft PowerShell
  • Erzeugen von externen URLs
  • Kopieren und Verschieben im Hintergrund
  • Unterstützung von MD5 um sicherzustellen das Dateien während des Datentransfers mit S3 nicht verändert oder beschädigt werden.
  • Kopieren von Dateien aus dem Windows Explorer
  • Unterstützung von Amazon CloudFront
  • Unterstützung von CNAMEs
  • Unterstützung von zeitlich begrenzten oder signierten URLs
  • Erstellen von ACL-Listen Dateien innerhalb eines Buckets
  • Umbenennung von Objekten in S3
  • Sync Folders: Synchronisation lokaler Daten mit Amazon S3
  • Schutz des CloudBerry Explorer durch ein Masterpasswort
  • Einrichten von benutzerdefinierten HTTP-Headern
  • Automatische und zeitlich gesteuerte Aktualisierung von ACLs
  • Zugriffsverwaltung (öffentlich, privat) für Buckets
  • Bandbreitenregulierung
  • Unterstützung der Bereitstellung von privaten Inhalten für CloudFront
  • Beim Überschreiben einer Datei bleibt die vorherige ACL bestehen
  • Unterstützung des streamincloud.com FLV Encoder für Amazon S3
  • Unterstützung von CloudFront Streaming
  • Unterstützung von AWS Import / Export
  • Unterstützung für die Region US-West
  • ... und vieles mehr ...

Zukünftige Funktionen

  • Erweiterung von Amazon Best Practices
  • Portable Version
  • PSProvider für Amazon S3

Voraussetzungen

  • Windows XP/2003/Vista
  • Microsoft .NET Framework 2.0
  • Amazon S3 Account

Preise

CloudBerry Explorer Freeware

CloudBerry Explorer PRO

Freeware vs. Pro

Quellen

CloudBerry Explorer Freeware
CloudBerry Lab



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



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)



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



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