〜Amazonとユーカリ、コアラが好きなのはどっち?〜
Ubuntuで始めるクラウドコンピューティング



Ubuntu 9.10には、EucalyptusをベースにしたAmazon EC2/S3互換の仮想化環境構築ソフトウェア「Ubuntu Enterprise Cloud」(UEC)が含まれています。早速試してみませんか(編集部)

Ubuntu Japanese Team株式会社創夢
吉田 史
2009/11/25


EucalyptusとUEC

 10月29日にリリースされたLinuxディストリビューション「Ubuntu 9.10」(開発コードネーム“Karmic Koala”)には、「Ubuntu Enterprise Cloud」(UEC)という、Amazon EC2/S3互換の仮想化環境構築ソフトウェアセットが含まれています。

 UECはUbuntu 9.10の主要機能の1つとして開発されており、Eucalyptusをベースに、Ubuntuの開発・サポートを行っているカノニカル(Canonical)社が開発したソフトウェアセットです。

 CanonicalはUECを非常に強く推しており、このことは9.10のコードネームからも見て取ることができます。Ubuntuの開発コードネームは「形容詞+動物」で構成されているのですが、ここで選ばれる動物は、そのリリースにおける主な目標を示していることがほとんどです。

 例えば、9.04の“Jaunty Jackalope”(JackalopeはUMA(未確認動物)の一種で、「恐ろしく速く走る、ツノの生えたウサギ」)では「起動時間の短縮」が最大の目標でした。

 9.10のコードネーム“Karmic Koala”には「コアラはユーカリが大好き」「コアラはユーカリを食べる時以外、1日の大半を眠って過ごす」といったニュアンスが含まれています(注1)。「コアラはユーカリが大好き」というのはいうまでもなくUEC(Eucalyptus)のことを示しており(注2)、「コアラはユーカリを食べる時以外、1日の大半を眠って過ごす」というのは、サーバ向けに開発された「PowerNap」という省電力ユーティリティの搭載といった形で実現されています。

注1:Ubuntuのコードネームで利用される動物名は、日本語圏ではマイナーな単語ばかりです。過去に、Warthog/イボイノシシ→Hedgehog/ハリネズミ→Badger/アナグマ→Drake/カモ→Eft/イモリ→Fawn/子鹿→Gibbon/テナガザル→Heron/サギ→Ibex/ノヤギ→Jackalope/ツノウサギときていたところに突然Koalaが現れ、突然のメジャー動物登場に、日本の関係者一同が不安になるという一幕もありました。

注2:「Eucalyptus」とは、いわゆるユーカリ(コアラが葉っぱを食べる、植物のユーカリ)のことです。これだけ聞くとEucalyptus関連以外には更新がなさそうですが、もちろんそれ以外の機能も強化されており、9.04以上に起動時間を短縮したほか、Ubuntu Oneの搭載、Ubuntu Software Storeによるアプリケーションインストールの簡便化などなど、多くの新機能が準備されています。

Amazon EC2/S3と同じ環境を手元に

 Eucalyptusは「Amazon EC2/S3と同じ環境を、自分で構築する」ことを目指したソフトウェアです。Eucalyptus上で実際に稼働する仮想マシンはKVMもしくはXenベースですので、「KVMやXenのフロントエンドの一種」と考えてもよいでしょう。

 これによって、どのようなメリットがあるかを簡単に説明します。まず、Amazon EC2はAmazonの提供する仮想マシン実行サービスです。EC2には「再起動によってマシン上のデータが失われる」(永続性のあるデータはS3上に明示的にコピーしなければならない)(注3)、「起動するたびにIPアドレスが変化するので、Dynamic DNSに類する仕組みが必要」などといった、独特のクセがあります。

 これらはノード数を動的に変動させるために必要な措置(注4)なのですが、サーバ構成の設計レベルで意識しておく必要があり、単純に「普通のサーバ環境」からサービスを移設する際の壁となります。逆に、EC2を前提にサーバ構成を設計してしまえば、EC2以外で動かすことが困難になってしまいます。

 一方で、Eucalyptusはこうしたクセも含めて、Amazon EC2と同じような構成を作ることができます。Eucalyptus上で動くマシンは、そのまま設計を変更することなくEC2へ持っていくことができる、というわけです(厳密には、設定変更に伴うわずかな手間は掛かります)。

 これは、「必要に応じて、自分たちの持っているサーバ環境とAmazon EC2のいずれかを選択できる」ということを意味します。サービス開発や予備調査においてEucalyptusで構築したシステムを用いることで、Amazon EC2と同様の環境で開発が行えます。これによって、「本番環境」としてそのままAmazon EC2上に「進出」できます。また、「自前のEucalyptus環境のままサービスを提供する」ことも選択肢として残すことができます。

 さらに、Amazon EC2上で展開してきたサービスを、必要に応じてEucalyptus環境に「撤退」することも可能です。こうした形で、サービスレベルでの再設計を伴わずに「進出」と「撤退」を自由に選択できることが、Eucalyptusの大きなメリットです。

 また、UECの特徴は、「2台のマシンにOSをインストールするだけで、Amazon EC2/S3互換環境が動作する」ことです(注4)。Eucalyptusのセットアップに関連する知識はほとんど必要なく、事実上Amazon EC2/S3の知識さえあれば、ほぼそのまま仮想マシン環境として利用できます。もちろん互換性があるのは操作性だけでなく、Amazon EC2上で利用しているマシンをUECに移動して利用することも可能です。

注3:Amazon EBS(Elastic Block Store)を用いることで、再起動後も利用できるストレージ領域を確保することも可能ではあります。Eucalyptusには、EBS互換機能も搭載されています。

注4:固定的にIPアドレスを割り当てていては、ノードを動的に増減させる処理が恐ろしく複雑になってしまいます。また必要に応じてノードを追加・削除するのであれば、サーバ上に重要なデータが存在することも望ましくありません。こうした環境ではストレージはどこか「別の場所」に置くべきで、EC2の場合はこの「別の場所」がS3、という位置付けです。なお厳密には、「S3互換」の部分は「Eucalyptus」に含まれる「Walrus」として実現されています。

UEC利用に必要な環境

 Ubuntu 9.10のUECを利用するためには、最低でも2台のマシンが必要です。いずれも物理マシンが必要なため、廉価なサーバや余ったマシンを利用して構築するといいでしょう。

 2台のマシンは、1台が「Cluster」(正しくは「Cluster Controller」なのですが、ほかの要素が「Node Controller」といった名称であり、ただの「Controller」では分かりにくいため「Cluster」と呼ばれます)と呼ばれるインターフェイス役になり、もう1台が「Node」と呼ばれる仮想マシンを実際に動かすホストとなります。「Node」に当たるマシンは2台以上(いくらでも)増やすことも可能です。

UECの基本構成

 「Cluster」と「Node」ともに、80GB以上の空きHDD、そして1GB以上の搭載メモリと、OSインストール用のCD-ROMが読める光学ドライブが必要です(USB接続の外付けドライブでも可)。

 また、UECではKVMで仮想マシンを動かすため、「Node」マシンはハードウェアによる仮想化サポートが必要です。具体的には、Intel VT-x(以降、「VT」と表記します)かAMD-Vが必要です。

 対応しているかどうかが不明な場合は、LinuxのLiveCDなどで起動し、「egrep '(vmx|svm)' /proc/cpuinfo」を実行して何らかの出力が得られるか確認してください。何も出力されない場合、そのハードウェアは「Node」にすることができません。

 本来のEucalyptusはさまざまなネットワーク構成を取ることができ、ホスト1台にすべての機能を詰め込むことも可能(「SYSTEM」や「STATIC」構成)ですし、KVMが動かない環境であれば、Xenで動作させることも可能です。が、Ubuntu 9.10のUECは、「Eucalyptusの『MANAGED』構成を、KVMを使って簡単に構築する」ことに特化しているため、利用には少なくとも2台のマシンが必要となり、うち1台はKVMへの対応が必須となります。

 なお、「Node」に当たるマシンは「仮想マシンを動かすためのリソース」でしかないため、基本的にユーザーが直接ログインして利用することはありません(OSそのもののメンテナンスなどでログインすることはあり得ます)。「Cluster」となるマシンではTomcatで構成されたEucalyptusのWebフロントエンドや、仮想ネットワークのためのプロセスが動作しますが、デスクトップとして利用することも可能です。

 
1/3

Index
Ubuntuで始めるクラウドコンピューティング
〜Amazonとユーカリ、コアラが好きなのはどっち?〜
Page 1
 EucalyptusとUEC
 Amazon EC2/S3と同じ環境を手元に
 UEC利用に必要な環境
  Page 2
 UECの導入とセットアップ
  Page 3
 動作検証と仮想マシンの起動
 UEC/Eucalyptusの限界と展望

Linux Square全記事インデックス


 Linux Squareフォーラム 仮想化技術関連記事
連載:実践! Xenで実現するサーバ統合
有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します
特集:サーバの仮想化技術とビジネス展開の可能性
jailからUML/VMwareまで
1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった
特集:仮想化技術のアプローチと実装
VMwareから要注目技術Xenまで

1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう
特集:仮想OS「User Mode Linux」活用法
技術解説からカーネルカスタマイズまで
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説
特集:仮想化技術の大本命「Xen」を使ってみよう
インストール & Debian環境構築編

高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう
特集:仮想化技術の大本命「Xen」を使ってみよう
Xen対応カスタムカーネル構築編

Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる
特集:IPv6、UML、セキュリティ機能の統合
全貌を現したLinuxカーネル2.6[第4章]

今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう
Linux Squareプロダクトレビュー VMware Workstation 4
PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう
古くて新しい「サーバ仮想化技術」の行方
サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する
Linux Squareフォーラム全記事インデックス


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間