Selbst wenn man nur einfache Ressourcen wie virtuelle Maschinen oder Speicher bei den Amazon Web Services buchen möchte, sollte man verstehen, wie diese globale Cloud-Infrastruktur aufgebaut ist. Ihre Gliederung und Vernetzung hat wesentlichen Einfluss auf die Datensicherheit, Verfügbarkeit und Performance.
Für den Anfang genügt es zu wissen, dass es auf nahezu jedem Kontinent mehrere AWS-Regionen gibt, die voneinander unabhängig und isoliert sind. Der Traffic zwischen den Regionen läuft immer über das öffentliche Internet. Die Übersicht der globalen AWS-Infrastruktur liefert stets die aktuelle Anzahl an Regionen und der pro Region verfügbaren Availability-Zonen (AZ) und Edge-Standorte.
Aktuell vier Regionen in Europa
In Europa gibt es aktuell die 4 Regionen Dublin, London, Frankfurt und Paris mit einer unterschiedlichen Anzahl von Availability-Zonen. In Frankfurt sind es drei. Lediglich in Afrika, Grönland und Russland ist AWS nicht mit eigenen Regionen vertreten. Jeglicher Traffic innerhalb einer Region fließt über AWS-eigene Netzwerke.
AWS-eigenes Netzwerk zwischen den AZs
So garantiert AWS auf Basis seiner eigenen Glasfaserverbindungen für die Latenz der Availability-Zonen untereinander einen Wert von 1 bis 2 ms. Damit können Nutzer auf einfache Weise hochverfügbare Setups auch für solche Komponenten realisieren, bei denen es eine AWS-eigene Hochverfügbarkeit nicht gibt. Das gilt etwa für Web-Server oder Datenbanken auf Basis eigener virtueller Maschinen.
Intern verteilt sich jede Availability-Zone je nach Größe auf 2 bis 6 Datacenter mit einer Latenz < 0,25 ms. Jedes Datacenter ist mit 50.000 bis 80.000 Commodity-Servern bestückt. Kein Rechenzentrum ist „cold“, und entsprechend hosten sie immer Kunden-Kapazität. Dabei halten sie aber auch eine gewisse Überkapazität vor, um Kundenanfragen jeden Umfangs jederzeit bedienen zu können.
Replikation innerhalb von Regionen
AWS nutzt die verteilte Infrastruktur aus Datacenter und AZs für die interne Replikation und realisiert so die jeweils garantierte Verfügbarkeit von Diensten mit eingebauter Verfügbarkeit, beispielsweise für S3 oder ELB (Elastic Load Balancing). AWS repliziert niemals Ressourcen ohne Wissen oder Einverständnis des Kunden aus einer bestimmten Region heraus, es sei denn, dieser tut dies explizit selbst, wie etwa beim Kopieren eines Snapshots oder AMIs in eine andere Region.
Verfügbarkeitszonen als kleinste Einheiten
Der Kunde kommt allerdings an ein bestimmtes Datacenter logisch nicht heran. Die kleinste Entität, die der Nutzer bei der Provisionierung einer Ressource wie einer virtuellen Maschine wählen kann, ist die Availability-Zone. Stellt man beispielsweise eine virtuelle Maschine bereit, dann muss sich der Nutzer nach der Wahl der Region für ein Subnetz in der gewünschten Availability-Zone entscheiden. So hört die Region Frankfurt beispielsweise auf den AWS-Namen eu-central-1, und die erste Verfügbarkeitszone dort heißt eu-central-1a.
Availability-Zonen dürfen untereinander keine sich überlappenden Sicherheitsprofile aufweisen, sie verfügen also über eine jeweils eigene Stromversorgung und Internet-Anbindung. Außerdem stehen sie nie auf der gleichen Erdbeben- oder Überschwemmungszone.
Wahl der Region
Vor der Wahl von Virtual Private Clouds (VPCs) und Subnetzen (AZ) steht die Auswahl der „richtigen“ Region. Dazu eines vorab: Nicht alle AWS-Services haben einen regionalen Bezug. Einige Dienste wie IAM oder Route 53 sind global.
In der Regel bietet AWS aber zur Reduzierung der Datenlatenz für die weitaus meisten AWS-Dienste regionale Endpunkte an. Ein solcher ist immer eine URL, die als Eintrittspunkt für einen Web-Service fungiert. Zum Beispiel ist https://dynamodb.eu-central-1.amazonaws.com ein Endpunkt für den Service Amazon DynamoDB.
Einige Services wie IAM unterstützen aber wie gesagt keine Regionen, so dass die zugehörigen Endpunkte auch keine Region beinhalten. Unterstützt ein Service Regionen, dann sind aber auf jeden Fall alle Ressourcen in den jeweiligen Regionen unabhängig voneinander.
Erstellt man etwa eine Amazon EC2-Instance in der Region Frankfurt, dann ist sie unabhängig von den Instanzen in einer anderen Region. Die Entscheidung für eine Region sollte dabei immer aufgrund einer der 4 Kriterien Datenschutz, Verfügbarkeit, Kosten oder Latenz (Daten zu Benutzer, Daten zur Compute-Kapazität) erfolgen:
- Datenschutz: Dazu stellt man sich zum Beispiel folgende Fragen: Erfüllt die gewünschte Region die Datenhoheit und die Compliance-Anforderungen der eigenen geplanten Anwendung oder genügt sie den Datenschutzgesetzen des Landes und der Region, in der die Daten gespeichert werden sollen?
Dazu muss man wissen, dass die die Daten eines AWS-Nutzers (oder seiner Kunden) den Gesetzen des Landes und der Region unterliegen, in der sie gespeichert sind. Darüber hinaus schreiben einige Gesetze zwingend vor, dass Daten nirgendwo anders gespeichert sein dürfen, wenn das eigene Unternehmen zu einer bestimmten Branche mit besonderen Compliance-Standards gehört.
Die weitaus meisten deutschen AWS-Nutzer treffen ihre Entscheidung für die Region Frankfurt aufgrund von Datenschutzerwägungen und können daher sicher sein, dass ihre Daten immer und ausschließlich dort verarbeitet werden. - Dienstverfügbarkeit: Da AWS seine globale Infrastruktur sukzessive aufbaut, ist ein neuer Dienst nicht gleich in jeder Region zu jeder Zeit verfügbar. Die Tabelle der Regionen gibt darüber Auskunft. Da beispielsweise in Europa die Region Irland die erste war, bietet sie die meisten Dienste.
Nicht immer ist aber das Alter einer Region maßgeblich für die Bereitstellung von neuen Diensten durch AWS. So wird beispielsweise die Region China auch in Zukunft nicht alle Services erhalten, und zwar aufgrund der dortigen rechtlichen Bestimmungen - Das dritte Kriterium sind die Service-Kosten. Diese variieren von Region zu Region, werden aber immer in USD berechnet, weil AWS das Währungsrisiko nicht übernimmt.
- Latenz: Diese betrifft beispielsweise jene der Daten zum Endbenutzer oder zu den Berechnungsressourcen. So sind verschiedene hybride Nutzungsszenarien im Kontext von AWS denkbar. Beim Hosten von Web-Anwendungen zählt zwar im erste Linie die Latenz zum Endbenutzer, jedoch hängt es auch hier im Detail von der Architektur der Anwendung ab (Load Balancer, Content Delivery), wo diese entsteht.
Global aufgestellte Unternehmen nutzen auch häufig die Routing-Policy latenzbasiertes Routing im Route 53, um einen globalen DNS-Failover zu realisieren. In jeden Fall kann man mit Hilfe des AWS-Dienstes Cloudpingj ederzeit die Verfügbarkeit und Latenz der jeweiligen Regionen von eigenen Standort aus prüfen.