

# Virtual desktops
<a name="virtual-desktops"></a>

The virtual desktop infrastructure (VDI) module allows users to create and manage Windows or Linux virtual desktops on AWS. Users can launch Amazon EC2 instances with their favorite tools and application pre-installed and configured.

**Supported operating systems**

RES currently supports launching virtual desktops using the following operating systems:
+ Amazon Linux 2 (x86 and ARM64) 
+ Amazon Linux 2023 (x86 and ARM64) 
+ RHEL 8 (x86), and 9 (x86)
+ Rocky Linux 9 (x86)
+ Ubuntu 22.04.03 (x86) 
+ Windows Server 2019, 2022 (x86) 
+ Windows 10, 11 (x86) 

**Note**  
Starting with release 2026.03, Amazon Linux 2 and RHEL 8 are no longer included as default software stacks. Custom software stacks with these operating systems can still be registered if required.

**Topics**
+ [Launch a new desktop](launch-desktop.md)
+ [Access your desktop](access-desktop.md)
+ [Control your desktop state](control-desktop-state.md)
+ [Modify a virtual desktop](modify-virtual-desktop.md)
+ [Retrieve session information](retrieve-session-information.md)
+ [Schedule virtual desktops](schedule-virtual-desktops.md)
+ [Virtual desktop infrastructure autostop](virtual-desktops-autostop.md)

# Launch a new desktop
<a name="launch-desktop"></a>

1. From the menu, choose **My Virtual Desktops**.

1. Choose **Launch New Virtual Desktop**.   
![\[Virtual desktops\]](http://docs.aws.amazon.com/res/latest/ug/images/res-virtualdesktops.png)

1. Enter the details for your new desktop.

1. Choose **Submit**. 

A new card with your desktop information appears instantly, and your desktop will be ready to use within 10 to 15 minutes. Startup time depends on the selected image. RES detects GPU instances and installs the relevant drivers.

# Access your desktop
<a name="access-desktop"></a>

To access a virtual desktop, choose the card for the desktop and connect using either the web or a DCV client.

------
#### [ Web connection ]

Accessing your desktop through the web browser is the easiest method of connection.
+ Choose **Connect**, or choose the thumbnail to access your desktop directly through your browser.   
![\[Access virtual desktop through browser\]](http://docs.aws.amazon.com/res/latest/ug/images/res-accessdesktopbrowser.jpg)

------
#### [ DCV connection ]

Accessing your desktop through a DCV client offers the best performance. To access via DCV:

1. Choose **DCV Session File **to download the `.dcv` file. You will need a DCV client installed on your system.   
![\[Virtual desktops\]](http://docs.aws.amazon.com/res/latest/ug/images/res-virtualdesktops.png)

1. For installation instructions, choose the **?** icon.   
![\[Access virtual desktop through DCV\]](http://docs.aws.amazon.com/res/latest/ug/images/res-accessdcvdesktop.jpg)

------

# Control your desktop state
<a name="control-desktop-state"></a>

To control your desktop's state:

1. Choose **Actions**.   
![\[Virtual desktops\]](http://docs.aws.amazon.com/res/latest/ug/images/res-virtualdesktops.png)

1. Choose **Virtual Desktop State**. You have four states to select from:
   + **Stop**

     Stopping a session does not cause data loss, and you can restart a stopped session at any time.
   + **Reboot**

     Reboots current session.
   + **Terminate**

     Permanently ends a session. Terminating a session may cause data loss if you are using ephemeral storage. Back up your data to the RES filesystem before terminating.
   + **Hibernate**

     Your desktop state is saved to disk. When you restart the desktop, your applications resume but any remote connections may be lost. Not all instances support hibernation, and the option is only available if it was enabled during instance creation. To verify if your instance supports this state, see [Hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). 

# Modify a virtual desktop
<a name="modify-virtual-desktop"></a>

You can update the hardware of your virtual desktop or change the session name.

1. Before making changes to the instance size, you must stop the session:

   1. Choose **Actions**.   
![\[Virtual desktops\]](http://docs.aws.amazon.com/res/latest/ug/images/res-virtualdesktops.png)

   1. Choose **Virtual Desktop State**. 

   1. Choose **Stop**. 
**Note**  
You cannot update the desktop size for hibernated sessions.

1. After you have confirmed the desktop has stopped, choose ** Actions** and then choose **Update Session**. 

1. Change the session name or choose a new desktop size.

1. Choose **Submit**.

1. After your instances update, restart your desktop:

   1. Choose **Actions**. 

   1. Choose **Virtual Desktop State**. 

   1. Choose **Start**. 

# Retrieve session information
<a name="retrieve-session-information"></a>

1. Choose **Actions**.   
![\[Virtual desktops\]](http://docs.aws.amazon.com/res/latest/ug/images/res-virtualdesktops.png)

1. Choose **Show Info**. 

# Schedule virtual desktops
<a name="schedule-virtual-desktops"></a>

By default, virtual desktops are scheduled to automatically stop on Saturdays and Sundays. Schedules on individual desktops can be adjusted using the Schedule windows accessed from the **Actions** menu on individual desktops as shown in the next section. To learn more about [Set default schedules across the entire environment](setting-default-schedules.md) see that section. Desktops can also stop if idle to help reduce costs. See [Virtual desktop infrastructure autostop](virtual-desktops-autostop.md) to learn more about VDI Autostop.

**Topics**
+ [Set individual desktop schedules](schedule-individual-desktops.md)
+ [Set default schedules across the entire environment](setting-default-schedules.md)
+ [Reset schedule to default](reset-schedule-to-default.md)

# Set individual desktop schedules
<a name="schedule-individual-desktops"></a>

1. Choose **Actions**.   
![\[Virtual desktops\]](http://docs.aws.amazon.com/res/latest/ug/images/res-virtualdesktops.png)

1. Choose **Schedule**. 

1. Set your schedule for each day.

1. Choose **Save**.   
![\[Schedule desktop sessions\]](http://docs.aws.amazon.com/res/latest/ug/images/res-sessionschedule.jpg)

# Set default schedules across the entire environment
<a name="setting-default-schedules"></a>

The default schedule can be updated in [DynamoDB ](https://console.aws.amazon.com/dynamodbv2):

1. Search for your environment's cluster settings table: `<env-name>.cluster-settings`.

1. Select **Explore Items**.

1. Under **Filters** enter the following two filters:

   Filter 1 
   + **Attribute name** = **key**
   + **Condition** = **Contains**
   + **Type** = **String**
   + **Value** = **vdc.dcv\$1session.schedule**

   Filter 2 
   + **Attribute name** = **key**
   + **Condition** = **Contains**
   + **Type** = **String**
   + **Value** = **type**  
![\[Filters display with option to add filters\]](http://docs.aws.amazon.com/res/latest/ug/images/vdi-default-schedule-filter-keys.PNG)

   This will display seven entries which represent the default schedule types for each day of the form `vdc.dcv_session.schedule.<day>.type`. The valid values are:
   + `NO_SCHEDULE`
   + `STOP_ALL_DAY`
   + `START_ALL_DAY`
   + `WORKING_HOURS`
   + `CUSTOM_SCHEDULE`

1. If `CUSTOM_SCHEDULE` is set, you must provide the customized start and stop times. To do this, use the following filter in the cluster-settings table:
   + **Attribute name** = **key**
   + **Condition** = **Contains**
   + **Type** = **String**
   + **Value** = **vdc.dcv\$1session.schedule**

1. Search for the item formatted as `vdc.dcv_session.schedule.<day>.start_up_time` and `vdc.dcv_session.schedule.<day>.shut_down_time` for the respective days you want to set your custom schedule. Inside the item, delete the Null entry and replace it with a String entry as follows:
   + **Attribute name** = **value**
   + **Value** = ***<The time>***
   + **Type** = **String**

   The time value must be formatted as XX:XX using a 24 hour clock. For example, 9am would be 09:00 while 5pm would be 17:00. The entered time always corresponds to the local time of the AWS region the RES environment is deployed in. 

# Reset schedule to default
<a name="reset-schedule-to-default"></a>

If you have customized the schedule for a virtual desktop, you can reset it back to the system default schedule set by your administrator.

1. Select the virtual desktop session you want to reset.

1. Choose **Actions** > **Schedule**.  
![\[Actions menu with Schedule option\]](http://docs.aws.amazon.com/res/latest/ug/images/virtual-desktop-options.png)

1. Click **Reset**.  
![\[Schedule dialog with Reset option\]](http://docs.aws.amazon.com/res/latest/ug/images/reset-schedules.png)

1. Choose **Save**.

# Virtual desktop infrastructure autostop
<a name="virtual-desktops-autostop"></a>

Administrators can configure settings to allow idle VDIs to be stopped or terminated. There are 4 configurable settings:

1. Idle Timeout: Sessions idle for this time with CPU utilization below the threshold will time out.

1. CPU Utilization Threshold: Sessions with no interaction and under this threshold (vCPU usage) are considered idle. If this is set to 0, then sessions will never be considered idle.
**Important**  
RES runs an idle detection script at the top of every minute that checks CPU utilization. This script itself causes temporary CPU spikes, which can prevent idle detection if your threshold is set too low.

1. Transition State: After idle timeout, sessions will transition to this state (stopped or terminated).

1. Enforce Schedule: If selected, a session that has been stopped for being idle can be resumed by its daily schedule.

![\[update session settings\]](http://docs.aws.amazon.com/res/latest/ug/images/res-update-session-settings.png)


These settings are present on the **Desktop Settings** page under the **Server** tab. After you update the settings according to your requirements, choose **Submit** to save the settings. New sessions will use the updated settings, but note that existing sessions will still use the settings which they had when they were launched.

After they time out, sessions will either terminate or transition into the `STOPPED_IDLE` state based on their configuration. Users will have the ability to start `STOPPED_IDLE` sessions from the UI.