AWS EC2上のUbuntu16.04にデスクトップ環境を構築してMacからつなぐ

はじめに

やりたいこと

AWS EC2上にUbuntu16.04のインスタンスをたてて、そのインスタンスにMacからリモートデスクトップが接続する

なんでこの記事を書いたか

ぐぐってみると、日本語、英語で色々なドキュメントが出てきた。それらを参考に色々試したがサクッとはいかなかった。「どれを参考にすればいいねん!」って人向けに「これを実行すればサクッと構築できるよ」という情報を提供したかったから書いた。
ちなみに、X Window System、ubuntu-desktop、xrdp、Xfce4、GNOME、KDE、Unity、vncなどなど、
用語がわからなすぎたのでハードルが高く感じた。

いまはただのメモ

とりあえずメモ代わりに投稿するかってくらいのモチベーションで投稿してます。
もしここの記述がようわからんとかあれば、コメントいただければ少しずつ細かく書いていきます。

想定している読者レベル

  • EC2インスタンスをたてたことがある
  • なんとなくlinuxコマンドがつかえる

用語

X Window System

ディスプレイにウィンドウを表示したり、マウスやキーボードを使ってやりとりするためのシステム。WindowsやMacではOSとこのソフトウェアが一体化しているが、Linuxでは一体化してないのでもし先述のことを行いたい(=GUI)場合はインストールする必要がある。MacのOS Xの「X」とWindowsの「Window」がまざった「X Window System」という名称で紛らわしい。単に「X」と呼ばれることもある。

Xfce, GNOME, KDE, Unity,

デスクトップ環境を実現するためのシステム。色々あってややこしいが、デスクトップ上のデザインや機能が微妙に違うだけ。今回はXfceを使った。

vnc

ネットワーク越しに、別のコンピューターのデスクトップ画面を表示してGUI操作することができるシステム。今回Ubuntuで環境を構築するにあたって参照した記事ではvnc4serverかTightVNCのどちらかを使っていることが多かった。

手順

EC2インスタンス作成

下記参照にEC2インスタンスを作成
- AMIはクイックスタートにあるUbuntu 16.04
- セキュリティグループのインバウンドにポート5901を追加
- とりあえずt2.microでいい

デスクトップ環境構築

この記事のとおりでOK

sudo apt update && sudo apt upgrade

sudo sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
sudo /etc/init.d/ssh restart

sudo passwd ubuntu

sudo apt install xrdp xfce4 xfce4-goodies tightvncserver

echo xfce4-session> /home/ubuntu/.xsession

sudo cp /home/ubuntu/.xsession /etc/skel

sudo sed -i '0,/-1/s//ask-1/' /etc/xrdp/xrdp.ini

sudo service xrdp restart

tightvncserver

つなぐ

Finder起動->移動->サーバへ接続で、vnc://XX.XX.XX.XX:5901に接続。
XX.XX.XX.XXは作成したEC2インスタンスのIPかパブリックDNSを指定。
ただしvncはそのままでは暗号化されてないので、セキュアなことをやりたい場合はご自身で対応をお願いします。

ついでに日本語化

chromeをインストールしたら、日本語が文字化けしてたので日本語化してみた。
- “Language support” icon missing in System Settings
- 英語環境でセットアップしてしまったUbuntuで日本語を使えるようにする

補足

  • tightvncserverでなくてvnc4serverでもOKだと思います(試してない)
  • xrdpはaptからのインストールでOK