Citrix Studio AWS Instance Types Missing

AWS is constantly refreshing the EC2 instance types that are available for us to consume. This is great news, unless you are a Citrix customer who would like to leverage these new instance types. These new instance types are sometimes cheaper, and offer more bang for your buck - literally.

So what do I mean by that. Citrix hardcodes the available instance types you can deploy via Citrix Studio into an XML file called InstanceTypes.xml, which is located on each of your delivery controllers (located here %ProgramFiles%\Common Files\Citrix\HCLPlugins\Hypervisor<vx.x.x.x>\AWS\AWSConfiguration\InstanceTypes.xml

This file is only as new as the version of Citrix that you are using. I assume that the version of the file that ships with 7.15 is different than the version that is shipping with the latest Current Release of Citrix. So, if you are running an older version of Citrix, you will need to break out your XML skills to update the file manually.

I always say, doing things manually is a suckers game, so I turned to github where I discovered a neat litle powershell script that was written by Ryan C Butler.

The script pulls down the main JSON file of all AWS instance types published by AWS, and outputs a handy little file called InstanceTypes.xml. Here is the important piece of the code.

$return = Invoke-RestMethod -Method Get -Uri "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json"

To make this baby run, simply download UpdateXDAWSXML.ps1 and InstanceTypes-template.xml and put them in a folder together.

Bring up an administrative powershell session, and browse to the location of the two files that you have downloaded.

image

To execute the script simply type in .\UpdateXDAWSXML.ps1 and hit enter. The process can take 4-5 minutes to run, as the initial JSON file is quite large (around 80MB). This is all you will see when the job is running.

image

When it is complete, you are dropped back to an interactive shell. To see the newly created InstanceType.xml, type ls and hit enter in the powershell window.

image

Now we have am XML file called InstanceTypes.xml, which should have all of the EC2 instance types. I know that the T3A instance types are pretty new, so if I look at the contents of the XML file, we should see the T3A (Ryzen) Instance Types

image