AWS AppStream is a new Amazon service that streams Windows applications in the cloud, extending the OS to a variety...
of computers and mobile devices. Today, the most practical use cases for the service are providing brief game demos and longer-term support for high-value applications, like CAD and medical imaging. In the case of CAD applications, AppStream allows an engineer to make quick updates in the field from a tablet. In medical imaging applications, AWS AppStream makes it easier for multiple medical experts to collaborate remotely.
Start streaming the client application
The first consideration for AWS AppStream adoption lies in identifying the business and revenue model behind AppStream apps. Today, it costs 83 cents per hour to deploy these apps in the US East region. This might be an acceptable cost to provide gamers an instant demo of a new game, but it would not make sense for sustained game play in many cases. It may also be an acceptable cost for high-end CAD as a service offerings that are provisioned to allow engineers to make changes in the field on a low-end tablet.
The client application works in a dedicated AppStream app that runs locally on each device. The local app decodes audio and video sent from Amazon Web Services (AWS) and collects user input from a keyboard, mouse and touch screen. Users can configure the local app to gather additional input, like GPS data, using the AppStream software development kit. Client applications are available for iOS, Android, Chrome, Windows and Mac operating systems. The application must be able to run on Windows Server 2008 or later. If the application has other dependencies, such as the .NET framework, these need to be included as part of the application installer.
Bringing high-end performance to low-end devices
The underlying notion of desktop virtualization has been around for years. In this traditional model, a Windows desktop instance is provisioned in the cloud. This approach makes it easier to spin up and provide an entire Windows environment with the appropriate configurations and application collections. AppStream takes this to a more granular level by allowing IT to provision individual applications or collections. It also includes features for integration with custom clients, subscriptions, identity and storage.
By streaming applications, organizations can better distribute computational loads for CPU- and GPU-intensive applications. For example, applications like CAD, 3D modeling, video editing and medical imaging can move the heavy processing to the cloud. The client application can then render the results using the standard video decoder chips already common on tablets and phones. In essence, any application that can benefit from additional CPU, GPU, RAM or storage requirements can benefit from AppStream.
Understand network effects
An important consideration when moving Windows applications to the cloud is latency, which creates a perception of delay between user action and its effect on the application. This is less important for applications like CAD annotation that can tolerate 100-millisecond delays. But gaming experiences might suffer with delays as little as 20 milliseconds. Latency is affected by the physical distance a data packet has to travel to the cloud, the number of routers through which it has to pass and the amount of competing Internet traffic. Loses incurred by wireless networks can also exacerbate latency issues.
Another important consideration is that AppStream requires a live Internet connection. This could be a problem for mobile users outside the coverage areas of cell phone towers. However, it is possible to divide hosting duties between native resources and AppStream to take advantage of better processing. In these cases, users can continue to work when the Internet connection goes down, albeit with less performance. However, these hybrid apps require more development work for each supported platform.
AppStream requires a minimum of 3 megabytes per second (MBps) for streaming applications. This is probably not a big deal for individual users with a cable or DSL connection, but it is when dozens of workers are trying to simultaneously run AppStream applications. It could also quickly push mobile workers over their wireless network data plan allotments. Applications will continue to function at lower bit-rates -- down to 553 KBps -- and at lower quality.
Steps to getting started
AppStream supports an interactive deployment wizard that converts a Windows application installer into an AppStream instance. Initial application performance may appear slow during this process, as it relies on the legacy Windows Remote Desktop Protocol. Once the application is running in the cloud, it will use the native AWS AppStream STX protocol, which has been optimized to improve application response to latency.
Next, secure the AppStream application by setting up an entitlement service to authenticate and authorize users. To do this, compare users to subscribers in a database, use an external log-in service or authenticate all clients. The entitlement service sends the client a URL to connect to the live application.
AppStream data is lost when the client session ends. If data needs to be shared between AppStream apps or persist between client sessions, set up some form of persistent storage. The AppStream console includes features for integrating and preserving session data using Simple Storage Service, Relational Database Service or DynamoDB.
To track user experience and resource utilization, users can capture log data from AppStream sessions. This information can also be used to identify bottlenecks to application performance.
Get started with the AppStream Developer Guide
Amazon AppStream offers options for resource-intensive app development
Amazon's data flow PaaS: AppStream and Kinesis
Learn about using Amazon AppStream to stream resource-gobbling apps