EC2上のUbuntuデスクトップをWindowからリモート接続して使う
やっとできたので、手順をメモしておきます。AWSどうこう以前に、Linuxやネットワークの知識が足りなくて、二晩くらいはまってました。とほほ...
ゴール
EC2のLinuxインスタンスにデスクトップ環境を作る。その環境にローカルのWindowsマシンからリモートデスクトップ接続して使用する。
動機
ポータブルなLinux環境が欲しかったのです。Linuxマシンはデスクトップしか持っていないため、外出先でLinux on VitualBox on Windows 7のような状態で作業するたびに、処理が重くてドンヨリしていました。条件を整理すると、次のようなカンジです。
- Linux環境であること
- Eclipseを使うのでX window system必須
- ローカルのWindowsマシンからリモート接続できること
まぁこういう用途にEC2を使いたいときのためのメモってことで。
参考資料
手順
ローカル環境は、Windows 7(64-bit)で試しました。
(1)ローカル環境にツールをインストールする
VNCクライアントとして接続するために、TightVNCをインストールします。
(2)LinuxのEC2インスタンスを作成する
LinuxのEC2インスタンスを作成します。ここでは手軽さを求めて、既存のLinuxベースのAMIを使います。
publicなAMIはたくさんあるので、どれを信用して使用したらよいか分からなければ、ディストリビューションのプロジェクトが出してくれているAMIを選べばよいでしょう。たとえば、UbuntuのオフィシャルAMI一覧が、次のページにあります。
上記で選んだAMI IDを指定して、EC2インスタンスを作成します。マネジメントコンソールから作成する場合は、インスタンス作成ウィザードで、[Community AMIs]タブの検索窓にAMI IDを入力して、出てきたAMIを選択します。
(3)インスタンスにSSHでログインする
ローカルのWindowsマシンから、Linuxのインスタンスに接続します。ここではPuTTYを使います。
- [PuTTYセッションの基本設定]の[ホスト名]に、EC2インスタンスのPublic DNSを入力します。
- [SSH]→[認証]の[認証のためのプライベートキーファイル]で、[参照]ボタンをクリックして、認証に使用する鍵ファイルを選択します。
- [SSH]→[トンネル]の[源ポート]に「9000」、[送り先]に「localhost:5901」と入力して、[追加]ボタンをクリックします(源=source=送信元の意です)。
- [開く]ボタンをクリックします。
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
(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