Kategorien
Tutorials

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.

Kategorien
Tutorials

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

Kategorien
Tutorials

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

Kategorien
Tutorials

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.

Kategorien
News

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

Kategorien
Services

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

Kategorien
Services

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)

Kategorien
Services

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

Kategorien
Services

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

Kategorien
Services

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)