Steps to install desktop environment, desktop manager and and Amazon DCV high performance remote display protocol server on Ubuntu Linux
Notice
Your use of DCV is subject to DCV end user license agreement
Supported Ubuntu versions
The following versions are supported by Amazon DCV server
- Ubuntu 24.04 (x86_64)
- Ubuntu 24.04 (arm64)
- Ubuntu 22.04 (x86_64)
- Ubuntu 22.04 (arm64)
- Ubuntu 20.04 (x86_64)
System Requirements and Prerequisites
- EC2 instance with 2 GiB or more memory
- Attached security group allows inbound TCP and UDP port
8443
from your IP
- More than 3 GB free disk space to install graphical desktop components and DCV server
- Attached EC2 IAM role with the below policy. Replace
region
with your instance AWS Region code
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::dcv-license.region/*"
}
]
}
Install desktop environment and desktop manager
Install GNOME desktop and disable Wayland protocol
sudo apt update
sudo apt install -y ubuntu-desktop-minimal
sudo sed -i '/^\[daemon\]/a WaylandEnable=false' /etc/gdm3/custom.conf
Install DCV server
Install DCV server, web client and virtual session support, and enable server daemon
cd /tmp
OS_VERSION=$(. /etc/os-release;echo $VERSION_ID | sed -e 's/\.//g')
curl -L -O https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-ubuntu$OS_VERSION-$(arch).tgz
tar -xvzf nice-dcv-ubuntu$OS_VERSION-$(arch).tgz && cd nice-dcv-*-$(arch)
sudo apt install -y ./nice-dcv-server_*.deb
sudo apt install -y ./nice-dcv-web-viewer_*.deb
sudo apt install -y ./nice-xdcv_*.deb
sudo usermod -aG video dcv
sudo systemctl enable dcvserver
Configure DCV server
Configure console session, enable session storage and QUIC transport protocol
sudo sed -i "/^\[session-management\/automatic-console-session/a owner=\"ubuntu\"\nstorage-root=\"%home%\"" /etc/dcv/dcv.conf
sudo sed -i "s/^#create-session/create-session/g" /etc/dcv/dcv.conf
sudo sed -i "s/^#enable-quic-frontend=true/enable-quic-frontend=true/g" /etc/dcv/dcv.conf
GPU instance
If you are using a GPU instance, install and configure GPU drivers
Non GPU instance
For other instance types, install and configure XDummy driver
sudo apt install -y xserver-xorg-video-dummy
sudo tee /etc/X11/xorg.conf > /dev/null << EOF
Section "Device"
Identifier "DummyDevice"
Driver "dummy"
Option "UseEDID" "false"
VideoRam 512000
EndSection
Section "Monitor"
Identifier "DummyMonitor"
HorizSync 5.0 - 1000.0
VertRefresh 5.0 - 200.0
Option "ReducedBlanking"
EndSection
Section "Screen"
Identifier "DummyScreen"
Device "DummyDevice"
Monitor "DummyMonitor"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Virtual 4096 2160
EndSubSection
EndSection
EOF
Restart X server and DCV server
sudo systemctl isolate multi-user.target && sudo systemctl isolate graphical.target
sudo systemctl stop dcvserver && sudo systemctl start dcvserver
Access graphical desktop environment
Set user password
Specify a strong password for login user
sudo passwd ubuntu
Clients
DCV offers Windows, Linux, macOS and web browser clients.
HTML 5 client for web browser access is at https://<EC2-IP>
:8443 (where <EC2-IP>
is your EC2 instance IP address).
Native clients supports QUIC and can be downloaded from https://www.amazondcv.com/
Login as ubuntu
with your configured password
Web browser client
Install on EC2 launch
To automate install when launching a new Ubuntu EC2 instance, you can use the below user data script.
#!/bin/bash
sudo apt update
sudo apt install -y ubuntu-desktop-minimal
sudo sed -i '/^\[daemon\]/a WaylandEnable=false' /etc/gdm3/custom.conf
cd /tmp
OS_VERSION=$(. /etc/os-release;echo $VERSION_ID | sed -e 's/\.//g')
curl -L -O https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-ubuntu$OS_VERSION-$(arch).tgz
tar -xvzf nice-dcv-ubuntu$OS_VERSION-$(arch).tgz && cd nice-dcv-*-$(arch)
sudo apt install -y ./nice-dcv-server_*.deb
sudo apt install -y ./nice-dcv-web-viewer_*.deb
sudo apt install -y ./nice-xdcv_*.deb
sudo usermod -aG video dcv
sudo systemctl enable dcvserver
sudo sed -i "/^\[session-management\/automatic-console-session/a owner=\"ubuntu\"\nstorage-root=\"%home%\"" /etc/dcv/dcv.conf
sudo sed -i "s/^#create-session/create-session/g" /etc/dcv/dcv.conf
sudo sed -i "s/^#enable-quic-frontend=true/enable-quic-frontend=true/g" /etc/dcv/dcv.conf
sudo apt install -y xserver-xorg-video-dummy
sudo tee /etc/X11/xorg.conf > /dev/null << EOF
Section "Device"
Identifier "DummyDevice"
Driver "dummy"
Option "UseEDID" "false"
VideoRam 512000
EndSection
Section "Monitor"
Identifier "DummyMonitor"
HorizSync 5.0 - 1000.0
VertRefresh 5.0 - 200.0
Option "ReducedBlanking"
EndSection
Section "Screen"
Identifier "DummyScreen"
Device "DummyDevice"
Monitor "DummyMonitor"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Virtual 4096 2160
EndSubSection
EndSection
EOF
sudo systemctl isolate multi-user.target && sudo systemctl isolate graphical.target
sudo systemctl stop dcvserver && sudo systemctl start dcvserver
Set ubuntu
password after installation is compete
CloudFormation template
To quickly get up and running with DCV for internal testing, you can use CloudFormation template at DCV CloudFormation page and aws-samples - Github
Additional information
Refer to DCV documentation site