AWSのEC2にGUI環境を構築する


学習環境が欲しくて、EC2にGUI環境を構築したら、思いのほか苦戦したのでメモ。

環境

サーバー : Amazon Linux 2
クライアント : Mac

事前準備

・AWSのアカウント作成
EC2作成
EC2にSSH接続

GUI環境構築

公式から、ほぼコピペして進める。

# MATEデスクトップ環境のインストール
$ sudo amazon-linux-extras install mate-desktop1.x
# 全てのユーザーにMATEをデフォルト設定
$ sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'
# TigerVNCをインストール
$ sudo yum install tigervnc-server
# VNCのパスワード設定をした後に画面表示専用のパスワードを聞かれるので「n」で入力
$ vncpasswd

起動時に常にVNCサーバーを起動するように設定。

$ sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/[email protected]
$ sudo sed -i 's/<USER>/ec2-user/' /etc/systemd/system/[email protected]
$ sudo systemctl daemon-reload
$ sudo systemctl enable vncserver@:1
$ sudo systemctl start vncserver@:1

xstartupファイルにMATEを実行するコマンドを追加する。(これを追加しないと繋がっても真っ黒い画面になり操作できない・・・ここで苦戦した)

~/.vnc/xstartup
#!/bin/sh
exec mate-session
〜(以下略)〜

VNCサーバーを再起動。

$ sudo systemctl daemon-reload
$ sudo systemctl restart vncserver@:1

Google Chromeのインストール

公式から引用。

$ sudo amazon-linux-extras install epel
$ sudo yum install chromium

Macからリモート接続

sshでポートフォワーディングを有効にするオプションを付けて繋ぎなおす。
PEM_FILE : 鍵のパス
INSTANCE_IP : 接続先IP

ssh -L 5901:localhost:5901 -i PEM_FILE ec2-user@INSTANCE_IP

Finder→移動→サーバへ接続

接続するとパスワードを聞かれるので、先ほど設定したVNCのパスワードを入力する。
ログインに成功すると以下の画面になる。

終わりに

無事に作業環境を構築できて良かった〜!
余裕があれば他のOSも挑戦したい。