Skip to main content

Streamline Your Application Delivery with AWS AppStream 2.0: An Introduction

In recent years, there has been a trend among software vendors to shift their applications to the cloud. This means that rather than installing software on individual devices, users access the software and its associated data over the internet. There are several reasons why software vendors are shifting their applications to the cloud:

Previously known as Dynamics Navision, Business Central is a mid-market, all in one solution with built-in business integration, providing a single comprehensive solution to meet the needs of your growing business. Microsoft Dynamics 365 is an integrated ERP solution that automatically pulls systems and processes together to manage financial sales, services and operations. It also helps in connecting with multiple third-party applications like payroll, CRM, or other industry-specific systems. This management solution helps organizations streamline their processes including fixed assets, orders processing, inventory, human resources, sales & services, project management and manufacturing. In addition to simplifying management, Business Central solution helps users evaluate project performance. Power BI dashboards and charts provide actionable insights to make faster, informed decisions and the ability to accurately forecast the future of your business.

With Dynamics 365 Business Central revolutionizing the ways of doing businesses, team of application developers at Xgrid adapted this solution for managing multiple jobs and different tasks assignments to enhance the functionality of the construction application for a notable customer. The purpose of this app is to provide a central control to the manager while assigning tasks to the on-site team. It provides a full visibility of on-site tasks and helps in the better management of operations. The solution has a desktop version coupled with an iPad application, to lubricate field task management, resource allocation and bridge the communication gap between the off-field managers and on-site employees effectively.

What is AWS AppStream 2.0?

AWS AppStream is a fully managed, secure application streaming service that allows you to stream desktop applications from the cloud to any device running a web browser, without rewriting them. This means that you can run your desktop applications on a variety of devices, including laptops, tablets, and even smartphones, without having to install them.

Use Cases

Appstream is a versatile service that can be used for a variety of use cases. Here is a list of some of the most common use cases for AWS Appstream:

  1. Remote Workforce
  2. Bring Your Own Device (BYOD)
  3. High Performance Computing (HPC)
  4. Graphics-Intensive Applications
  5. Software Demos and Trials

Basic Components needed for an end to end Deployment

In order to stream your applications on Appstream, you need to use the following components of appstream:

  • Image Builder
  • Stack and Fleets

AWS AppStream Image Builder

AWS AppStream Image Builder is a fully managed service that makes it easy to create and maintain custom image versions of your applications. With AppStream Image Builder, you can create custom images that include your applications, custom settings, and any required dependencies.

AppStream Image Builder can help you automate the process of building and updating custom images, which can save time and effort compared to manually building and maintaining images. It helps ensure that the images are working correctly before you deploy them.

You can create an image builder using AWS CLI, console, or the AWS SDK. While calling the CreateImageBuilder API you need to provide the following:

  • Subnet ID
  • Security Group
  • Base Image

Subnet ID, and Security Group are for configuring the network of the image builder, and the base image is actually the operating system you want to use to build your application. AWS Appstream provides a wide variety of base images that you can use to build your applications.

Inside these base images AWS has all the necessary components pre-installed so that you only need to focus on adding the relevant components for your application to function. Monitoring, and patching services like SSM, and Cloudwatch already have their agents installed in the image builder instance. Furthermore, there is an Image-Assistant CLI present in the image builder that helps you build an image by walking you through guided instructions.

Stack and Fleets

Overview

AWS AppStream Stacks and Fleets allow you to stream desktop applications from the cloud to any device running a web browser, without rewriting them.

An AppStream Stack is a collection of resources that are required to run a specific application or set of applications. This can include the applications themselves, as well as any required dependencies, custom settings, and user data.

An AppStream Fleet is a group of streaming instances that are used to run and scale your applications. You can create multiple fleets in a single stack, and each fleet can be configured with different instance types, capacity settings, and other parameters to meet the needs of your applications.

Using AppStream Stacks and Fleets, you can easily scale your application usage up or down based on demand, and you can also customize the environment in which your applications are run to meet your specific needs. This can be particularly useful for businesses that experience spikes in usage at certain times of the year, as it allows them to quickly and easily accommodate the increase in demand without having to invest in additional hardware or infrastructure.

Fleet Types

There are 3 types of Fleet in AWS Appstream:

  • AlwaysOn
  • OnDemand
  • Elastic

The main difference between the fleet types is how the streaming instances are run, and managed. In AlwaysOn, the streaming session remains on regardless of the demand, whereas in OnDemand fleets are launched when the user starts streaming, and they are shut down when the streaming session ends. Elastic fleets are the ones that are managed by AWS, and you don’t need auto scaling policies to address changes in demand. However, you need to configure the maximum concurrency you expect when creating and updating the fleet, and ensure that you have sufficient streaming instance limits to meet your user demand.

Step By Step Process of using Appstream

1. Navigate to the Appstream console, and click on images from the menu on your left.

2. Select image builders, and click on launch an image builder.

3. In the image builder console, you need to select the OS on which you want to install your application, and package it as an image. In this example I am using a general purpose Windows server image: AppStream-WinServer2019-03-29-2023 (Public). Give the image builder an appropriate name, and for this example I am selecting a standard general purpose instance. While configuring the networking side select the VPC, and subnet IDs along with the security group. Now you have added all the relevant parameters, and it is time to launch the image builder.

4. Connect to the demo-builder, and install any application that you want to install on that builder. In my case I am installing Google Chrome from firefox, and I will package that in my image.

5. After installing your applications you need to open the Appstream Image Assistant, and then add the applications you want your users to stream.

When you select an application then you need to set application launch settings if you have any, otherwise you can leave it to default.

6. After adding the application you need to configure it, and for that you can follow the instructions given in this image

My use case is very simple so I don’t need to perform the above operations, and I can simply go to the next stage.

7. In the next stage you can test your applications to make sure they work as expected. Our use case does not require any testing so I will proceed to the next stage.

8. After the test stage you need to go to the optimize stage where you can optimize your apps to reduce their launch time. You need to simply press the Launch icon, and the image assistant will optimize the application for you.

9. After optimization you need to configure your image that is adding a name, description, and tags etc to your image.

10. Finally you need to click “Disconnect” and Create Image icon.

11. Navigate to the image-registry, and search for your image. You can use it as soon as it enters the Available state.

12. Now go to the fleet console, and create a fleet. For this example, I have created a general purpose, always-on fleet with default settings that will run the image that we have just created.

13. It takes about 10 minutes for the fleet to enter the Running state. During this time you can navigate to the stack console, and create a stack. For this example, I have created a stack using default settings.

14.  When the fleet enters the Running state you need to go to the stacks console, and associate your fleet to the stack that you have created.

15. Now you need to create a user in the user pool console, and assign that user to the stack that you have created. You will receive an email with login details, and a url to access Appstream’s streaming session.

16. Finally this is what a streaming session looks like

As you can see I have only one application, and that is google chrome in my session.

Using the steps above you can stream a simple application using appstream.

User Authentication in Appstream

AWS Appstream provides two forms of user authentication:

  • User Pools
  • SAML 2.0

Appstream user pools are a collection of users that have been assigned specific permissions, and roles within the streaming environment. User pools allow you to control access to resources and manage user authentication based on the permissions assigned to each user.

SAML 2.0 (Security Assertion Markup Language) is an authentication protocol used to securely exchange authentication and authorization information between two parties. SAML 2.0 is used to authenticate users with an identity provider (IdP) such as Active Directory. Once authenticated, users can securely access their streaming sessions without having to authenticate again.

AWS AppStream Security

AWS AppStream 2.0 provides a number of security features to help ensure the safety of your data and applications. These include:

  • Encryption of data in transit and at rest,
  • Authentication to control access to streaming resources,
  • Streaming URL authentication to access streaming sessions without authentication,
  • Streaming token authentication to authenticate users with a secure token generated by AppStream
  • Identity federation to authenticate users with an identity provider such as Active Directory.
  • Advanced security group configuration that allows you to control access to streaming resources by IP address and port.

Application and Storage Persistence in Appstream

AWS AppStream 2.0 offers two different types of application and storage persistence:

  • user-specific,
  • fleet-wide.

User-specific persistence stores data on a user’s device, allowing them to access their data even after they disconnect from the streaming session. Fleet-wide persistence stores data in an encrypted Amazon S3 bucket, allowing any user from the fleet to access the data stored in the bucket. Additionally, AppStream 2.0 allows you to configure an Amazon EFS file system, which can be used for persistent storage for applications running on your fleet.

Benefits of AWS AppStream

AWS AppStream offers several benefits for businesses, including simplified application delivery. With AWS AppStream, businesses can easily deliver applications to users without complex software installations. This cloud-based service allows for central hosting of applications and enables users to access them through any web browser.

In addition, AWS AppStream provides enhanced security for streaming applications. It uses a secure HTTPS connection for users to connect to applications, and strict security protocols protect sensitive data.

AWS AppStream is highly scalable and can accommodate hundreds or thousands of users depending on business size. It’s a flexible solution that can easily adapt to changing business needs.

Finally, AWS AppStream is a cost-effective solution that eliminates the need for hardware upgrades and software licenses. Businesses only pay for the resources they use, making it an efficient and economical solution for delivering applications.

Conclusion

AWS AppStream is a powerful solution for businesses looking to simplify remote application delivery and enhance security. It’s a cost-effective and scalable solution that can accommodate businesses of all sizes. For more information about this service,  infrastructure as code deployments or Xgrid’s other managed cloud services, contact us!

ABOUT THE AUTHOR(S)

AUTHOR(S)

Related Articles

Related Articles