第17回:Eucalyptusの利用事例「edubase Cloud」
今回はEucalyptusの利用事例としてedubase Cloudの紹介とedubase Cloudを利用した研究プロジェクトであるbeyohnの紹介、そして5/25に発売された書籍「Eucalyptusではじめるプライベートクラウド構築」の紹介をします。
■edubase Cloud
edubase Cloudは国立情報学研究所(以降、NII)のソフトウェア工学に関する研究センターであるGRACEセンターが、先導的ITスペシャリストの育成を行なう際に学生が自由にアイデアを試せるIT実験室として提供しているアカデミッククラウドであり、以下の4つの特長を持っています。
(1) 専有性
edubase Cloudは単一のクラウドではなく、15セットのミニクラウド(112台のVMが起動可能なミニクラウド×10セットと48台のVMが起動可能なミニクラウド×5セット)で構成されており、研修室単位やプロジェクト単位で1セットのミニクラウドを専有することが可能な構成となっています。これにより他のプロジェクトなどの学習環境に対する影響を気にせず、色々な実験や検証が行なえます。また、専有する以外にも他の研究室やプロジェクトと共有して1セットのミニクラウドを利用することも可能になっています。
(2) 改変性
クラウドとしてのメリットを最大限に活かし、IaaS層においても設定変更などのチューニングやカスタマイズができ、PaaS層においては仮想マシンイメージの変更および独自の仮想マシンイメージの作成が可能であり、SaaS層においてはアプリケーションの自由な選択やカスタマイズが可能という、どのレイヤーにおいても必要に応じて柔軟に対応することが可能になっています。
(3) 連携性
オープンインターフェイスにより外部クラウドのサービスとの連携が容易に行えます。例えば、2010年度においてはedubase Cloud環境とNASAのNebulaクラウドとを連携させた相互接続性の実証実験が行なわれています。この実証実験では双方のクラウド上に分散配置した火星軌道衛星のデータセットとアプリケーションを連携させる試み(詳細はこちら)が行なわれました。
(4) 保存性
プロジェクトが利用した仮想マシンイメージを再利用可能な形でアーカイブすることができるアーカイブ・リストア機能が提供されており、これによって他のプロジェクトでの仮想マシンイメージの再利用や、前年度の学生が利用した仮想マシンイメージを本年度の学生が継続して利用および改善することが可能になっています。
edubase Cloudの4つの特長 |
これらの特長に加えて、edubase Cloudでは利用者の利便性を向上させるために、仮想マシンインスタンスの起動を高速化する試みが行なわれていたり、初心者でもすぐに使える分散処理の教材や操作性を向上させるGUIツールの提供などが行なわれています。
edubase Cloudクライアント |
edubase Cloudではこれらの特長を活かした様々な実証実験が行なわれています。
■Beyohnプロジェクト
Beyohnは、東大とNIIが連携して行なわれている実践工房のプロジェクトの1つです。分散モデルに基づいたオートスケールを検証することを目標としたプロジェクトで、Javaアプリケーションのコードを変更することなくクラスタリングさせるTerracottaと連携し、Webアプリケーションの負荷分散が可能となっています。
従来のオートスケールではクライアント/サーバーモデルのアーキテクチャで設計されていますが、そのモデルではサーバーが何らかの原因によって機能不全に陥いった場合にオートスケールできなくなるという問題点を持っていました。その問題点を克服するために、beyohnではインスタンス上に負荷監視モジュールと増加判断モジュールを配置し、各インスタンスの増加判断モジュール同士が負荷情報を共有して協調動作をし、一番負荷の低い負荷情報を報告した増加判断モジュールがリーダー役を担うというアーキテクチャになっています。
Beyohnのアーキテクチャ概要 |
■Eucalyptusではじめるプライベートクラウド構築
本連載「ユーカリプタス入門」の筆者3名が執筆したEucalyptusについての書籍「Eucalyptusではじめるプライベートクラウド構築」が5月25日に発売されました。本連載では説明しきれなかったことなどを、冗長になりすぎない範囲で可能な限り詳細に書きました。以下に、この書籍の目次と概要をご紹介します。
Eucalyptusではじめるプライベートクラウド構築 |
◆第1章:クラウドコンピューティングとクラウド基盤
第1章ではクラウドの概要や利用事例などについて説明しています。Eucalyptusのことに触れる前にクラウドコンピューティングおよびプライベートクラウドについて理解できることを目的として書きました。
1.1 クラウドコンピューティング
クラウドコンピューティングとその背景にあるクラウドと呼ばれる概念について説明しています。
1.2 クラウド基盤
クラウド基盤と呼ばれるIaaSのうち、一般利用可能なパブリッククラウドとクラウド基盤構築ソフトウェアであるプライベートクラウドについて説明しています。
1.3 クラウド基盤の利用事例
IaaS型のクラウドを利用する例について説明しています。
1.4 クラウド市場のトレンド
クラウド市場におけるトレンドなどについて説明しています。
◆第2章:Eucalyptus
第2章ではEucalyptusの機能や構成について説明しています。本連載の第1回の前半部分とリンクします。Eucalyptusのアーキテクチャについて理解し、実際に環境を構築する際に検討すべき材料を理解することを目的として書きました。
2.1 Eucalyptusの機能とコンポーネント
Eucalyptusの概要から始まり、Eucalyptusにはどのような機能がありそれらの機能を実現するためにどのようなコンポーネントが提供されているのかを説明しています。
2.2 Eucalyptusの動作環境
Eucalyptusが動作するディストリビューションおよびハイパーバイザの説明と、動作させるために必要なハードウェアについて説明しています。
2.3 Eucalyptusの構成例
Eucalyptusのネットワークモード毎にどのような構成例があるのかを説明しています。
2.4 Eucalyptusのディレクトリ構造
Eucalyptusが使用するディレクトリについて説明しています。
第2章ではEucalyptusの概要説明から始まり、どのような機能があり、それらの機能を実現するためにどのようなコンポーネントが提供されているのかを記述しています。
◆第3章:インストールと設定
第3章ではEucalyptusのインストール方法や設定について説明しています。本連載の第1回の後半部分と第2回の前半部分および第6回とリンクします。実際にEucalyptusをインストールする際の参考資料となることを目的として書きました。
3.1 Eucalyptusのインストール
CentOSにEucalyptusをインストールする方法について説明しています。
3.2 Eucalyptusの設定
各ネットワークモード毎の構成および設定について説明しています。
3.3 Euca2oolsのインストール
Euca2oolsをインストールする方法について説明しています。
3.4 Ubuntu Enterprise Cloud
Ubuntu Enterprise Cloudをインストールする方法について説明しています。
3.5 ソースコードからのインストール
Eucalyptus社が配布しているバイナリではなく、自分でソースコードからビルドする方法とデプロイする方法について説明しています。
◆第4章:一般的な利用方法
第4章では実際にEucalyptusを利用する方法として、ユーザの作成方法やCUIツールおよびGUIツールによる利用方法について説明します。本連載の第2回の後半~第4回とリンクします。Eucalyptusを利用する際の参考資料となることを目的として書きました。
4.1 ユーザーの作成
CUIによる管理ツールでユーザを作る方法と、Web管理画面からユーザを作る方法について説明しています。
4.2 CUIでの利用方法
Euca2oolsの各種コマンドのうち主に利用するコマンドについて実際の利用方法を説明しています。加えてEuca2oolsの各コマンドの概要も説明しています。
4.3 GUIでの利用方法
Eucalyptusで利用可能なGUIツールとしてHybridfox、tAWS、Cloud42、Cyberduckについて説明しています。
◆第5章:Programmable Infrastructure
第5章ではIaaS型クラウドの重要な要素であるProgrammable Infrastructureについて説明しています。本連載の第7回~第12回とリンクします。筆者がIaaSの醍醐味のひとつであると考えているProgrammable Infrastructureを行なう際に参考資料となることを目的として書きました。
5.1 APIの概要
Amazon EC2/S3 APIのQuery APIとSOAP APIについて概要を説明しています。
5.2 EC2 APIとライブラリ
Eucalyptusに対してもEC2 APIが利用できるライブラリであるboto、RightAws、Typicaの利用方法について説明しています。
5.3 S3 APIとライブラリ
Eucalyptusに対してもS3 APIが利用できるライブラリであるboto、RightAws、JetS3tの利用方法について説明しています。
5.4 メタデータAPI
Amazon EC2/S3 APIとはアーキテクチャの異なりますが、Amazon EC2に対してProgrammable Infrastructureを行なう際に不可欠な機能であるメタデータについて、Eucalyptusでの利用方法とサンプルについて説明しています。
◆第6章:マシンイメージ
第6章では自分で仮想マシンイメージを作る方法と、Amazon EC2で提供されているマシンイメージをEucalyptusで利用する方法について説明しています。Eucalyptusを実用的なIaaS環境とする際に参考となることを目的として書きました。
6.1 マシンイメージの作成
Eucalyptusの環境がCentOS + Xenである場合とUbuntu + KVMである場合のマシンイメージの作り方を説明しています。
6.2 Amazon EC2のマシンイメージの変換
Amazon EC2のマシンイメージをEucalyptusで利用する方法について説明しています。
◆第7章:ハイブリッドクラウド
第7章ではEucalyptusを用いたハイブリッドクラウドの実現方法の例と、ハイブリッドクラウドに利用できる各種ソフトウェアについて紹介しています。ハイブリッドクラウドを構成する際に参考となることを目的として書きました。
7.1 ハイブリッドクラウドの実現方法
Amazon EC2とEucalyptusでハイブリッドクラウドを実現するうえで気に留めておくべき点を説明しています。
7.2 ハイブリッドクラウドの構成例
ハイブリッドクラウドの構成例を説明しています。
7.3 ハイブリッドクラウドに適用できるソフトウェア
ハイブリッドクラウド構成下で利用できるソフトウェアについて紹介しています。
◆第8章:運用とトラブルシューティング
第8章ではEucalyptusの運用とトラブルシューティングについて説明しています。筆者らが今までで得た経験を基にし、Eucalyptusを運用をするうえでの必要な情報や今までに遭遇した数々のトラブルのなかで遭遇頻度の高いトラブルを書くことで、読者がEucalyptusを導入した場合に参考となることを目的として書きました。
8.1 運用
Eucalyptusを運用するうえで留意しておく必要があるユーザデータとバックアップについて説明しています。
8.2 監視
Eucalyptusを運用するうえで必要になる運用監視ソフトウェアとして、Gangliaの導入方法や利用方法について説明しています。
8.3 トラブルシューティング
Eucalyptusで発生したトラブルを調査・解決する際に必要となる情報について説明しています。
◆付録A:Eucalyptusの設定値
付録AではWeb管理画面の各設定項目の説明と設定ファイル「eucalyptus.conf」の設定値について、リファレンスとして説明しています。
◆付録B:Euca2oolsのコマンドおよびEucalyptusの管理コマンド
付録BではEuca2oolsの各コマンドと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を操作して遊んでいます。 |