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.

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.

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