Amazon AppStream (GA) Apps Run on AWS and Stream to Devices around the World
Amazon has made available the AppStream service which enables developers to run an application on AWS, then stream it to various devices.
After four months of limited preview introduced in November 2013, Amazon has announced the availability of their AppStream service for all developers. When using AppStream, an application can run in Amazon’s cloud having its output –video, audio, data- being streamed to thin client applications running on various devices across the Internet. The client app has the responsibility to receive and display the stream of information and to capture user’s input to send it back to the server. This approach has a number of benefits:
- the application is developed and tested for a single platform
- being simple, client apps can be easily developed for various platforms
- the application can run on powerful servers, not being constrained by device limitations
- updating the application usually means updating the server part, which can be done without affecting the user in any way
- the user does not have to download the app, which helps when dealing with relatively large apps
Existing applications can be enhanced to support streaming by using the AppStream SDK. Currently, AppStream supports only Windows applications, however, client apps can be deployed to all major platforms: Android, iOS, OS X, Windows, and Kindle/FireOS. Amazon also provides a Java SDK that wraps around a RESTful API used to interact with the AppStream service for authentication, authorization, handling errors, etc.. An AppStream app can access many of Amazon’s services –S3, RDS, NoSQL, SQS, SNS, etc. - within the limits of the same region.
To use streaming on AWS, an application must be able to run on Windows Server 2008 or later. 32-bit apps are allowed through WoW64 extensions. .NET apps are also allowed. The application must be able to stream using the YUV 420 video format. Amazon provides EC2 G2 instance types for such applications, a 3D graphics instance that includes: 10 EC2 compute units with 8 virtual cores at 2.5 GHz, 15 GB RAM, 50 GB storage, and 1 NVIDIA GK104 GPU with 4GB RAM.
There is a catch, however. Client devices must have good Internet connection all the time, Amazon recommending a 3Mbps connection for streaming 30 frames of 720p per sec. If an application is to work offline, the client app needs to handle the respective functionality locally.
Amazon has also announced a number of service improvements introduced since November:
- Automated Version Resolution - AppStream now detects the SDK version that was used to create a client and launches compatible backend services automatically. This allows AppStream and the SDK to evolve without the need for a client upgrade.
- Mac Client Support - There's now an OSX SDK to enable the development of clients that run on the Mac.
- Client SDK Improvements - The client SDKs have been improved and now include support for game controllers. They also provided an enhanced input mapping model for keyboard and touch events.
- Simplified Getting-Started Experience - We have improved the documentation and the packaging model so that you can get your first application up and running quickly..
Amazon touts AppStream for letting developers create graphical intensive applications with lightweight clients that are only 5MB in size: games, CAD, video rendering. Hybrid configurations are possible, running part of the application on the server and part on the client. CCP’s Eve Online is an example of a massively multiplayer game that runs on Amazon using AppStream.