第20回:Eucalyptusのインスタンスで仮想デスクトップ


 ここ最近、DaaSという言葉がまた流行り出してきました。DaaSとはDesktop as a Serviceという言葉のとおり、デスクトップ環境を提供するサービスの1つです。

 従来のシンクライアントシステムや仮想デスクトップシステムとDaaSが異なる点としては、利用者や企業がシステムを持たずに、サービス提供者がシステムを管理し、利用者は自身の要求に応じた構成の仮想デスクトップ環境を利用できるという特長が挙げられます。

 EucalyptusはIaaSを構築するためのソフトウェアですのでDaaSに関する機能があるわけではありませんが、「Eucalyptusのインスタンスでデスクトップ環境を構築して利用するにはどうしたらよいのだろうか?」という疑問にお答えしたいと思いますので、今回はEucalyptusのインスタンス上でGUIを使う話題を扱います。

マシンイメージについて

 いつものごとく3分クッキング的な手法で恐縮ですが、GUIが利用できるマシンイメージはマシンイメージ工房にてCentOS 5.6 x86_64 のGnome版を配布していますので、ダウンロードして以下のように実行してください。

# 以下のファイル名およびディレクトリは、適宜読み替えてください
# Gnome 版の展開
[root@frontend ~]# tar -xjvf CentOS-5.6-x86_64-Gnome-20110703.tar.bz2
[root@frontend ~]# cd CentOS-5.6-x86_64-Gnome-20110703/

# 下記の作業をする前に各自環境のeucarcを読み込んでおいてください
# Eucalyptusへの登録
[root@frontend CentOS-5.6-x86_64-Gnome-20110703]# ./register.sh

 登録が完了してから5~10分ほど(登録したマシンイメージの複号処理が終るまで)待ってから、インスタンスを起動します。なお、今回のマシンイメージのサイズは約3.5GBとなりEucalyptusのデフォルトのVM Typesであるm1.smallでは起動できないため、Eucalyptusの設定値を変更するかもしくはc1.medium以上で起動してください(デフォルトの場合、c1.mediumのメモリが256MBなので、できればm1.large以上が望ましいです)。

インスタンスが起動したらインスタンスにsshでログインし、以下のように実行してユーザの作成や初期パスワードの設定などを行ないます。

# ユーザの作成
[root@euca-10-1-2-4 ~]# useradd -m vtaro
# ユーザの初期パスワードの設定
[root@euca-10-1-2-4 ~]# passwd vtaro

 

インスタンスにXDMCPで接続

 今回紹介したマシンイメージはXDMCPでリモートログインできるように設定してありますが、そのためには以下のようにセキュリティグループの設定でXDMCPでの接続のために177/udpを開けます。

# -s オプションの値は環境に合わせて変更
[root@frontend ~]# euca-authorize -P udp -p 177 -s 192.168.1.0/24 default

 なお、筆者はWindows端末からXDMCPでインスタンスへ接続する場合はXmingというアプリケーションを使用しています。

Xmingのダウンロード

 セットアップファイルをダウンロードしインストールしたのち、以下のように接続します。

XLaunchを起動して、ウィンドウの種類を選択します。今回の例では「One window」を選択し、[Next >]をクリックしますXmingで使用するセッションの種類を選択します。今回の例では「Open session via XDMCP」を選択し、[Next >]をクリックします
接続先にインスタンスのPublicIPを入力し、[Next >]をクリックします特に必要がなければデフォルト設定のまま、[Next >]をクリックします
最後に[Finish]をクリックします。なお、この接続設定を保存する場合は[Save configuration]をクリックします接続に成功すると、リモートログインの画面が表示されます
日本語を利用する場合はメニューの[Language]から日本語を選択しますユーザ名とパスワードを入力してログインすると、CentOSのデスクトップ環境が利用できます

 ただし、XDMCPによるリモートログインの認証処理時のパケットは暗号化されていないため、前述のセキュリティグループの設定での-sオプションの値を「自ホストのIP/32」とするか、もしくはSSHによるフォワーディングで接続するのが望ましいです。

SSHによるフォワーディングで接続する場合は、以下のようにウィンドウの種類で「Multiple windows」を選択し、[Next >]をクリックします(「Multiple windows」が必須というわけではなく、あくまで筆者の好みですが)セッションの選択で「Start a program」を選択し、[Next >]をクリックします
「Run Remote」の「Using PuTTY (plink.exe)」を選択し、「Connect to computer」にインスタンスのPublicIPを入力し、「Login as user」「Password」に必要に応じてインスタンス上のユーザ情報を入力し、[Next >]をクリックしますplink.exeの選択を求められるので、普通はダイアログに表示されているplink.exeを選択して[Open]をクリックします
接続時のパラメータ設定で「Additional parameters for PuTTY or SSH」に「-ssh -X」と入力し、[Next >]をクリックします接続に成功すると、xtermが画面に表示されます

 なお手前味噌ですが、今回紹介しているマシンイメージにはtAWS tanacasinoを同梱していますので、以下のように実行することで起動することができます。

# tAWS tanacasinoの起動
[vtaro@euca-10-1-2-2 ~]$ LANG=ja_JP.UTF-8 /usr/local/tAWS/eclipse

 

インスタンスにWindowsのリモートデスクトップで接続

 一方、上記のように従来のXDMCPで接続する方法ではなく、Windowsのリモートデスクトップ接続を用いて接続する方法もあります。

 この方法はxrdpというソフトウェアを利用しますが、CentOSの標準パッケージには含まれていないため、下記のブログで公開されているパッケージをインストールする必要があります。

◇[CentOS5] xrdp 0.6.0(ブログSceneries through the lenses内)
 http://blog.goo.ne.jp/thaniwa/e/9748e505b62aad2ec61f4e7cd80f1d2e

 このブログで公開されているパッケージ xrdp-0.6.0-1.x86_64.rpm をインスタンス上に配置し、以下のようにインストールします。

# ダウンロードしたパッケージをインストール
[root@euca-10-1-2-6 ~]# rpm -Uvh xrdp-0.6.0-1.x86_64.rpm
Preparing...                ########################################### [100%]
   1:xrdp                   ########################################### [100%]
Starting: xrdp and sesman . . .

# プロセスが起動しているかを確認
[root@euca-10-1-2-6 ~]# ps uwww -C xrdp -C xrdp-sesman
USER  PID    %CPU %MEM VSZ     RSS   TTY    STAT START  TIME  COMMAND
root  29053  0.0  1.5  100384  8068  pts/0  S    21:55  0:00  /usr/sbin/xrdp
root  29055  0.0  0.2  51596   1396  pts/0  S    21:55 0:00 /usr/sbin/xrdp-sesman

 なお、今回の配布しているマシンイメージではxrdpのスクリプト「/etc/xrdp/startwm.sh」の78行目付近に以下のように環境変数を設定する記述を追記し、インスタンスを再起動する必要があります。

export LANG=ja_JP.UTF-8

 加えて、インスタンスにリモートデスクトップ接続をするためには、以下のようにセキュリティグループの設定で3389/tcpを開ける必要があります。

# -s オプションの値は環境に合わせて変更
[root@frontend ~]# euca-authorize -P tcp -p 3389 -s 192.168.1.0/24 default
これらの設定をし、リモートデスクトップ接続で以下のように接続するインスタンスのPublicIPを入力し、接続します接続が成功すると以下のようにxrdpによるログイン画面が表示されますので、インスタンス上のユーザ情報を入力し、[OK]をクリックします
無事にログインできると、以下のように見慣れたデスクトップが表示されます

 

次回からはEucalyptusの仕組みについて解説

 これまで、第1回から第6回までは基本導入編、第7回から第12回まではAPI編、第13回から今回まではEucalyptusの利用事例やインスタンス上での話題を扱ってきましたが、次回からはEucalyptusの仕組みなどについて解説していきます。

 これまではEucalyptusのトラブルシューティング的なことはほとんど紹介してきませんでしたが、そろそろEucalyptusを運用するうえでのノウハウについても触れていこうと思います。そのためにはEucalyptusの仕組みを知っておく必要があるため、次回からは数回に分けてEucalyptusの仕組みについて解説します。

 なお、マシンイメージ工房では今後も色々なマシンイメージを公開する予定です。

 


羽深 修
Eucalyptus歴はまだ1年ですが、周囲からはEucalyptus中毒と勘違いされているようです。Japan Eucalyptus User Groupの活動に参加し、オープンソースカンファレンスでネタなどを披露しています。度々Eucalyptusへのパッチも書いてます。ちなみに仕事ではCentOS + Xenという環境でEucalyptusを利用していますが、自宅のEucalyptus環境はGentoo Linux + KVMで動かしています。

志田 隆弘
主にEucalyptusやクラウドとはあまり関係のない分野でちょこちょこと活動していました。Eucalyptusはバージョン 1.3の頃からいじり始め、かれこれ2年近くEucalyptusに浸かった生活をしています。Eucalyptus 1.4が出たタイミングで、Tanacasinoという名前のGUIクライアントを作ったりしていました。最新のEucalyptusで動作するので、ぜひ使ってみてください。

田中 智文
志田さんとともに初期の頃からEucalyptusの調査・検証・使用してきました。志田さんの作成したTanacasinoのメンテナンスと機能拡張を行っています。新婚ほやほやなので家でのハック活動時間が少ないですが、Walrus Clientを作ってみたりbotoを使ってEucalyptusを操作して遊んでいます。

 

関連情報
(羽深 修/志田 隆弘/田中 智文)
2011/7/8 06:00