Desktop and Application Streaming

Streamline application onboarding with applications manager for Amazon AppStream 2.0

Amazon AppStream 2.0 applications manager is a feature that streamlines the process of creating an app block. With applications manager, you create and connect to an app block builder instance and utilize the new application builder assistant to monitor your application installation. This new feature expands application compatibility with elastic fleets as well as reduces manual administrative steps required to create an app block.

In 2021, Amazon AppStream 2.0 introduced elastic fleets, a serverless, AWS-managed fleet type that lets you stream applications to your end users. With elastic fleets, you do not have to predict usage, manage auto scaling policies, or manage an image. Elastic fleets utilize app blocks, a portable application package that contains the application files and a setup script. At the time of session provisioning, the application is mounted to your fleet instances and launched for the user.

This new packaging method increases application compatibility by recording the application’s files and registry keys automatically. Before applications manager, applications that could not be redirected to an alternative folder or installed their files into multiple locations were difficult to package into an app block. Additionally, the manual app block creation process does not record the registry keys an application installer put in place. These limitations reduced application compatibility to those that could be made completely portable.

In addition to increasing compatibility, applications manager reduces administrative effort when creating app blocks. As part of the installation recording, the service automatically bundles all the files and registry keys into a virtual hard disk file. It then uploads the disk to an Amazon Simple Storage (S3) bucket of your choice. Because the app block is managed by the service, there is no need for you to create a setup script. This further reduces the administrative effort required to prepare an application for your elastic fleets.

Recommended Best Practices

When using applications manager to package your applications, there are several recommended best practices to follow when creating app blocks. App blocks are copied locally to fleet instances from S3 and mounted before a user connects to your fleet. To minimize the logon time and maximize the efficiency of your elastic fleets, it is important to make your app blocks as small as possible.

Before recording

You should prepare for the application record process before launching the app block builder assistant from the desktop of the app block builder instance. Once the app block builder instance has launched, you connect as a local administrator. Before you do anything else, download locally all the installers and application components that are required for your application. If your application has additional patches and updates, ensure those are copied locally. Once the application assistant is monitoring, everything is recorded, including application downloads and file copies.

Many applications have dependencies on runtime libraries such as specific versions of Visual C++ or Java, which are not included on the app block builder instance. The same libraries and frameworks you find on the app builder are available in the elastic fleet instances where the app blocks run. If your software requires additional libraries, install them during the application record process.

Before choosing the Start recording button in the app block builder assistant, ensure that all programs and windows are closed. Running applications often create new files and registry keys or modify the attributes of existing ones. These actions will then be recorded by the monitoring process and included in your app block. This needlessly increase the size resulting in a slower launch for your users.

While recording

While monitoring the system for application installations, do not install Windows updates, run the Windows Firewall, or make any operating system level changes. The app block builder instances are designed to align with the configuration of the fleet instances that your users will be utilizing. Recording these types of system level changes will have no effect on the fleet instances and will needlessly inflate the size of your app blocks. However, ensure your application is fully patched and up-to-date while recording. As once an app block is created, you will not be able to open it again on the app block builder to install additional updates.

Another recommendation when creating an app block is to only install the features of the application that are required by your users. Application installers often provide the choice to install various additional features, language packs, or add-ons. By only selecting the options required by your users, you will reduce the size of and the time to load the application.

Once the software installation is complete, leave the installation recorder running and launch the application. This allows the software to run through its first launch initialization routine before deploying it to your users. Accept license agreements, enter any serial numbers, and respond to registration requests the software displays on first launch. The record process captures settings that are stored outside of the user’s profile. Additionally, you can set any default system level settings within the application that you want configured. At the time of writing, user level registry keys and values are not recorded by the app builder assistant. These types of settings can be configured via session scripts that run automatically for users when their session starts. Be sure to close the software completely prior to choosing Stop recording.

After recording

The app block builder assistant is configured to automatically exclude certain user specific locations from recording. However, extraneous files will invariably be recorded by the monitoring process. For example, some applications place a copy of their installer into their program folder or elsewhere on the file system. This is done to support repairs or uninstalls of the software in the future. However, this functionality is not needed when using app blocks and that installer should be removed to reduce the overall file size.

Once you have completed your application installation, you are presented with a Review and create screen. This is a good place to manually review the recorded content and remove anything that was unnecessarily recorded. Under VHD Mount Path is a link to the temporary location where the files recorded while monitoring are located. Select that path to open it within Windows File Explorer. Inside that folder will be a ‘Vol’ folder, which contains the folder and file paths for the recorded application. Browse through these folders and remove anything that was recorded inside the app block that is not required by the application.

Conclusion

Applications manager for AppStream 2.0 streamlines the process of creating app blocks for elastic fleets. With the new app block builder and application builder assistant, application file and registry keys are automatically recorded and included in your app blocks. This increases application compatibility with app blocks, while at the same time simplifies the administrative overhead required to create one.

To learn more about using Amazon AppStream 2.0 elastic fleets, see the following articles:

Justin Grego is a Senior End User Computing Specialist Solutions Architect. As part of the EUC Service Aligned SA Team, he helps enable both customers and fellow SAs get up to speed on and be successful with new AWS EUC features and services.