Network Performance in Amazon EC2

Immer wieder fragen unsere Kunden wie eigentlich die Network Performance in Amazon EC2 innerhalb einer Region und zwischen Regions ist … Amazon AWS selbst gibt dazu leider prinzipiell keinerlei Auskünfte … einen guten Überblick zu diesem Thema gibt es in der Studie von Sumit Sanghrajka, Nilesh Mahajan und Radu Sion.

ColdFusion 10 in der Amazon Cloud

Im Rahmen der aktuellen Adobe ColdFusion 10 Launch-Tour halten wir einen Vortrag zum Thema Amazon AWS Cloud. Mehr zu der Adobe ColdFusion 10 LaunchTour finden Sie unter http://www.coldfusioneurope.eu/. Die Folien unseres Vortrags finden Sie hier als PDF-Datei zum Download: CF10-AWS-tecRacer.

 

Amazon AWS Training in Saudi-Arabien

In der KW 20 / 2012 haben wir ein 3-tägiges Amazon AWS Training für den Tüv-Nord / Fahss in Jubail Industrial City in Saudi-Arabien durchgeführt. Es hat riesig Spaß gemacht, vor allem die internationale Besetzung:

(Jordanien, Philippinen, Indien, Pakistan, Syrien, USA, kein Saudi und ich als Deutscher)

Der Kunde ist dabei, sein Microsoft ERP-System komplett in die Amazon Cloud zu verschieben, aus diesem Grunde haben wir uns intensiv mit EC2, VPC und RDS beschäftigt.

tecRacer als Sponsor auf dem Amazon AWS Summit in Berlin am 20.6.2012

Am 20. Juni 2012 findet in Berlin der Amazon AWS Summit 2012 statt. Wir sind dieses Jahr als offizieller Sponsor dabei und freuen uns, wenn Sie auf unserem Stand dort vorbei schauen.

Agenda und Anmeldung finden Sie hier: http://aws.amazon.com/aws-summit-2012/berlin/

 

AWS CloudFront Video-Streaming über RTMP

Mittels CloudFront kann man auch ohne einen Adobe Flash Media Server Videos über das Adobe eigene RTMP Protokoll streamen. Dazu müssen alle Videos in einem S3-Bucket abgelegt werden, dieser S3-Bucket wird dann entsprechend mit CloudFront als Streaming Distribution verbunden.

Über z.B. den Flash Media Playerback Videoplayer von Adobe (http://www.osmf.org/configurator/fmp/#)  kann man dann das Video als Stream über das RTMP Protokoll abrufen. Wichtig ist dabei, dass die URL wie folgt angegeben werden muss:  rtmp://CLOUDFRONT-URL/cfx/st/_definst_/mp4:VIDEONAME.mp4

Das mit dem cfx/st steht ja noch irgendwo in der Dokumentation … aber das mit dem _definst_ hat Amazon AWS glatt vergessen zu dokumentieren …

CloudFront unterstützt als Protokolle RTMP und RTMPE (die leicht verschlüsselte Variante) und verwendet ausschliesslich den Port 1935. Leider wird die getunnelte Version RTMPT nicht unterstützt … schade.

Nachtrag am 6.6.2012: Habe noch mal recherchiert und dann getestet … RTMPT und RTMPTE gehen nun auch und zwar über Port 80 und auch Port 443, war wohl nur eine kleine Störung an dem Tag meines Tests …


 

 

Amazon RDS VPC Support für SQLServer und Oracle … via Workaround

Amazon RDS bietet seit neuestem ja auch Microsoft SQLServer 2008 an. Oracle hatte ich mir bisher bei Amazon RDS noch nicht richtig angeschaut. Von MySQL und vor allem aus den Menüpunkten der AWS Console wusste ich, dass man Amazon RDS auch prinzipiell an ein VPC Subnet konnektieren kann.

Leider ist zur Zeit ausschliesslich für Amazon RDS  MySQL Instanzen eine Anbindung an ein VPC Subnet möglich. Somit können all die Enterprise Kunden, die alle eigentlich VPCs mit private und public  Subnets nutzen, eine Anbindung von z.B. einem Application-Server innerhalb des private Subnets an Amazon RDS SQLServer oder Oracle Instanzen nicht möglich. Alle Optionen für die Zuweisung von DBSecurityGroups, die einem VPC  zugeordnet sind, zu einer DB-Instanz fehlen in der AWS Console und sind nur bei MySQL-Instanzen verfügbar.

Nach etwas längerem Nachdenken und Ausprobieren habe ich einen Workaround gefunden, da unser Kunde unbedingt Amazon RDS SQLServer in Verbindung mit seinem VPC nutzen möchte …

Man gibt einfach der entsprechenden EC2-Instanz im Private-Subnet eine 2 Netzwerkkarte. Diese 2. Netzwerkkarte ist dann dem Public-Subnet zugeordnet und erhält eine Elastic-IP und eine entsprechende Security-Group, die Outbound 1433 zuläßt. Dann erlaubt man nur noch in der entsprechenden DBSecurity-Group in Amazon RDS den Zugriff von der entsprechenden Elastic-IP Adresse der 2. Netzwerkkarte. War doch ganz einfach.

Und das Gute ist vor allem, dann wenn dann der VPC-Support für Amazon RDS bei Oracle und SQLServer Instanzen kommt, dann kann man ganz einfach umstellen, da man nur die 2. Netzwerkkarte wieder entfernen muss und einiges in den DBSecurity-Groups umstellen muss …

Installation von VMWare ESX oder Citrix XEN auf Amazon EC2

Immer wieder bekommen wir von unseren Kunden die Frage gestellt, wie man denn auf EC2 einen z.B. VMWare ESX Server installiert … also quasi eine Virtualisierungsschicht innerhalb einer Virtualisierungsschicht … die Kunden haben aus ihrer Sicht durchaus nachvollziehbare Gründe das zu wollen …

… aber leider geht das nicht, denn der entsprechend dafür notwendige CPU Befehlssatz wird vom EC2 Hypervisor nicht unterstützt. Eine gute technische Erklärung liefert dieser Link: http://www.cloudstacking.com/?p=448 und letztendlich denke ich, das Amazon AWS das auch nicht wirklich will, da das Ganze insbesondere mit den ganzen Network-Optionen innerhalb von z.B. VMWare wirklich zu kompliziert wird …

 

Datenimport nach Amazon RDS MS SQLServer 2008

und wie bekomme ich nun meine SQLServer Datenbank nach Amazon RDS importiert …

Leider kann man nicht so einfach das SQLServer Management Studio nehmen und mal schnell eine Backup-Datei einer Datenbank nehmen und über eine als Dummy angelegte Datenbank einspielen … denn man hat ja keinen Zugriff auf die Laufwerke des zugrunde liegenden Servers …

Also verbleibt nur der Weg über SQL-Skripte.

mehr … »

Amazon RDS unterstützt ab sofort auch MS SQLServer 2008 R2

Endlich … neben MySQL und Oracle wird seit dem 8. Mai 2012 nun endlich auch der Microsoft SQLServer als gemanagte Datenbank Instanz angeboten. Viele unserer Kunden nutzen doch den SQLServer und somit freuen wir uns, endlich dies auch als Amazon RDS Dienst anbieten zu können, da eine gemanagte SQLServer Datenbank im Rahmen von Amazon RDS sehr einfach betrieben werden kann und man sich um viele lästige Administrations-Aufgaben (z.B. automatische Datensicherung) nicht mehr kümmern muss.

Hier ein paar Facts:

  • Amazon RDS bietet den SQLServer in allen Regionen an.
  • Zur Zeit wird ausschliesslich SQLServer 2008 R2 angeboten, SQLServer 2012 kommt im Laufe des Jahres.
  • Zur Auswahl stehen folgende SQLServer 2008 R2 Editionen: Express, Web Edition, Standard Edition und Enterprise Edition.
  • Die Option Multi-AZ (automatisch Replikation der Datenbank in andere Availability Zonen innerhalb der Region) steht leider noch nicht zur Verfügung, soll aber später kommen.
  • Bei der SQLServer Standard und Enterprise Edition können die SQLServer Instanzen auch mit eigenen SQLServer Lizenzen betrieben werden (dann wählt man “bring your own license”) und spart ein wenig bei den Instanz Preisen.
Wichtig: Wenn man eine RDS-Instanz erstellt, dann muss man auch die Größe des “allocated Storage” angeben, also wieviel Speicherplatz meiner SQLServer-Instanz später zur Verfügung steht. Innerhalb dieser SQLServer-Instanz kann man übrigens mehrere SQLServer-Datenbanken anlegen … der allocated Storage wird auf mehreren über RAID 0 (gestripten) verbundenen EBS Volumes gespeichert. Dieses hat Amazon AWS aus Performancegründen gemacht. Allerdings ist Windows nicht in der Lage, nachträglich die Größe eines RAID 0 Volumes zu verändern … ;-(( … aus diesem Grunde sollte man die Definition des “allocated Storages” groß genug wählen. Ist der nämlich voll, dann kann man nur die Datenbank als SQL-Skript exportieren und eine neue RDS-Instanz anlegen und die Daten wieder importieren.

Latenzzeiten zu den einzelnen Amazon AWS Regions

Manchmal möchte mal selbst oder eine Kunde wissen, wo der Unterschied (neben dem Geld) im Hosting in den unterschiedlichen Amazon Regions besteht. Am besten wird dieses deutlich, wenn man mal die Latenzzeiten direkt misst und vergleicht. Dazu gibt es hier ein super Online-Tool: http://www.cloudping.info

Bei uns kam heute folgendes als Ergebnis:

Region Latency
US-East (Virginia) 116 ms
US-West (California) 179 ms
US-West (Oregon) 196 ms
Europe (Ireland) 59 ms
Asia Pacific (Singapore) 1303 ms
Asia Pacific (Japan) 1291 ms
South America (Brazil) 224 ms

EC2 Instance Meta-Data und User-Data abfragen

Innerhalb einer EC2-Instanz kann man sehr einfach über HTTP Request auf die immer einheitliche IP-Adresse http://169.254.169.254/ Meta- und die User-Data der entsprechende Instanz abfragen.

Genaue Dokumentation der entsprechenden Calls finden Sie hier.

 

Dokumentation von Amazon AWS Konfigurationen

grrr … da habe ich mir letzte Woche einen abgebrochen, eine VPC-Konfiguration mit normalen Visio Shapes abzubilden … und dann stolpere ich heute über diesen Links: http://aws.amazon.com/architecture/icons/

Dort hat Amazon AWS eine super Icon Bibliothek für Visio und PowerPoint erstellt, genau das was mir gefehlt hatte …

Windows Installations-Medien für EC2 als Snapshots

Wenn man mit Windows-basierten EC2-Instanzen arbeitet, kann es hin und wieder vorkommen, dass man bestimmte Windows-Services nachinstallieren muss … und dann fehlt einem die DVD …

Glücklicherweise hat Amazon AWS alle Windows Installations-Medien als Snapshots hinterlegt. In diesem kurzen Artikel sind die SnapShot IDs aufgelistet und erklärt, wie man die Snapshots als Laufwerk seiner EC2 Instanz hinzufügt.

Amazon AWS Cloud besteht aus 454.400 Servern …

Gemäß einer Hochrechnung von Huan Liu in seinem Blog besteht die gesamte Amazon AWS Cloud Stand März 2012 aus 454.400 Servern … mit in etwa dieser Verteilung … ;-)

data center\size # of server racks # of blade servers
US East (Virginia) 5,030 321,920
US West (Oregon) 41 2,624
US West (N. California) 630 40,320
EU West (Ireland) 814 52,096
AP Northeast (Japan) 314 20,096
AP Southeast (Singapore) 246 15,744
SA East (Sao Paulo) 25 1,600
Total 7,100 454,400

PS: Na dann reichen die 1.982.384 IP4 Adressen von Amazon noch eine Zeit lang ;-)

Amazon EC2 hat 1.982.384 IP4 Adressen im Pool

Das Amazon EC2 Team hat just die Gesamtanzahl der verfügbaren IP4 Adressen auf 1.982.384 erhöht. Diese Adressen sind Stand 1.5.2012 in folgenden Ranges verfügbar …

mehr … »

Wie Instagram auf Basis von Amazon AWS skaliert …

Instagram, 10 Mitarbeiter, 1 Photo-App für iOs und 1 Photo-App für Android … und eben 30+ Million User … und Facebook kaufte das alles für 1 Milliarde USD …

Aber wie haben die Jungs von Instagram das Problem der stetig wachsenden Userzahlen in den Griff bekommen … Amazon EC2 … mehr hier in dieser doch sehr freakigen aber eindrucksvollen Präsentation der Instagram Gründer … http://www.businessinsider.com/instagram-cofounder-heres-how-we-scaled-into-a-billion-dollar-company-deck-2012-4

Amazon AWS Route 53 … very easy

Mit Amazon AWS Route 53 kann man leider erst mal nicht so einfach herum experimentieren, da man eine richtige Domäne braucht, die entsprechend Route 53 zugewiesen wird … also haben wir entschieden für unsere Test-Szenarien und Kunden-WorkShops uns eine eigene Test-Domäne “awstest.de” speziell für Route53-Experimente zu leisten …

mehr … »

EBS-Volumes mit einem Windows-Script als Snapshot sichern

Um dieses Skript auszuführen, müssen die Bitnami Cloud Tools installiert sein. (siehe diesen Artikel). Anschließend erstellt man im Root Verzeichnis der Bitnami Cloud Tools eine AWS-Backup.bat Datei und fügt dort das folgende Skript ein:

@echo off

CALL "D:\AWS-BI~1\scripts\setenv.bat"
CALL "D:\AWS-BI~1\aws-setenv.bat"

:: Path for your AWS home directory
set AWS_HOME=D:\AWS-BI~1\
:: Hier wird der Endpunkt für die Region EU gesetzt.
set EC2_URL=https://ec2.eu-west-1.amazonaws.com:443

cd "D:\AWS-BitNami"

:: Set today's day of week parameter, German Date with . otherwise /
for /F "tokens=1 delims=. " %%a in ('DATE/T') do set dateDayOfMonth=%%a

:: Create a file with all attached volumes
ec2-describe-volumes|find /i "attached">%AWS_HOME%\Volumes.txt

:: Create a file with old scheduled snapshots using same day of week parameter
ec2-describe-snapshots|find /i "%dateDOW%: Daily Backup for">%AWS_HOME%\SnapshotsDOM.txt

:: Create a file of instances filtering on the instance tag Name
ec2-describe-instances|find /i "TAG"|find /i "Name">%AWS_HOME%\InstanceNames.txt

:: Create snapshots of all attached volumes
for /F "tokens=2,3" %%d IN (%AWS_HOME%\Volumes.txt) do for /F "tokens=3,5" %%a IN (%AWS_HOME%\InstanceNames.txt) do if %%a EQU %%e ec2-create-snapshot %%d -d "%dateDayOfMonth%: Daily Backup for %%b (VolID:%%d InstID:%%e)"

::Delete old Snapshots listet in SnapshotsDOM.txt
for /F "tokens=2" %%i in (%AWS_HOME%\SnapshotsDOM.txt) do ec2-delete-snapshot %%i

pause

Das ganze Skript basiert auf einer Vorlage von Mark Sehmer, ich habe nur ein paar Änderungen durchgeführt, damit es bei mir auch funktioniert.

Vorteile einer VPC für den Schutz von EC2-Instanzen

Viele Amazon AWS Kunden nutzen ihre EC2 Instanzen ohne ein VPC … und schützen Ihre EC2 Instanzen ausschließlich über EC2-Security Groups … das ist soweit ok, aber man kann es natürlich unter Einsatz einer Amazon AWS VPC besser machen … denn durch eine Amazon AWS VPC, die übrigens nichts groß extra kostet, kann man ein höheres Maß an Sicherheit erreichen.

Am besten für die meisten Anwendungsfälle ist eigentlich da Szenario bestehend aus einem Public- und einem Private-Subnet in einer VPC.

In diesem gängigen Szenario kommen die aus dem Internet erreichbaren Server (i.d.R. WebServer) in das Public-Subnet. Alle sonstigen Backend-Server kommen in das Privat-Subnet und sind somit aus dem Internet nicht erreichbar und somit zusätzlich geschützt. Damit die Server im Privat-Subnet aber auf z.B. Windows Updates zugreifen können, erfolgt ein Zugang über den Umweg über eine spezielle NAT-Instanz.

mehr … »

Netflix Test Monkey für Amazon AWS

Die gesamte Infrastruktur von Netflix beruht auf Amazon AWS. Netflix hat dabei alles so ausgelegt, das jegliche Komponente ausfallen kann, ohne das Gesamtsystem zu beeinträchtigen. Um dies stets zu verifizieren und potentielle Schwachstellen aufzuspüren, hat Netflix mit dem Test Monkey ein Tool entwickelt, mit dem sie selbst ihre eigene Amazon AWS Infrastruktur gezielt torpedieren, in dem sie entsprechende Services runterfahren, löschen, etc. … Ziel ist dabei natürlich, dass das Gesamtsystem auf Grund des durchdachten Designs für den Endkunden unbeeinträchtigt weiterläuft.

Dies entspricht vom Denken her dem Motto von Werner Vogels, CTO Amazon AWS … “all things will allways fail” … oder zu Deutsch … “alles was kaputt gehen kann, geht auch kaputt”.

Der Quellcode des Test Monkeys wird demnächst als OpenSource veröffentlicht, so dass auch andere Amazon AWS Kunden davon profitieren können. Mehr Infos dazu hier: