
Introduction
In today’s fast-paced digital world, organizations require flexible and secure computing environments for their workforce. Virtual Desktop Infrastructure (VDI) provides employees with remote access to a centralized desktop environment, ensuring enhanced security, simplified IT management, and significant cost savings.
Traditionally, businesses have relied on on-premises VDI solutions like VMware Horizon, a robust platform that enabled organizations to deploy, manage, and scale virtual desktops securely. However, managing on-premises infrastructure comes with challenges such as high capital expenditures, hardware maintenance, and scalability limitations. Notably, VMware recently sold its flagship VDI platform, VMware Horizon, to KKR’s newly formed company, Omnissa—the rebranded EUC division—highlighting a strategic industry shift.
Moving to a cloud-based VDI solution, such as AWS WorkSpaces, eliminates many of these constraints. AWS WorkSpaces is a fully managed, cloud-based virtual desktop service that offers the flexibility to scale resources as needed, reduce IT overhead, and provide secure remote access to applications and data. With AWS WorkSpaces, businesses can leverage the power of the cloud to enhance productivity, lower costs, and simplify virtual desktop deployment.
Furthermore, managing AWS WorkSpaces becomes even more efficient when integrated with AWS Systems Manager. Systems Manager provides a unified interface to monitor, patch, and automate routine administrative tasks across your virtual desktops. With features like Run Command and Automation, IT teams can remotely deploy critical updates, execute troubleshooting commands in real time, and maintain compliance—all while reducing manual overhead. This streamlined management approach not only enhances operational efficiency but also reinforces a robust security posture. For more details on AWS Systems Manager’s capabilities, please refer to the AWS Systems Manager documentation.
Using Terraform, we can automate the deployment of AWS WorkSpaces to streamline virtual desktop provisioning. In this example, we will be using the eu-west-2 region (London AZ). This guide will walk you through setting up AWS WorkSpaces using Terraform with all the necessary scripts.
Prerequisites
Before proceeding, ensure you have:
- An AWS account with administrator privileges.
- Terraform installed on your local machine.
- AWS CLI configured with appropriate IAM credentials.
Step 1: Setting Up Terraform
First, create a working directory for your Terraform project:
mkdir aws-workspaces-terraform && cd aws-workspaces-terraform
Create new Terraform configuration files:
touch main.tf variables.tf outputs.tf providers.tf
Step 2: Configure AWS Provider
In providers.tf
, configure the AWS provider for the eu-west-2 region:
Edit provider "aws" {
region = "eu-west-2" # London AZ
}
Step 3: Define Variables
Create variables.tf
to store required input parameters:
Editvariable "region" {
description = "AWS region"
default = "eu-west-2"
}
variable "workspace_directory_id" {
description = "Directory ID for WorkSpaces"
type = string
}
variable "workspace_user_name" {
description = "User name for the WorkSpace"
type = string
}
Step 4: Configure AWS Directory Service
Define the directory in main.tf
:
Edit resource "aws_workspaces_directory" "example" {
directory_id = var.workspace_directory_id
subnet_ids = ["subnet-xxxxxxxx", "subnet-yyyyyyyy"] # Replace with actual subnet IDs in eu-west-2
}
Step 5: Create AWS WorkSpaces
Define WorkSpace instances in main.tf
:
Edit resource "aws_workspaces_workspace" "example" {
directory_id = aws_workspaces_directory.example.directory_id
user_name = var.workspace_user_name
bundle_id = "wsb-xxxxxxxxx" # Replace with a valid bundle ID
root_volume_encryption_enabled = true
user_volume_encryption_enabled = true
}
Step 6: Define Outputs
Create outputs.tf
to display key details after deployment:
Edit output "workspace_id" {
value = aws_workspaces_workspace.example.id
}
Step 7: Initialize and Apply Terraform
Run the following commands to deploy AWS WorkSpaces:
Edit terraform init
terraform plan
terraform apply -auto-approve
Step 8: Verify Deployment
Once Terraform completes, check the AWS WorkSpaces console or use the CLI:
Edit aws workspaces describe-workspaces
Conclusion
By following these steps, you can automate the deployment of AWS WorkSpaces using Terraform in the eu-west-2 region (London AZ). This method ensures consistency and simplifies virtual desktop provisioning in AWS, while also taking advantage of the enhanced management capabilities provided by AWS Systems Manager.