EC2上のUbuntuデスクトップをWindowからリモート接続して使う

やっとできたので、手順をメモしておきます。AWSどうこう以前に、Linuxやネットワークの知識が足りなくて、二晩くらいはまってました。とほほ...

ゴール

EC2のLinuxインスタンスにデスクトップ環境を作る。その環境にローカルのWindowsマシンからリモートデスクトップ接続して使用する。

動機

ポータブルなLinux環境が欲しかったのです。Linuxマシンはデスクトップしか持っていないため、外出先でLinux on VitualBox on Windows 7のような状態で作業するたびに、処理が重くてドンヨリしていました。条件を整理すると、次のようなカンジです。

まぁこういう用途にEC2を使いたいときのためのメモってことで。

手順

ローカル環境は、Windows 7(64-bit)で試しました。

(1)ローカル環境にツールをインストールする

SSH接続のために、PuTTYをインストールします。

VNCクライアントとして接続するために、TightVNCをインストールします。

(2)LinuxのEC2インスタンスを作成する

LinuxのEC2インスタンスを作成します。ここでは手軽さを求めて、既存のLinuxベースのAMIを使います。

publicなAMIはたくさんあるので、どれを信用して使用したらよいか分からなければ、ディストリビューションのプロジェクトが出してくれているAMIを選べばよいでしょう。たとえば、UbuntuのオフィシャルAMI一覧が、次のページにあります。

上記で選んだAMI IDを指定して、EC2インスタンスを作成します。マネジメントコンソールから作成する場合は、インスタンス作成ウィザードで、[Community AMIs]タブの検索窓にAMI IDを入力して、出てきたAMIを選択します。

インスタンスを所属させたセキュリティグループには、SSHとRDPを許可するように設定しておきます。

(3)インスタンスSSHでログインする

ローカルのWindowsマシンから、Linuxインスタンスに接続します。ここではPuTTYを使います。

  1. PuTTYセッションの基本設定]の[ホスト名]に、EC2インスタンスのPublic DNSを入力します。
  2. SSH]→[認証]の[認証のためのプライベートキーファイル]で、[参照]ボタンをクリックして、認証に使用する鍵ファイルを選択します。
  3. SSH]→[トンネル]の[源ポート]に「9000」、[送り先]に「localhost:5901」と入力して、[追加]ボタンをクリックします(源=source=送信元の意です)。
  4. [開く]ボタンをクリックします。

2.で使用するのは、EC2インスタンスの作成時に指定したキーペアの秘密鍵です。ただし、マネジメントコンソールからダウンロードした.pemファイル形式のままでは、PuTTYで使えません。PuTTYのインストールフォルダにあるputtygen.exeで、.pptファイル(PuTTY秘密鍵形式)に変換し、変換後のファイルを選択します。

ローカルからインスタンスへの通常の接続設定では、3.の手順を行いません。3.が、VNCを使用して接続するための肝だと思います。

コンソールが開いたら、ログインします。Ubuntuインスタンスの場合、パスワードなしで初期ログインできるユーザ名は「ubuntu」です。

(4)Linuxにデスクトップ環境をインストールする

インスタンスにログインしたら、デスクトップ環境をインストールします。以下の操作には、root権限が必要です。

# apt-get update
# apt-get -y install ubuntu-desktop
(5)VNC Serverをインストールする

インスタンスに、VNC Serverをインストールします。

# apt-get -y install tightvncserver
(6)VNC Serverを起動する

インスタンス側で、VNC Serverを起動します。

# vncserver :1

パスワードを設定するように求められるので、入力します。短いとエラーになります。

(7)ローカルからVNC Viewerでログインする

TightVNC Viewerを起動します。[New TightVNC Connection]ダイアログで、[TightVNC Server]に「localhost::9000」と入力して、[Connect]ボタンをクリックします。

[Standard VNC Authentication]ダイアログが表示されます。(6)でVNC Serverに設定したパスワードを入力して、[OK]ボタンをクリックします。

[root's X desktop]というウィンドウで、Linuxのデスクトップ環境が開きます。

(おわりに)VNCServerを終了する
vncserver -kill :1

というわけで

色々課題が残っていますが、ひとまずポータブルなLinux環境を手に入れました。

最大の課題は遅いことですが・・・(あかんやん・・・)。ちょろっと調べたところ、VNCの仕組みが原因なんですね。

NXを使った方が速いらしいので、今度リベンジします。