
This is the second part of my article on getting started with CloudXR with the Oculus Quest. Part 1 is an introduction to the technology, and about registering and applying for access to CloudXR and AWS. This second part is about the installation of CloudXR on AWS. Finally, part 3 is about the installation of CloudXR on the Oculus Quest.
You can find part 1 here, and part 3 here.
Set up CloudXR in AWS
This step assumes that you have completed the previous steps, and have been accepted into the CloudXR program and have your request for service limit increase granted by AWS.
AWS Marketplace
Go to developer.nvidia.com/nvidia-cloudxr-sdk-get-started and select that you agree to the terms (only if you do agree to them!). This will let you download the documentation, the code, and other resources.

At the bottom of the page you can find a notification about CloudXR being available in the AWS Marketplace. This makes the virtual machine setup very streamlined, so click Try now. This will bring you to the AWS Marketplace.
AWS Marketplace commonly charges for two things: the subscription to the software (in this case CloudXR from Nvidia) and the AWS infrastructure. In this case, Nvidia has made the software subscription free of charge, so you’ll only pay for the AWS infrastructure.

If you want to easily see the cost of running the virtual machine, now is a good time to do it, since this information won’t be as easily accessible later on. Scroll down a bit on the page and you’ll see the pricing information for different regions and configurations.
Click on Continue to subscribe in the upper right corner.
On the new page, read through the EULA and click Accept Terms. The registration process is now taking place, but it is quick. Update the page after a minute or two, and you should be able to click Continue to Configuration.
Create the Virtual Machine

You’ll now be presented with the first step of the configuration. You can ignore the pricing details to the right, since Nvidia bases this on their recommended virtual machine g4dn.4xlarge (16 CPU cores and 64 GB RAM), which is too powerful for most single person use cases. It also assumes that it will be running 24 hours per day, which is very wasteful if you plan on using it for small scale development or gaming.
Now there is a little bit of configuration to do
If you just created your AWS account, or have not modified the VPC or subnets, you don’t need to change anything about those. Otherwise, make sure you put your virtual machine in a public subnet.

Change the EC2 Instance Type to your preferred one. As previously mentioned, I recommend the g4dn.xlarge, which will cost around $0.7 USD per hour, depending on the region.
Click Create a New Security Group Based on Seller Settings. Here you will chose who can access the virtual machine — it’s recommended that you only let your own IP access it.

Enter the name and description of your security group, for example CloudXRSelect chose custom source for all the ports, and enter your external IP/32. 32 is the subnet mask, which specifies that it’s only this exact IP that should be allowed to access the virtual machine. You can find your external IP by going to a site like whatismyipaddress.com.
Click Save.

The last step is to create a key pair. This is required in order to log in to your virtual machine and install the required software. Click Create a key pair in EC2.
A new page will then open with the AWS management console, where you can create or import a new key pair. The fastest way set this up is to let AWS create a key pair for you. Click Create key pair.

Enter a name for your key pair and be sure to select the pem format, as this will be required to retrieve the password of the virtual machine later on. Click Create key pair, which will create the key pair and download the .pem file to your computer. You can then close this tab, and head back to the virtual machine configuration.

Click on the little update arrows in the Key Pair Settings section, and then select the key pair you just created.
Launch!
We’re now all set to launch the virtual machine, so click Launch!
If you get an error saying that “your request for accessing resources in this region is being validated”, just wait a few minutes until you’ve received an email from Amazon saying that “Your Request For Accessing AWS Resources Has Been Validated”, and then click Launch again.

Your virtual machine should now have been launched!
Getting the virtual machine details
The next step is to get the details of your newly launched virtual machine. Go to the EC2 console at console.aws.amazon.com/ec2, and click on Instances in the left column.

You should now see a list of your virtual machines (EC2 instances). If you have only launched one virtual machine, it is easy to identify which one is the CloudXR machine. If you have launched virtual machine previously, find the one with the most recent launch time, or with the name of the key pair or security group that you chose when configuring it (these values can be found as column in the list of virtual machines).

The virtual machine that you just created has a public IP assigned to it, but this might change when you restart it. In order to have a static IP you need to use what is called an elastic IP. Click on Elastic IPs in the left column, and then Allocate Elastic IP address. In the next page, keep the default settings and click Allocate. You will then be back at the elastic IPs page, and a new IP will be listed. This will be your virtual machine’s external IP. Write it down.

Select the newly created elastic IP and click Actions and then Associate Elastic IP address

For Instance, chose the virtual machine that you just created (if you just have one, it will be the only one in the list; if you have some from before, head back to the list of EC2 instances and see which ID your CloudXR instance has). For Private IP address, there will be only one IP in the list, so chose that. Then click Associate.

Head back to the list of EC2 instances (virtual machines) by clicking on Instances in the left column. Select the CloudXR virtual machine, and click Connect in the top right corner.

Click on RDP client. Then write down the User name, and click on Get password.

Now click Browse, and select the .pem file that you downloaded previously when you created a key pair for your virtual machine. The private key should then be displayed in the text box. Click Decrypt Password.

The password should then be displayed. Write this down.
Logging in to the remote desktop
We are almost done setting up CloudXR on your AWS virtual machine. The only thing remaining is some installation steps on the virtual machine itself.
Open up a new tab and go to https://[your virtual machine IP]:8443

You should be greeted with the login page for the remote desktop of your virtual machine. Enter the username and password that you retrieved in an earlier step of this guide, and click Login. This will take you to a Windows desktop. There is a file on the desktop called README. You can follow that, or just follow my steps below. All steps are down in the virtual machine remote desktop.
Install Steam and SteamVR
First head to store.steampowered.com/about and click on Install Steam. Open the steam installation file that was just downloaded, and go through the installation with all the default options. When you are greeted by the Steam login screen, click on Login to an existing account (or if you don’t have a Steam account yet, click on Create new account), and follow the steps until you are logged in.
The next step is to install SteamVR.
Head to store.steampowered.com/app/250820/SteamVR in the browser and click on Play Game, then Yes, Steam is installed, and finally Open Steam to allow the website to open Steam. Follow the installation steps with the default options and click Finish. While you are waiting for SteamVR to be installed, you can finish the remaining installation steps.
Install CloudXR

Open the folder on the desktop named CloudXR-SDK_[version]. At the time of writing, the version was 2.1, so the folder name was CloudXR-SDK_2.1. Open the subfolder Installer, and open the installer inside. Go with the default options (which is to install the server, not the client) and click Install. When it is done installing, click Close.
Set the firewall rules

Open the vrserverallow.bat file on the desktop to open the Windows firewall for connections to the CloudXR server. This just takes a couple of seconds. Then you can press any key to close the terminal window.
Start SteamVR

When SteamVR has finished installing, go back to Steam and you will see a little icon saying VR in the top right corner. Click this icon and SteamVR will install the last dependencies.
Enable SteamVR Autostart
By default, Steam will automatically start when you start your virtual machine, but SteamVR will not. It can be convenient to not have to log in and start SteamVR every time you restart your virtual machine, so let’s enable autostart.

In Steam, go to Library, find SteamVR, right click it, select Manage, and Add desktop shortcut.

Then copy the shortcut that was created on the desktop to C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup

If both Steam and SteamVR tries to automatically start, there might be some conflicts. So it can be good to tell Windows not to start Steam on boot. Click the start menu, type in Startup, and open Startup Apps. Then toggle Steam to off.
Your CloudXR virtual machine is now ready!
Next steps
This first and second parts of the series on cloud VR gaming has taken you through a series of steps in getting up and running with Nvidia CloudXR on AWS and Oculus Quest. Once you have been granted access by Nvidia and Amazon, and set up CloudXR on your AWS virtual machine, you can head to part 3 to finish the installation of CloudXR on the Oculus Quest.
Part 1, Applying for CloudXR and AWS
Part 2, Installing on AWS
Part 3, Installing on Oculus Quest