AWS Germany – Amazon Web Services in Deutschland

Amazon AppStream – Streaming von grafischen Anwendungen aus der Cloud

Amazon AppStream ist ein neuer Dienst, der die Erstellung von grafisch reichhaltigen Anwendungen ermöglicht, die in der AWS Cloud ausgeführt werden und ihre Ein- und Ausgabe auf einer Vielzahl von Endgeräten haben können. Der Vorteil von AppStream ist, dass die Anwendung nicht mehr durch Einschränkungen der Endgeräte begrenzt ist, da die gesamte Verarbeitung auf dem Server erfolgt.

Amazon AppStream ist jetzt als Preview verfügbar.

Eine AppStream Anwendung läuft serverseitig auf einer Anzahl von Amazon EC2 Instanzen und kann dort alle Möglichkeiten der Plattform nutzen. So können Dateien in S3, in RDS oder DynamoDB abgelegt werden, die CPU-Leistung der verschiedenen EC2 Instanztypen kann genutzt werden und insbesondere kann auch die GPU in den neuen g2 Instanzen für aufwändige 2D und 3D Grafikberechnungen genutzt werden. Der größte Teil des Anwendungscodes wird in der Cloud ausgeführt. Das macht Deployment und Updates einfacher und schützt den eigenen Code vor Manipulation und Reverse Engineering

Auf Clientseite ist nur eine sehr einfache Anwendung erforderlich, da die gesamte Ausgabe bereits fertig gerendert vom Server geliefert wird. Dadurch sind grafisch aufwändige Anwendungen auch auf leistungsschwächeren Endgeräten möglich und es können schnell viele verschiedene Typen von Endgeräten unterstützt werden. Außerdem startet die Anwendung aus Clientsicht schnell, da sie ggf. auf dem Server bereits läuft. Dennoch können Hardwaregeräte auf dem Client wie Bewegungs- und GPS-Sensoren unterstützt werden.

Das AppStream API ist so gestaltet, dass eine Umstellung bestehender Anwendungen möglichst einfach ist. Aber auch neue Anwendungen, die alle Möglichkeiten von AWS und AppStream nutzen sind möglich.

AppStream bietet für Anwendungen eine Reihe von APIs (XStxServer*). Der Server wartet auf eine Verbindung vom Client und nimmt dann Eingaben und Sensorwerte vom Client entgegen und rendert Video- und Audio-Ausgaben für die Weitergabe an den Client.

Die Ausgabe wird im YUV 420 Format erwartet. Dabei ist sowohl Push (Der Server pusht neue Frames zum Client) als auch Pull (Der Server wartet auf Anfragen nach neuen Frames vom Client) möglich. Auch eine synchronisierte Video/Audio-Ausgabe ist möglich.

Der Client nimmt die Frames vom Server entgegen, decodiert Video und Audio und gibt beides aus. Außerdem gibt der Client Eingaben (Tastatur, Maus, Sensorwerte usw.) an den Server weiter. Umfassendere Verarbeitungsfunktionen im Client sind auch möglich. Im SDK sind Beispiel-Clients für iOS, Android, Windows und Kindle enthalten.

Ein weiterer Teil des AppStream SDK ist der Entitlement Service, der z.B. auf EC2 oder Elastic Beanstalk laufen kann. Beim Aufbau einer neuen Session ist es mit diesem dienst möglich zu überprüfen, ob der Client zum Aufbau einer Verbindung berechtigt ist. Dabei können Daten wie z.B. User Credentials übergeben werden die dem Server die Möglichkeit geben, zwischen berechtigten und unberechtigten Clients zu unterscheiden. Erst nach Genehmigung wird dann eine Session aufgebaut. IM Schaubild sieht das so aus:

Erste Schritte
AppStream ist jetzt auf Anfrage als begrenzter Preview verfügbar. Der Zugriff kann hier beantragt werden,

Zum Beginn haben wir im AppStream Developer Guide  Beispielanwendungen und –Clients bereitgestellt. Die ersten Schritte mit dem SDK sind

  1. Herunterladen und Installieren des AppStream SDK.
  2. Kompilieren des Beispiel-Clients
  3. Kompilieren der Beispiel-Anwendung
  4. Verpacken der Serveranwendung und Upload nach S3
  5. Hinzufügen der Anwendung zu AppStream
  6. Deployment des Beispiel-Entitlement Services
  7. Starten des Client und Verbindung zur Anwendung

Gruß,
Steffen