リモートでの障害対応する時の作業環境として、リモートデスクトップ環境を構築した時のメモとなります。Amazon Workspacesでも良かったのですが、OSはWindowsとAmazonLinuxしか選択肢がないので、Ubuntu上にLXDE・TightVNC・noVNCを設定して、ブラウザ経由でリモートデスクトップ環境を構築してみました。
環境
- AWS
- Ubuntu Server 20.04 LTS(AMI: ami-0f2dd5fc989207c82)
インストール手順
パッケージアップデート
- 起動直後のUbuntuを最新の状態にする
sudo apt update
sudo apt upgrade
LXDEインストール
- LXDEのインストール(最小限の機能が問題ないのであれば
lxde-core
のインストール)
sudo apt install lxde
sudo reboot
TightVNCインストール
- vncサーバとしてTightVNCをインストール
sudo apt install tightvncserver
sudo apt install xfonts-base
vncserver :1
cp -p ~/.vnc/xstartup ~/.vnc/xstartup.bk
chmod +x ~/.vnc/xstartup
vi ~/.vnc/xstartup
*** 最終行に追記
-----
lxsession -s LXDE &
-----
vncserver -kill :1
vncserver :1
TightVNC自動起動設定
- サーバ起動時に自動的に起動するよう設定
sudo vi /lib/systemd/system/vncserver@1.service
*** 新規作成
---
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x768 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
---
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service
noVNCインストール
- ブラウザ経由でアクセスするためにnoVNCをインストール
sudo apt install novnc websockify python-numpy
websockify -D --web=/usr/share/novnc/ 6080 localhost:5901
noVNC自動起動設定
- サーバ起動時に自動的に起動するよう設定
sudo vi /lib/systemd/system/novnc.service
*** 新規作成
---
[Unit]
Description=noVNC startup
[Service]
Type=simple
ExecStart=/usr/bin/websockify -D --web=/usr/share/novnc/ 6080 localhost:5901
ExecStop=/bin/kill ${MAINPID}
Restart=always
User=ubuntu
Group=ubuntu
[Install]
WantedBy=multi-user.target
---
sudo systemctl enable novnc.service
sudo systemctl start novnc.service
ブラウザ経由で接続してみる
感想
- ブラウザ経由でアクセスできるのは便利ですね。セキュリティを考えると認証をどうするか・SSL通信で暗号化する必要があるなどの課題があると思います。