<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AppStream &#8211; Blog of Kliment Andreev &#8211; A place so I won&#039;t forget things</title>
	<atom:link href="https://blog.andreev.it/tag/appstream/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.andreev.it</link>
	<description></description>
	<lastBuildDate>Sun, 01 Nov 2020 15:41:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>AWS: AppStream &#8211; Get Started</title>
		<link>https://blog.andreev.it/2019/01/143-aws-appstream-get-started/</link>
					<comments>https://blog.andreev.it/2019/01/143-aws-appstream-get-started/#respond</comments>
		
		<dc:creator><![CDATA[Kliment Andreev]]></dc:creator>
		<pubDate>Sun, 20 Jan 2019 12:46:21 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[AppStream]]></category>
		<category><![CDATA[howto]]></category>
		<guid isPermaLink="false">https://blog.andreev.it/?p=4279</guid>

					<description><![CDATA[In this post I&#8217;ll explain how to get started with AWS AppStream service. AppStream&#8230;]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>In this post I&#8217;ll explain how to get started with AWS AppStream service. AppStream is managed application streaming service. It&#8217;s like Citrix XenApp but much simplified. There are 4 steps that you have to complete to get started. First, you have to create the image, then create the fleet, the stack and assign the users once you publish your application. In my example, I&#8217;ll publish Visual Studio Code editor. You can pretty much publish anything that runs on Windows 2012R2. If you have an application that&#8217;s heavy on graphics, e.g. some photo editing or CAD app, you can publish that too if you choose a base image that supports heavy graphics lifting.</p>
<h1>Create an image</h1>
<p>From the AWS console go to the AppStream service. If you see the getting started screen, skip it. Your console should look like this.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-01.jpg"><img fetchpriority="high" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-01.jpg" alt="" width="439" height="386" class="aligncenter size-full wp-image-8311" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-01.jpg 439w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-01-300x264.jpg 300w" sizes="(max-width: 439px) 100vw, 439px" /></a><br />
Click on the <strong>Images </strong>on the left and then the <strong>Image Builder</strong> tab.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-02.jpg"><img decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-02.jpg" alt="" width="276" height="276" class="aligncenter size-full wp-image-8312" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-02.jpg 276w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-02-150x150.jpg 150w" sizes="(max-width: 276px) 100vw, 276px" /></a><br />
Then click on <strong>Launch Image Builder</strong> button.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-03.jpg"><img decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-03.jpg" alt="" width="675" height="462" class="aligncenter size-full wp-image-8313" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-03.jpg 675w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-03-300x205.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-03-585x400.jpg 585w" sizes="(max-width: 675px) 100vw, 675px" /></a><br />
What you see here is a list of available templates for the images that you can use. They are all based on Windows 2012R2, so make sure your application is compatible for this OS. If you click on the <strong>Instance Family</strong> filter drop-box, you&#8217;ll see different types of template images, e.g. for general use, for high CPU use, for graphical use&#8230;In our case, we&#8217;ll choose the <strong>General Purpose</strong> image. You&#8217;ll probably see two or more template images. The date may vary as AWS deploys newer and updated template images, so pick up the latest and click <strong>Next </strong>at the bottom right.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-04.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-04.jpg" alt="" width="659" height="464" class="aligncenter size-full wp-image-8314" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-04.jpg 659w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-04-300x211.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-04-585x412.jpg 585w" sizes="(max-width: 659px) 100vw, 659px" /></a><br />
Enter the name of the image, the display name and choose the type of the image. Mind that the type of the image you choose here has nothing to do with the running image that will be used later for the end user. Right now you are specifying the resources for the image that you are creating and using. Once you create the image, you can choose the instance type later for the users. But, it&#8217;s advisable to choose the same type of image when creating the image and the fleet. Once you enter the name, the display name and the instance type, click <strong>Next </strong>on the bottom right.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-05.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-05.jpg" alt="" width="851" height="454" class="aligncenter size-full wp-image-8315" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-05.jpg 851w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-05-300x160.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-05-768x410.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-05-585x312.jpg 585w" sizes="(max-width: 851px) 100vw, 851px" /></a><br />
In the next screen, make sure that you check the first check mark so the template has an Internet access, so we can download the application. Choose the VPC, the subnet and the security group that you want to assign to the image. Don&#8217;t worry about any ports for RDP. Even if you choose the default group, you can still test the image. You won&#8217;t be using RDP to connect. E.g., the security group is used if you want to transfer any files from other instances. In our case, we won&#8217;t be doing any of that.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-06.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-06.jpg" alt="" width="851" height="454" class="aligncenter size-full wp-image-8316" /></a><br />
At the bottom of the screen, there is an option to join the instances to your AD in case you want to do that. Click <strong>Review </strong>after you are done and if everything looks OK, click <strong>Launch</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-07.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-07.jpg" alt="" width="1040" height="459" class="aligncenter size-full wp-image-8354" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-07.jpg 1040w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-07-300x132.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-07-1024x452.jpg 1024w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-07-768x339.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-07-585x258.jpg 585w" sizes="(max-width: 1040px) 100vw, 1040px" /></a><br />
Once you click <strong>Launch</strong>, <em>it takes about 10 mins to create the image</em> from your template. You can see the status of the image under <strong>Image Builder</strong> tab.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-08.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-08.jpg" alt="" width="1130" height="213" class="aligncenter size-full wp-image-8355" /></a><br />
When the status changes from <strong>Pending </strong>to <strong>Running</strong>, you are good to go with the testing.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-09.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-09.jpg" alt="" width="1135" height="252" class="aligncenter size-full wp-image-8356" /></a><br />
On the same screen, select the image that you just created and click the <strong>Connect </strong>button. Make sure you allow pop-ups for this page. In Chrome, the pop-up was blocked when I was testing.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-10.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-10.jpg" alt="" width="549" height="235" class="aligncenter size-full wp-image-8357" /></a><br />
This is what you&#8217;ll see. Click on <strong>Administrator</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-11.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-11.jpg" alt="" width="595" height="409" class="aligncenter size-full wp-image-8362" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-11.jpg 595w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-11-300x206.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-11-585x402.jpg 585w" sizes="(max-width: 595px) 100vw, 595px" /></a>You&#8217;ll see the desktop of your image.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-12.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-12.jpg" alt="" width="1345" height="628" class="aligncenter size-full wp-image-8363" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-12.jpg 1345w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-12-300x140.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-12-1024x478.jpg 1024w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-12-768x359.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-12-1170x546.jpg 1170w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-12-585x273.jpg 585w" sizes="(max-width: 1345px) 100vw, 1345px" /></a><br />
Launch Firefox and go to https://code.visualstudio.com/download. Ignore any warning that Firefox is out of date or that&#8217;s not a default browser. Just download Visual Studio Code (64-bit System installer) and install it. Do not install the User Installer. CLose any windows that pop-up and close Visual Studio Code if it starts.<br />
On the desktop you&#8217;ll notice an icon named <strong>Image Assistant</strong>. Double-click to run it. Click <strong>Add App</strong>.<br />
Browse to <strong>C:\Program Files\Microsoft VS Code</strong> and select <strong>Code.exe</strong>. Click <strong>Open</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-13.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-13.jpg" alt="" width="688" height="464" class="aligncenter size-full wp-image-8364" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-13.jpg 688w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-13-300x202.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-13-585x395.jpg 585w" sizes="(max-width: 688px) 100vw, 688px" /></a><br />
Fill out the <strong>App Launch Settings</strong> dialog box and click <strong>Save</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-14.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-14.jpg" alt="" width="635" height="394" class="aligncenter size-full wp-image-8365" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-14.jpg 635w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-14-300x186.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-14-585x363.jpg 585w" sizes="(max-width: 635px) 100vw, 635px" /></a><br />
Click <strong>Next</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-15.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-15.jpg" alt="" width="881" height="521" class="aligncenter size-full wp-image-8366" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-15.jpg 881w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-15-300x177.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-15-768x454.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-15-585x346.jpg 585w" sizes="(max-width: 881px) 100vw, 881px" /></a><br />
Click <strong>Switch User</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-16.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-16.jpg" alt="" width="877" height="517" class="aligncenter size-full wp-image-8367" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-16.jpg 877w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-16-300x177.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-16-768x453.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-16-585x345.jpg 585w" sizes="(max-width: 877px) 100vw, 877px" /></a><br />
Click <strong>Template User</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-17.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-17.jpg" alt="" width="589" height="398" class="aligncenter size-full wp-image-8368" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-17.jpg 589w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-17-300x203.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-17-585x395.jpg 585w" sizes="(max-width: 589px) 100vw, 589px" /></a><br />
The idea is to test the application as the template user. Double-click the <strong>Image Assistant</strong> and then click on Visual Studio Code.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-18.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-18.jpg" alt="" width="894" height="501" class="aligncenter size-full wp-image-8369" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-18.jpg 894w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-18-300x168.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-18-768x430.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-18-585x328.jpg 585w" sizes="(max-width: 894px) 100vw, 894px" /></a><br />
Once the application opens up, make any changes in the settings of the application, close any pop-ups and close the application. Again, click on <strong>Switch User</strong> and then click <strong>Administrator</strong>. Advance to the next menu with <strong>Next </strong>and <strong>Switch User</strong> again, but this time as the <strong>Test User</strong>. Once again, close any pop-ups when you start the application and the close the application.<br />
NOTE: Do not star the application from the start menu. Always use the <strong>Image Assistant</strong> to start and test the application. Follow the prompts on the screen and fill out the form on the fifth step (<strong>Configure</strong>).<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-19.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-19.jpg" alt="" width="638" height="431" class="aligncenter size-full wp-image-8370" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-19.jpg 638w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-19-300x203.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-19-585x395.jpg 585w" sizes="(max-width: 638px) 100vw, 638px" /></a><br />
Finally, click on <strong>Disconnect and Create Image</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-20.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-20.jpg" alt="" width="631" height="424" class="aligncenter size-full wp-image-8371" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-20.jpg 631w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-20-300x202.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-20-585x393.jpg 585w" sizes="(max-width: 631px) 100vw, 631px" /></a><br />
You&#8217;ll be disconnected from the image session, so in AWS Console go to the other tab <strong>Image Registry</strong>. You&#8217;ll see your image in pending state. <em>Wait for about 20 minutes</em>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-21.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-21.jpg" alt="" width="1046" height="315" class="aligncenter size-full wp-image-8375" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-21.jpg 1046w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-21-300x90.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-21-1024x308.jpg 1024w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-21-768x231.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-21-585x176.jpg 585w" sizes="(max-width: 1046px) 100vw, 1046px" /></a><br />
Once the status says <strong>Available</strong>, you are done with the first step.</p>
<h1>Create a fleet</h1>
<p>In AWS Console, click on <strong>Fleets </strong>on the left and then click <strong>Create Fleet</strong>. A fleet is where you specify the resources that will be used.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-22.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-22.jpg" alt="" width="443" height="265" class="aligncenter size-full wp-image-8376" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-22.jpg 443w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-22-300x179.jpg 300w" sizes="(max-width: 443px) 100vw, 443px" /></a><br />
Fill out the fleet details and click <strong>Next</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-23.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-23.jpg" alt="" width="1050" height="440" class="aligncenter size-full wp-image-8377" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-23.jpg 1050w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-23-300x126.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-23-1024x429.jpg 1024w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-23-768x322.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-23-585x245.jpg 585w" sizes="(max-width: 1050px) 100vw, 1050px" /></a><br />
Choose your image and click <strong>Next</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-24.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-24.jpg" alt="" width="692" height="365" class="aligncenter size-full wp-image-8378" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-24.jpg 692w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-24-300x158.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-24-585x309.jpg 585w" sizes="(max-width: 692px) 100vw, 692px" /></a><br />
Now, you have to configure the fleet. As you can see you can choose the types of the instances that will be used for your application. I am using General Purpose instance with 2 CPUs and 4GB RAM.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-25.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-25.jpg" alt="" width="1038" height="360" class="aligncenter size-full wp-image-8379" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-25.jpg 1038w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-25-300x104.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-25-1024x355.jpg 1024w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-25-768x266.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-25-585x203.jpg 585w" sizes="(max-width: 1038px) 100vw, 1038px" /></a><br />
The fleet type in my case is <strong>On-Demand</strong>. This means that the servers will be running whenever a user initiates a session. It takes 2-3 minutes from the moment you initiate a connection to the moment that you&#8217;ll get your application on the screen. But it&#8217;s much cheaper than the <strong>Always-On</strong> option, which means the application is instantly available because the servers are on all of the time.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-26.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-26.jpg" alt="" width="731" height="286" class="aligncenter size-full wp-image-8380" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-26.jpg 731w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-26-300x117.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-26-585x229.jpg 585w" sizes="(max-width: 731px) 100vw, 731px" /></a><br />
You can leave the<strong> User session details</strong> or modify the settings to suit your needs.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-27.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-27.jpg" alt="" width="779" height="236" class="aligncenter size-full wp-image-8381" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-27.jpg 779w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-27-300x91.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-27-768x233.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-27-585x177.jpg 585w" sizes="(max-width: 779px) 100vw, 779px" /></a><br />
Choose the fleet size. For each user a server is needed. I&#8217;ll choose maximum of 2 servers.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-28.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-28.jpg" alt="" width="717" height="312" class="aligncenter size-full wp-image-8382" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-28.jpg 717w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-28-300x131.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-28-585x255.jpg 585w" sizes="(max-width: 717px) 100vw, 717px" /></a><br />
Leave the <strong>Scaling policy</strong> as-is. Click <strong>Next</strong>.<br />
Check if you want Internet access or not and assign a VPC and two subnets. There is no need to choose any security groups as long as your app is not interacting with some other EC2 instances. AppStream is not using RDP so there is no need for that port to be opened. Click <strong>Next </strong>and if everything is OK, click <strong>Create</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-29.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-29.jpg" alt="" width="842" height="453" class="aligncenter size-full wp-image-8383" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-29.jpg 842w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-29-300x161.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-29-768x413.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-29-585x315.jpg 585w" sizes="(max-width: 842px) 100vw, 842px" /></a><br />
<em>It takes another 10 minutes to create the fleet.</em> The status will change from <strong>Starting </strong>to <strong>Running</strong>. </p>
<h1>Create a stack</h1>
<p>The third step is to create the stack. The stack deals with associating the streaming URL, users and the fleet.<br />
In the AWS console click <strong>Stacks </strong>on the left and then click the <strong>Create Stack</strong> button. Fill out the info needed for the stack.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-30.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-30.jpg" alt="" width="802" height="369" class="aligncenter size-full wp-image-8384" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-30.jpg 802w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-30-300x138.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-30-768x353.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-30-585x269.jpg 585w" sizes="(max-width: 802px) 100vw, 802px" /></a><br />
Choose the fleet that you&#8217;ve created and click <strong>Next</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-31.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-31.jpg" alt="" width="849" height="355" class="aligncenter size-full wp-image-8386" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-31.jpg 849w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-31-300x125.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-31-768x321.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-31-585x245.jpg 585w" sizes="(max-width: 849px) 100vw, 849px" /></a><br />
In the next step, choose where to save files from Visual Studio Code. By default, they&#8217;ll be saved in S3. Mind that you don&#8217;t have access to the underlying servers once the app starts streaming. You can use Google Drive or OneDrive.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-32.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-32.jpg" alt="" width="1042" height="371" class="aligncenter size-full wp-image-8387" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-32.jpg 1042w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-32-300x107.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-32-1024x365.jpg 1024w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-32-768x273.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-32-585x208.jpg 585w" sizes="(max-width: 1042px) 100vw, 1042px" /></a><br />
You can leave the User settings as defaults or change them if you want. Click <strong>Review </strong>and then <strong>Create</strong>. Select the stack and from the <strong>Actions</strong>, choose <strong>Create Streaming URL</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-33.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-33.jpg" alt="" width="470" height="344" class="aligncenter size-full wp-image-8388" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-33.jpg 470w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-33-300x220.jpg 300w" sizes="(max-width: 470px) 100vw, 470px" /></a><br />
Type some user for the test and click <strong>Get URL</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-34.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-34.jpg" alt="" width="810" height="415" class="aligncenter size-full wp-image-8389" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-34.jpg 810w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-34-300x154.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-34-768x393.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-34-585x300.jpg 585w" sizes="(max-width: 810px) 100vw, 810px" /></a><br />
Copy the link and launch it in the browser. You&#8217;ll see your application published. Click on the icon to start streaming. It might take some time to provision the servers. This is because we choose <strong>On-Demand</strong> instead of <strong>Always-On</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-35.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-35.jpg" alt="" width="981" height="488" class="aligncenter size-full wp-image-8390" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-35.jpg 981w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-35-300x149.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-35-768x382.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-35-585x291.jpg 585w" sizes="(max-width: 981px) 100vw, 981px" /></a><br />
And the app starts. Close the pop-ups.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-36.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-36.jpg" alt="" width="1197" height="599" class="aligncenter size-full wp-image-8391" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-36.jpg 1197w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-36-300x150.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-36-1024x512.jpg 1024w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-36-768x384.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-36-1170x585.jpg 1170w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-36-585x293.jpg 585w" sizes="(max-width: 1197px) 100vw, 1197px" /></a><br />
Now, the link that you have in your browser will last for 30 mins. After that the URL won&#8217;t be available. Max you can go with this approach is 7 days. But, what if you need the URL to be accessible for more than 7 days. In that case you have to assign permanent users to the stack.</p>
<h1>Create users</h1>
<p>On the left side in the console, click <strong>User Pool</strong> and then <strong>Create User</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-37.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-37.jpg" alt="" width="614" height="267" class="aligncenter size-full wp-image-8392" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-37.jpg 614w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-37-300x130.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-37-585x254.jpg 585w" sizes="(max-width: 614px) 100vw, 614px" /></a><br />
Create the user specifying a valid e-mail.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-38.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-38.jpg" alt="" width="815" height="422" class="aligncenter size-full wp-image-8393" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-38.jpg 815w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-38-300x155.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-38-768x398.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-38-585x303.jpg 585w" sizes="(max-width: 815px) 100vw, 815px" /></a><br />
Select the user and click on <strong>Assign Stack</strong>. Make sure that the check mark is checked and then click <strong>Assign Stack</strong>.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-39.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-39.jpg" alt="" width="315" height="138" class="aligncenter size-full wp-image-8394" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-39.jpg 315w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-39-300x131.jpg 300w" sizes="(max-width: 315px) 100vw, 315px" /></a><br />
You&#8217;ll get two e-mails. Make sure you keep them. That&#8217;s where your username, password and URL will be.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-40.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-40.jpg" alt="" width="952" height="73" class="aligncenter size-full wp-image-8395" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-40.jpg 952w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-40-300x23.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-40-768x59.jpg 768w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-40-585x45.jpg 585w" sizes="(max-width: 952px) 100vw, 952px" /></a><br />
Once you log in, you&#8217;ll be asked to change the initial password. And once you do that, you&#8217;ll see your app in the browser.<br />
<a href="https://blog.andreev.it/wp-content/uploads/2019/01/P120-41.jpg"><img loading="lazy" decoding="async" src="https://blog.andreev.it/wp-content/uploads/2019/01/P120-41.jpg" alt="" width="713" height="502" class="aligncenter size-full wp-image-8396" srcset="https://blog.andreev.it/wp-content/uploads/2019/01/P120-41.jpg 713w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-41-300x211.jpg 300w, https://blog.andreev.it/wp-content/uploads/2019/01/P120-41-585x412.jpg 585w" sizes="(max-width: 713px) 100vw, 713px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.andreev.it/2019/01/143-aws-appstream-get-started/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
