ちょっと話題の記事

Ubuntu on AWSに軽量デスクトップLXDEとxrdpを使ってリモート接続してみた

2018.01.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

SSHしたら負けという風潮が弊社にはありますが、そんな空気は読みません。

Java、Qt、ブラウザでの管理画面があるサーバーアプリケーションでX11転送やSOCKSプロキシを使うのは自然の摂理に反しているため、軽快に動くLinuxリモートデスクトップを試してみました。

ミニマルなデスクトップ環境

AWSのナレッジセンターにはubuntu-desktopとxfce4を使ったリモートデスクトップ接続が解説されていますが、やや設定方法が冗長で、あまりサクサク動く環境は手に入りません。

Linuxのデスクトップ環境はあまたありますが、次のような理由からLXDEを使用します。

  • Cで書かれていてソフトウェアの依存関係が少なく、軽い。
  • 設定が自動化でき、クラウドベースのサーバーへ適応しやすい。
  • 用途に応じた起動オプションがある。
  • 多言語対応が容易。

LXDEをリモートのUbuntuで使うケースでは、一旦ターミナルでLXDE内のlxdmというコンポーネントを起動させてVNCないしはxrdpへリモートデスクトップでつなぎに行くという(ないしはそういった起動スクリプトを作る)インストラクションをよく見かけますが、サービスを手で作ることなくターミナルなしでAWSにつなぎに行ける簡単な方法があるのでそれを紹介します。

インストールと使用方法

適当なUbuntu EC2インスタンスを立ち上げ、セキュリティグループでRDPポート3389を許可しておきます。

ターミナルでSSH接続し、次のコマンドを実行してLXDEとxrdpをインストールします。なお、FirefoxなどUbuntuデスクトップと遜色ないソフトウェア環境をそろえるには、lxde-coreではなくlxdeを選択してください。

sudo apt-get update 
sudo apt-get install lxde-core 
sudo apt-get install xrdp

リモートデスクトップ用にパスワードが必要なので、ユーザー「ubuntu」を設定します。

sudo passwd ubuntu

起動オプションを固定してxinitにします。

sudo update-alternatives --config x-session-manager

3の startlxde を選択してターミナルを閉じ、EC2を再起動します。

リモートデスクトップクライアントはなんでもいいのですが、今回はMicrosoft Remote Desktopを使いました。PC nameにEC2のPublic DNS、ユーザー「ubuntu」と先ほど設定したパスワードを入れて接続します。

Chrome入れてみました。ローカルと見まごう軽快さです。Microsoft Remote Desktopはローカルリダイレクトが利くので、作業ドライブのマウントやコピー&ペーストも可能です。

「ターミナルでSSHしない」快適AWS生活が送れるようになりました。