AWSのEC2をGUIで操作できるようにする


はじめに

大学の講義や個人の開発でAWSを交えて開発を行なったりと、これからAWSを用いて開発を行なっていきたいとなったとき、CUIもそれなりに使えるがやはりGUIに慣れている人の方が多いし、自分も割とGUIを使いたいときがちょくちょく出てくるので、EC2でGUIを使えるようにしたいと思った。

導入

まずEC2の設定から

SSHを利用してコマンドプロンプト,ターミナル等からEC2に接続する。

MATEデスクトップ環境を入れる、設定

sudo amazon-linux-extras install mate-desktop1.x

途中でyes or no を聞かれるのでyesで。そしたらmateが入る。
次にデスクトップにMATEを設定する。

sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop' #全てのユーザへの適用
echo "/usr/bin/mate-session" > ~/.Xclients && chmod +x ~/.Xclients #現在のユーザのみの設定

TigerVNCの導入、設定

sudo yum install tigervnc-server

これでtigervncを導入できる。
次にvncのパスワードを設定する必要がある。

vncpasswd

ここで自分の好みのパスワードを設定する。途中で表示専用のパスワードを入力するかどうかを確認するメッセージが表示されたら、「n」で。

vncserver :1

上のコマンドで1回のみの起動。再起動が入った場合はvncserverが立たないので、また立てる必要がある。
僕の場合は何回も使いたいと考えていてわざわざ起動するのが面倒なので毎回起動されるように設定する。

新しいsystemdユニットの作成を行う。

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/[email protected]

sedコマンドで新しいユニットのすべての USER を ec2-user に置き換える。

sudo sed -i 's/<USER>/ec2-user/' /etc/systemd/system/[email protected]

systemdマネージャの設定を再ロードする。

sudo systemctl daemon-reload

サービスを有効にする

sudo systemctl enable vncserver@:1

サービスを起動する

sudo systemctl start vncserver@:1

これで一旦EC2の設定完了。

ローカルコンピュータの設定

ローカルコンピュータにTigerVNC ソフトウェアをインストールする。TigerVNCはlinux,macOS,Windowsで利用することが可能。

for mac

macの場合はTigerVNCを入れなくてもできました。
pemがあるディレクトリに移動して、以下のコマンドを実行。

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

"PEM_FILE"を"example.pem"のように置き換えて、INSTANCE_IPは最初にssh接続したときのIPアドレスを入れる感じです。
成功すると。。。

[ec2-user@ip-000-00-00-000 ~]$ 

のようになります。000のところは個人によって違う数字になります。

そしたら、macのfinderで上のタブの[移動]から[サーバへ接続]を押すとアドレスの入力が求められる。そこには
vnc://localhost:5901
を入力するとおそらくデスクトップ画面が表示される。
ちなみに、[環境設定]から[共有]へ移動して、画面共有を許可にしておかないとできないっぽいです。成功すると。。。

for windows (準備中)

参考サイト

AWS:https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-linux-2-install-gui/