大学教育系ネットワークにおける
クラウドコンピューティング
木 村 昌 史
Cloud Computing for Educational Network in Universities
Masashi Kimura
要約
クラウドコンピューティングはWeb2.0 に続く次世代インターネットとしてのネットワークイ ンフラの新しい潮流となってきている。これはネットワークサーバーやストレージなど,あまり 多くのインフラを導入する余地がない,あるいはシステム管理能力がない組織に対しても,多く のリソ-スを前提としたサービスを提供することを可能にする。大学の教育系および研究系ネッ トワークでは,クラウドコンピューティングによってリソースの連携が確立され,教育コンテン ツの相互の共有を図ることができるようになる。またそれは独立していたサーバーやストレージ などのシームレスな接続によって,教育環境を相互に平滑化へと導くことにもなる。本論文では 大学の教育用ネットワークを拡張する目的で,クラウドコンピューティングの現状と教育用ミニ クラウドと言うべきシステムのための基盤技術について報告する。キーワード:
クラウドコンピューティング,リソース,教育環境,ミニクラウドKeywords:
Cloud Computing, resource, educational environment, mini-cloud1 はじめに
いわゆるWeb2.0 と名付けられたネットワークの発展段階は,インターネット普及の第2ステー ジであると考えられる。従来のデスクトップ型のソフトウェアから,クライアント/サーバー型 のWeb サービスによって PC の処理のほとんどのことを実行できるようになった。これを SaaS (Software as a Service)と呼び,Web2.0 の標準的な姿となった。これは大学の教育・研究におい てもコンピュータやネットワーク利用に大きなスタイルの変革をもたらしつつある。 典型的な例としては,日本大学が 2007 年度から導入しているGoogle のサービスが挙げられる。 主要なWeb サービスはメールの Gmail のアカウントから利用可能となり,ワードプロセッサや表 計算といったリテラシー教育のツールとしては定番のものでさえ,Google ドキュメントという形 でWeb 上で実行されブラウザから可能なものとなっている。すなわちソフトウェアは手元の PCであるクライアントにインストールする必要がないものとなっている。さらには個人のデータ ファイルやルーカルネットワークの中のデータさえも,メールのようにGoogle のネットワークの 中に保存可能となっている。これは自分のデータは手元に保管しなければならないという既成概 念さえ変更するものである。
また独自にWeb2.0 の構成要素といえる CGM(Consumer Generated Media)であるブログ,SNS, Wiki を教育ネットワーク内に導入した例を前論文[3]で示した。CGM の運用には授業単位, 科目単位あるいは教室単位に独自にWeb サーバーを維持管理する必要がある。規模が大きくなる ほど教員やスタッフの管理,運営面での負担が大きくなり,教育内容以前に適用規模には限界が 見えることになる。また導入されるサーバーの性能,容量などによっても,サービスを適用でき る範囲や人数が限られることになる。 本研究の目的は,インターネット普及の第3ステージと目されるクラウドコンピューティング (以下,本文中ではクラウドと略称)の教育ネットワーク環境への導入によって,従来のように 個別に教育用サーバーやネットワークを運用してきた負担を軽減し,かつより大きなリソースを 活用したシステムの開発が可能になること,また内部や外部の教育系サーバー同士の連携と, Amazon や Google のような大手クラウドベンダー1)と連携をしたクラウドが可能になり,大きな 効果が期待できるようになることを技術的な方法と実験システムの構築で示すことにある。本論 文では,第2章で大手ベンダーによるクラウドサービスの現状を,第3章ではそれらを支えてい る基盤技術を,そして第4章ではそれらを踏まえた上でクラウドの教育ネットワークへの適用計 画の例を示すことにする。
2 クラウドコンピューティングの現状
2.1 SaaS からクラウドコンピューティングへ2007 年度より日本大学にはGoogle のサービス(Google Apps)が導入されている。国内の大学 の教育ネットワーク環境もSaaS 化へと向かう,あるいは Web2.0 化していく象徴的な出来事とし て,社会的にも大きな反響を持って受けとめられている。実際それ以降,Google,Microsoft,Yaho! などの大手ベンダーと多くの大学との提携の例が公表されるようになっている2)。 すでにWeb2.0 からクラウドの時代へと急速に向かいつつあるのには,いくつかの理由がある。 1つには増え続けるネットワークへのアクセスに対して,組織のサーバーの処理能力が追いつか なくなってきていることや,セキュリティ対策の強化の必要性も増していることから,組織にとっ てはますますネットワーク運用の負担が増しつつあることである。 またSaaS の時代になって,多くのソフトウェアが従来型のデスクトップでの処理から,Web サー ビスへと移行していることである。ますますWeb への依存度が高くなり,Web サーバーにも大き な処理能力が必要とされてきている。そうなると,大きな処理能力を持つ外部のWeb サービスを 利用した方が,サーバーの運用も個々のクライアントのソフトウェアのアップデートの必要もな くなる。Gmail に代表される Google Apps は Web サービスの代表例であった。
一方,24 時間稼動するインターネットサーバー数の増大による電力需要の増加の抑制と CO2 排出の削減のためにも,増大し続ける世界のサーバーを統合して物理的台数を減少させようとす る,技術分野から環境問題に取り組むグリーンIT の考え方がある。クラウドの推進は,このサー バー統合を実現する方法としても,グリーンIT の考え方にも合致することになる。
Web2.0 と同様,クラウドにも明確な定義というものはないが,進化しつつある SaaS を包含す る概念となる。SaaS が主に Web アプリケーションアだけのサービスとするならば,OS レベルか ら含んだプラットフォームとしての環境のサービスという観点では,PaaS3)(Platform as a Service) が最もクラウドサービスに近いものである。これらをTCP/IP に似せてレイヤーで分類すれば, 以下のようになる(表1)4)。
・SaaS Web 中心の Web アプリケーションを提供 ・DaaS データベース機能を提供 ・HaaS ディスクストレージを提供 ・PaaS サーバーの OS や BIOS などの環境を提供 ・flexible infrastructure 仮想化サーバー群,ストレージなどで柔軟に構成 ・IT foundation LAN や通信回線などの通常の意味でのネットワーク環境 表1 クラウドのレイヤー SaaS DaaS HaaS
PaaS flexible infrastructure IT foundation 出所:4)を参考に筆者が作成 これまでのクライアント/サーバーのイメージでは物理的に LAN の単位でネットワーク接続 からアプリケーションまで考えたTCP/IP のレイヤーが基本である。それらはすべてクラウドで は「IT の基礎」の中に含まれてしまっていると考えてよいだろう。クラウドのユーザには見えな くてもよい部分である。その上に広大なインターネット上のサーバー群を仮想化して構成される 「柔軟なインフラ」のレイヤーがある。 Amazon などから提供されるクラウドサービスでは,この柔軟なインフラの上にユーザが OS か らWeb アプリケーションまでを自由に構築できる。これはクラウド上での開発者に提供されるレ イヤーといってもよい。ただし LAN 上のサーバーとは異なって,より広大なリソースを使った 環境構築,アプリケーション開発を行うことができる。これがPaaS のレイヤーとなる。そしてそ の上のレイヤーに構成されるのが,Web2.0 以来標準となった SaaS を含むサービスであり,実質 的にはクラウドのアプリケーションレイヤーとなる。 2.2 グリッドコンピューティングとの違い クラウドコンピューティングと似た概念として,グリッドコンピューティング(以下,グリッ ド)がある。グリッドはもともと,大規模な科学技術計算において必ずしも集中管理されていな いコンピュータをネットワークを通じてジョブを分散し,その結果を集積して全体の処理を遂行 しようとするものである。これらはそれぞれ参加するコンピュータ個別の条件やネットワーク環 境には関知する必要がなく,共通のプロトコルとインターフェースさえ可能であれば実現できる ものである。1つの問題を処理させるために,ネットワークを通じた複数のコンピュータを,あ たかも大規模な1つのコンピュータとみなせることになる。
グリッドではハードウェアやOS が異なり,統一的な管理がなされていないために,現実的に は,ジョブの分散,スケジューリングなどに困難も多く,なかなかスムースに運用ができないな どの問題も多い。グリッドはスーパーコンピューティングのように,ヘテロなコンピュータ群を 単一の目的に使う。すなわち単一アプリケーションが共通に動作する。またグリッドは技術計算 などの特定目的の計算処理などが中心になりやすい。 クラウドは,コンピュータ間の連携としてはグリッドと技術的には大きな違いはない。しかし 複数のサーバーが事実上集中管理されるシステムで,後述するサーバー仮想化によって均一化さ れたシステムとなり,管理も容易でスケーラブルなシステムとして期待できる。 クラウドは,複数のコンピュータが連携する意味ではグリッドと同様だが,たとえ物理的マシ ンはヘテロなコンピュータ群であっても,仮想化によってホモジニアスな環境を作り出すことが できる。複数のサーバーの連携により広汎な目的の処理を行わせることができる点で,グリッド よりも適用範囲は広い。 2.3 Amazon EC2 のクラウドサービス
Amazon は Amazon Web Services(AWS)という名称のクラウドサービスを 2006 年から開始して いる。インターネット上の仮想化されたサーバーをレンタルする Amazon Elastic Compute Cloud (Amazon EC2)[19]と,ストレージである Amazon Simple Storage Service(Amazon S3)[20]の 2つのサービスが中心である。現在の料金は初期費用不要で,EC2 が1時間あたり$0.1,S3 が 1GB あたり1ヶ月で$0.15 と格安となっている。仮想化サーバーは実行している時だけ存在する インスタンスであるため,停止していると消滅して課金もかからない完全な従量制となっている。 しかも単独のサーバーでは得られないCPU やメモリ領域の使用が可能になるため,小さな組織 でも大きな Web アプリケーションが開発できるメリットがある。実際Linden Lab 社の Second Life5) の一部にも利用されているとされる。特に資金が乏しい中小の企業やベンチャー起業の上では Amazon EC2 が前提条件にさえなってきている。
実際ユーザ側にとっては,サーバー運用に煩わされることなく,EC2 と S3 によって,Amazon で稼動している大規模かつスケーラブルなインフラを利用することができるようになる。
2.4 Google App Engine のクラウドサービス
Google AppEngine は Google が 2008 年4月から開始したクラウドサービスである[8]。現在の ところGoogle のインフラを無償で利用できるサービスとなっている。この上で Web アプリケー ションを開発するには,多くのGoogle サービスがそうであるあるように,現状ではプログラミン グ言語のPython6)で行なわなければならない制約がある。またストレージ容量が 500MB まで,公 開アプリケーション数が 10 個までの制限も付けられている。 Google のアカウントがあれば,クライアントに Python の実行環境を入れだけで開発環境が整う ことになる。図1はApp Engine から割り当てられたサーバーの運用状況をモニターしたりログを 見ることができる画面である。新規のWeb アプリケーションの試験的開発に利用はできるが,ま だこれまでのところ,既存のデータベースなどをGoogle App Engine では動作させることはできな いので,既存のWeb アプリケーションを移行させることは現状では難しい。移行を実現するには, 他のクラウドあるいはサイトと連携をしてデータベース部分を依存する方法などが考えられる。
図1 Google App Engine のモニター 注:稼働状況,リソース,ログなどが確認できる
3 クラウドコンピューティングの基盤技術
3.1 サーバー仮想化 クラウドを構成する前提として,サーバー仮想化が重要となる。一般的に運用サーバーはシン プルな構成とするべきである。仮にDNS,Web,メールの3種類のサーバーを運用するとすれば, 1台に複数のサーバー機能を持たせるべきではなく,3台のサーバーとするべきであろう。なぜ なら1つのサーバーが障害を起こしたとき,他のサーバーも影響を受けてダウンするリスクが高 くなるからである。しかし今度は運用するべき物理的なサーバー数が増えることになり,運用上 も負担が高くなる。 そこでサーバー仮想化の意味としては,個々のサーバー機能をOS や環境の部分も含めて独立 化させることにより,互いのサーバーが影響させないことである。これは,たとえ1台に1つの サーバーしか仮想化しないとしても,サーバーのバックアップの容易さや可搬性を高めることか ら意味をなすことになる。 仮想化には大きく分けると,物理サーバー1台を複数サーバーに見せる「1対多」と,物理サー バー複数台を1つのサーバーに見せる「多対1」がある(図2)。前者は比較的リソースの大きい 物理的マシンに有効である。後者はリソースの小さい比較的非力なサーバーが複数集まって,1 つのサーバーに見せかける方法である。これはクラスター化でありグリッドとも共通するやり方である。実際の仮想化としては,これらを混合した方法で行うと柔軟なクラスター化が可能とな り,「多対多」の連携が実現できる。 仮想化ソフトウェアとしてはいくつか存在する。特定のOS をベースにする「1対多」に向い ているものとしてはVMware がある。ここでは「多対多」の柔軟な構成を前提にして,仮想化ソ フトウェアXen7)を用いている。実際に複数の既存の教育用サーバー群を仮想化して連携を広げて いくにはXen が向いていると考えられる。
virtual servers
real server
virtualization
real servers
virtualization
virtual server/storage
図2 サーバー仮想化の方法 左:1対多の仮想化 右:多対1の仮想化8) 出所:[9]を参考に筆者が作成 3.2 分散ファイルシステム (1) Google の基盤技術 Google の莫大なスケーラブルなネットワークサービスの基盤技術とは,大規模分散ファイルシ ステムであるGoogle File System(GFS),大規模分散計算フレームワークである MapReduce,大規 模分散データベースであるBigTable および分散ロックサービスである Chubby とされている9)。 GFS は大量のデータを多くのサーバーに分散して保存する分散システムである[13]。ちょう ど RAID のように冗長化して保存するので,一部のサーバーが故障したりまたはディスクがク ラッシュしてもファイルが失われないようにすることができる。また,単一のサーバーだけでは 保存しきれないような大量のデータでも,クラウド内に分散することによって保存が可能になる。 Google では世界中に数多くのサーバーが分散して存在していて,必ず一定の割合でサーバーがク ラッシュしても影響が生じないような巨大なシステムの構成が可能となっている。1つ1つの サーバーの性能やリソースの量は決して高くなくとも,集合体によって安定なシステムを構成す ることは,クラウドコンピューティングの基盤技術の1つである。また,MapReduce は大規模なデータを多くのサーバーで並列処理するための分散計算フレーム ワークである[14]。そのプロセスはMap フェーズと Reduce フェーズからなる。Map フェーズで は情報を分解し,Reduce フェーズでは Map から抽出された情報の計算処理を行う。複数サーバー に分割されたそれぞれのフェーズは,独立に並列処理されるので高速化が図られる。MapReduce は主としてGFS の入出力を介して実行される。 BigTable は GFS 上に構成される分散型データベースである[15]。大規模データを分割して保存 する仕組であるが,通常のリレーショナルデータベース(RDB)とは構造が異なる。 なお,Chubby は複数のサーバーからのアクセスの排他制御を行うものとなっている[16]。 (2) オープンソソースHadoop
Hadoop は Google の GFS と MapReduce に対応するオープンソースソフトウェアである 10)。 Hadoop Distributed File System(HDFS)と Hadoop MapReduce Framework から構成されている。現在 はオープンソースソフトウェア団体Apache のプロジェクトとなっている。Google の技術との対 応は表2のようになる。
表2 Google 基盤技術とオープンソースの対応
MapReduce Bigtable Hadoop MapReduce hBase
GFS HDFS Google オープンソース 出所:10)の解析資料 Haddop が採用されているプロジェクトには,最近発表されている以下のようなものが含まれる。 ・Amazon EC2 ・IBM Bluehouse11)
・Google and IBM University Initiative ・Yahoo! Zimbra12)
すなわちGoogle 本体のサービス以外のクラウドのサービスや実験に,現在ほとんど使われてい る実績がある。この実績からも,ここで問題とする教育用クラウドを構築するベースとなる技術 としてもHadoop を採用することにする。
なおHadoop および MapReduce は Java で記述されており,開発も基本的には Java が必要となる。 hBase は BigTable に対応するオープンソースソフトウェアであり,同様に Java で記述されている。 HDFS 上にデータベースのデータはクラウド上で分割して保存されることになる。
4 教育系ネットワークにおけるクラウドコンピューティング
4.1 サーバー仮想化による教育環境
サーバー仮想化によって,教育サーバーの環境ごとの移転が容易にできるようになる。これま ではハードウェア,ソフトウェアの環境の違いから,環境ごとの移転は難しいことだったが,仮
想化によって実質的にはコピーするだけのことになる。教育環境をそのままバックアップしたり, あるいは同一環境の複製が容易になることが予想される。特に基礎教育の環境はそれほど大きく 変わることはないので,教育環境の均質化,標準化を図ることも可能になる。その環境は個別に 保存できるので,授業ごとの環境を作っておき,授業の際だけ仮想サーバーを動作させておくこ ともできるようになる。異なる授業内容ごとにサーバー設定をカスタマイズしても,互いに影響 を与えることもない。 4.2 ベンダー系クラウドサービスの活用 クラウド市場において,教育市場も1つの大きなターゲットと見られている。実際すでに Google と IBM の提携によって,ワシントン大学,カーネギーメロン大学やマサチューセッツ工科 大学,スタンフォード大学,カリフォルニア大学バークレー校,メリーランド大学などが,Google のクラウドの提供により並列コンピューティングの教育に提供している[10][12]。またHP と Intel による提携や,また Yahoo!も Zimbra のサービスによって多くの大学に,メール中心としてク ラウドの提供を始めている。
本学との関係でいえば,教育環境に導入されているGoogle Apps がすでにクラウドサービスの 原型になっているといえる。ただGoogle の提供するアプリケーションとしての Web サービスを 利用するだけになっているが,これにGoogle App Engine によって,クラウド上に独自の Web サー ビスを開発して加えていくことが可能になる。現在は使用できる言語はPython だけだが,今後他 の言語の搭載も増えると期待されるので,既存のLAMP13)環境で構成していた CGM などもクラ ウド上に構成できるようになるだろう。 Amazon のサービスに関しては,すでにある程度の自由な開発が可能となっており,有償では あるものの自前のサーバーよりもはるかに大きなリソースの上で開発を行うことができ,また運 用面でもサーバーの保守やセキュリティなどのシステム管理からの負担から解放される。小さな 運用組織でもクラウドの特性を生かして,大きな組織と同様の教育環境を得ることができる。
RightScale14)のサービスは,Amozon EC2 の上での開発ツールであり,もともと大学のプログラ ミング教育のために開発されたものが商用化されたサービスである。これはAmazon EC2 本来の コマンドベースでの操作ばかりでなく,Web からのクラウドの操作を容易にしたものである(図 3)。RightScale サービスを利用すれば,一連のパッケージ化したサーバー群を選択してクラウド 上に自由にサーバーインスタンスを発生させたり削除したりすることができる。 このサービスは,サーバー機能がパッケージ化されていて,それらをカスタマイズすることに より目的のサーバーを作り出すことができる点で,1からクラウドの開発をする必要もなく,教 育環境としては負担が少なくなる。この例では,すでにサーバーパッケージとしてLAMP が雛形 として用意されていて,これをカスタマイズしながら,教育研究用のWeb アプリケーションを開 発できるようになっている。
図3 Amazon EC2 クラウドにおける LAMP の制御
注:RightScale のツールによる仮想サーバーの生成消滅の制御。LAMP のインスタンスが booting 状態になって いることを示す。 4.3 教育系ミニクラウドの構築入 Amazon や Google のような一般向けのクラウドサービスも拡大してきているが,教育環境とし ては専用のクラウドも必要であると考える。これまで教育あるいは研究向けに個別に運用されて いた連携したサーバー群のクラウドとしての移行が考えられる。 クラウド化によって,個別のサーバーではリソースやコンテンツが不足していたものが連携に よって,サーバー性能の平均化,リソースの大容量の実現,ひいては教育環境の均一化が期待で き,また教材の共有化,共同開発の環境が整うことになる。また,連携の規模が大きくなるほど, 仮に個別のサーバーに障害が起きても,直接的にはクライアントは影響を受けることが避けられ ることになり安全性は増す。クラウドの中では,単体のサーバー同士ではそれほど能力的には大 差ない。クラウドは,個々PC サーバーでの障害などは当然起こりうることを前提として,単体で はなくシステム全体として信頼性の高い,高機能のサービスを実現できる仕組みでもある。 したがって,教室,研究室などの遊休のPC を仮想化によってサーバークラスターに転換して, 新たなクラウドを形成することが可能であることを意味することになる。 教育系サーバーのクラウド化の範囲としては,教室間,学科間,学部間,大学間など,連携の 目的によって考えられる。内部サーバー間や外部サーバー間によっての違いはあるが,基本的に クラウドの形成するための基盤となる技術は同じである。 ここではこうした目的のために,いわば教育用ミニクラウドの構築を進めている。実質的に公 開サーバーと同質の内部サーバーFedora 8 サーバーと CentOS 5.2 サーバーの Xen による仮想化と, Hadoop によるサーバー連携の実験を行った。
ンストールしていないが,ともに管理用OS(Domain-0)となっている。Hadoop はすべて Java で 記述されているので,マスター,スレーブともに標準で Java が動作する環境を構成している。 Hadoop は現時点での安定版(2008 年8月版)を用いている。マスター1 台に対して,多数のスレー ブを設置することができる。制御はマスターから複数のスレーブに対して,スクリプトによって 一括して自動的に行うことができる。したがってHadoop の起動,停止などはマスターだけで行 えばよい。ここでは実験システムとして,マスター1つ,スレーブ1つだけの構成を表示するも のとする。ただし,ここではマスターである CentOS サーバーにはスレーブも兼ねさせているの で,事実上マスター1つにスレーブ2つの構成となっている。スケールアップには同等のスレー ブを単純に追加していくだけでよい。 表 3-1 Hadoop 実験サーバーの構成 構成 マスター スレーブ OS CentOS 5.2 Fedora 8 カーネル 2.6.18-92.1.22.el5xen 2.6.21.7-2.fc8xen 仮想化 Domain-0 Domain-0 Java jdk-1.6.0_04-fcs jdk-1.6.0_11-fcs Hadoop hadoop-0.17.2.1 hadoop-0.17.2.1 CPU Celeron 1.80GHz Celeron 1.80GHz NIC Realtek RTL-8139 ADMtek NC100 メモリ 512MB 512MB HDD 容量 40GB 40GB
出所:筆者作成
Hadoop は JobTracker,TaskTracker,NameNode,DataNode という4つのサーバー機能から構成 され,マスターではJobTracker と NameNode,スレーブでは TaskTracker と DataNode が起動してい ることがわかる(表 3-2)。
NameNode と DataNode は分散ファイルシステム機能を受け持ち,JobTracker と TaskTracker は MapReduce 処理を行う。
NameNode はファイルへの権限等のメタデータを管理するサーバーであり,各スレーブ上にブ ロック化して分割されたファイルの情報を保持している。クライアントが1つのファイルを読み 出す際には,まずNameNode に問い合わせられ,アクセス権がある場合には断片化されたファイ ルのブロックが保持されているDataNode の位置が取得される。また,NameNode は DataNode の ブロックの構成情報を更新する。
なお,SecondaryNameNode は定期的に NameNode からログを取得するもので,仮に NameNode がダウンしても,全体のログは保持されることになる。NameNode そのものの代替機能は Hadoop には用意されていない。
表 3-2 Hadoop のサーバー起動のプロセス マスター側プロセス スレーブ側プロセス [hadoop1@cent5 hadoop]$ jps 27643 DataNode 27958 TaskTracker 27822 JobTracker 27747 SecondaryNameNode 27541 NameNode [hadoop1@fed8 hadoop]$ jps 30274 TaskTracker 30212 DataNode 注:マスターはスレーブ兼用に設定 出所:筆者作成
Task は MapReduce 処理,すなわち MapTask とは情報の分解部分,ReduceTask とは情報の合成部 分からなっている。プログラムを分散処理するベースとなっている。クライアントからJob を投 入すると,マスターのJobTracker によって処理され,スレーブの TaskTracker に Task が分配される。 TaskTracker はそれぞれの Task を処理する。ReduceTask が完成すると Job が完成することになる。 図4はマスターから見たmap(分解)と reduce(合成)の実際のプログラム処理の流れの出力例 を示している。
09/01/25 01:35:52 INFO mapred.FileInputFormat: Total input paths to process : 1 09/01/25 01:35:55 INFO mapred.JobClient: Running job: job_200901250125_0001 09/01/25 01:35:57 INFO mapred.JobClient: map 0% reduce 0%
09/01/25 01:41:47 INFO mapred.JobClient: map 50% reduce 0% 09/01/25 01:42:01 INFO mapred.JobClient: map 50% reduce 16% 09/01/25 01:43:42 INFO mapred.JobClient: map 100% reduce 16% 09/01/25 01:43:56 INFO mapred.JobClient: map 100% reduce 33% 09/01/25 01:44:04 INFO mapred.JobClient: map 100% reduce 100%
09/01/25 01:44:05 INFO mapred.JobClient: Job complete: job_200901250125_0001 図4 MapReduce 処理の流れの出力例 出所:筆者作成 大規模なファイルを対象にした場合,スレーブ数が増すほど処理のパフォーマンスが上がるこ とが期待されるが,今回の実験ではそこまでのサーバー数のスケーラビティを得るには至ってい ない。まず稼動している内部サーバー同士でスレーブ数を増やし,次の段階で接続可能な外部サー バーも取り込んでいく予定である。 これらの結果をもとに,現在管理権限あるいは運用権限の与えられている2大学間のWeb サー バーと1企業の教育用途のサーバーを用いて,教育系サーバー間のミニクラウドを構築中であ る15)。図5はその概念図である。大学のサーバーは本来の教育用サーバーとは別管理で稼動して いるため,実験用途として運用することができる。企業教育系サーバーは,直接サービスを提供 するWeb サーバーとしてだけでなく,全体のサーバーを統括管理するためのマスターサーバーと
しての役割を持たせるため,管理権限の大きいサーバーとなっている。
また,外部のクラウドサービスとさらに連携を拡大していくことが,今後の教育系ネットワー クのクラウド化の方向性となる。たとえば学内のローカルのクラウドを形成しながら,外部の他 大学や他専門分野のクラウドと連携させることが考えられるようになるだろう。
さらに今後は,Amazon EC2 や Google App Engene などのベンダー系クラウドのサービスの進展 を見ながら,これらとの連携も行っていく予定である。 企業教育系 サーバー (CentOS) B大学教育系 サーバー (Ubuntu Linux) A大学教育系 サーバー (RHEL) Amazon Cloud Google Cloud 教育系ミニクラウド ベンダー系クラウド 図5 教育系ミニクラウドの構成
注:RHEL:Redhat Enterprize Linux16)
出所:筆者作成
5 おわりに
クラウドコンピューティング時代における教育系ネットワーク環境に導入する可能性として, Amazon や Google などのベンダーの提供するクラウドサービスの活用と,大学内で個別に運用さ れている教育系サーバーの連携によるミニクラウドを構成するための試みと基盤技術について報 告した。既存システムからクラウドへの移行には,さまざまな問題点が生じることが予想される が,実現すれば教育コンテンツの共有はもとより,大きなリソースの活用,運用面での負担軽減 によって,複数の教育ネットワーク環境の平準化,平均化を図ることができることを指摘しておきたい。今後はさらにクラウドの参加規模を広げ,運用面でのフィードバックも得たいと考えて いる。
謝辞
本研究は商学部情報科学研究所共同研究「IT 利用教育の効果と課題」の一部として行われたも のである。同研究会代表者の青木武典先生,山添謙先生には助言と議論を頂きましたことを感謝 いたします。 注 1) 最近の米国の統計では,Amazon がベンダーの中では他を引き離して最も人気の高いクラウドサービスで ある。2) IBM と Google の例は[12],また HP,Intel,Yahoo!とイリノイ大学,独カールスルーエ工科大学などと
の提携の例もある。http://internet.watch.impress.co.jp/cda/news/2008/07/30/20422.html
3) PaaS を Web2.0からの発展の意味で Web2.5と呼ぶ向きもあるが,それほど通用している用語とはいえな
い。
4) “The Future of Cloud”,Web2.0 Summit 2008 における Padmasree Warrior の講演記事。 http://news.cnet.com/8301-1001_3-10086111-92.html
5) Second Life は3D オンライン仮想世界を構築できるサービスである。また以下の Web サイトに Amazon
サービスの利用についての記述が見られる。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070223/263147/ http://wiki.secondlife.com/wiki/Webmap_API
6) Python は Web アプリケーションの開発に向いた,Lightweight Language(LL)の一種である。
7) Xen はハイパーバイザ的な仮想化ソフトであり,OS より下位のレベルで仮想マシンを動作させる。
8) 多対1の方法はグリッドによるクラスター化とほぼ同等である。
9) Google のオリジナルの文献[13]-[16],解説は[5]が詳しい。
10) NTT レゾナント社と Preferred Infrastructure 社による GFS と Hadoop の比較の解析資料が公開されている。 http://preferred.jp/pub/hadoop.html
11) Bluehouse は IBM が2008年10月から開始したクラウド戦略の一環としてのサービスである。 https://bluehouse.lotus.com/webfront/front/webfront/
12) Yahoo!Zimbra は2008年10月から教育機関,大学へのサービスを Zimbra Hosted for EDU として開始してい る。 http://www.zimbra.com/products/hosted_zimbra/ 13) Linux+Apache+MySQL+PHP の組み合わせによる Web アプリケーションシステムである。これについては [3]で報告している。 14) RightScale と Amazon の関係は[11]の記事による。 15) 現在のところ日本大学のサーバーは含まれてはいない。
16) Redhat Enterprize Linux は有償 Linux であり,多くのクラウドの OS として採用されている。CentOS はオー
プンソースソフトウェアでRHEL 互換のサーバーを構成できる。
参考文献
[1]Rajkumar Buyya, Chee Shin Yeo, Srikumar Venugopal, Market-Oriented Cloud Computing: Vision, Hype, and Reality for Delivering IT Services as Computing Utilities, Proceedings of the 10th IEEE International Conference on High Performance Computing and Communications (2008).
[2]Robert L. Grossman, Yunhong Gu, Michael Sabala, Wanzhi Zhang , Compute and Storage Clouds Using Wide Area High Performance Networks, preprint LANL (2008).
[3]木村昌史,「大学教育系ネットワークにおけるCGM」,『情報科学研究』,第 17 号,日本大学商学部,
[4]ニコラス・G・カー,村上 彩(翻訳),『クラウド化する世界』,翔泳社,2008 年 [5]西田 圭介,『Google を支える技術』,技術評論社,2008 年.
[6]安井真伸 他,『サーバ/インフラを支える技術』,技術評論社,2008 年.
[7]Toby Segaran,當山仁健(翻訳),『集合知プログラミング』,オライリージャパン,2008 年 [8]Eugene Ciurana, Developing With Google App Engine,Apress(2008).
[9]宮本久仁男,大島孝子,平初,長谷川猛,『Xen 徹底入門』,翔泳社,2008 年
[10]鈴木康裕,浦本直彦,「クラウド・コンピューティング」,『ProVISION』No.58,IBM,2008 年
[11]中田敦,「マルチクラウドという選択肢」,エンタープライズ・クラウド,日経BP ネット,2008 年
http://itpro.nikkeibp.co.jp/article/OPINION/20080922/315232/ [12]Google,IBM,Promote‘cloud’computing at universities,InfoWorld(2007).
http://www.infoworld.com/article/07/10/08/Google-IBM-promote-cloud-computing-at-universities_1.html Google and IBM Annouce University Initiative to Address Internet Scale Computing Challenges(2007).
http://www.ibm.com/press/us/en/pressrelease/22414.wss
[13]Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, The Google File System, 19th ACM Symposium on Operating Systems Principles(2003).
http://labs.google.com/papers/gfs.html
[14]Jeffrey Dean, Sanjay Ghemawat, MapReduce: Simplified Data Processing on Large Clusters Sixth Symposium on Operating System Design and Implementation(2004).
http://labs.google.com/papers/mapreduce.html
[15]Jeffrey Dean, Sanjay Ghemawat etc. Bigtable: A Distributed Storage System for Structured Data, Seventh Symposium on Operating System Design and Implementation(2006).
http://labs.google.com/papers/bigtable.html
[16]Mike Burrows, The Chubby lock service for loosely-coupled distributed systems, Seventh Symposium on Operating System Design and Implementation(2006).
http://labs.google.com/papers/chubby.html
[17]Computer Laboratory, University of Cambridge, Xen virtual machine monitor(2008). http://www.cl.cam.ac.uk/research/srg/netos/xen/
[18]Hadoop Wiki, Apache Project(2008). http://wiki.apache.org/hadoop/ http://hadoop.apache.org/
http://wiki.apache.org/hadoop/AmazonEC2
[19]Amazon Elastic Compute Cloud(Amazon EC2),amazon web services(2008). http://aws.amazon.com/ec2/
[20]Amazon Simple Storage Service(Amazon S3),amazon web services(2008). http://aws.amazon.com/s3/
Summary
Cloud Computing becomes a new trend of network infrastructure as next generation of Internet continuing from Web 2.0. It enables to supply network services by a lot of resources for organizations which cannot have so much infrastructure like as network servers and storages or which do not have abilities for system management for network. The networks for education and for research in University can be established mutual relationships with their resources through Cloud Computing, and can be expected to share educational contents with each others. And we can expect that it will lead their educational environments to be flat and smooth mutually by seamless connections of independent servers and storages and so on. In this paper we report the present Cloud Computing and the basic technology of constructing so-called an educational mini-cloud system for the purpose of the enhancement of educational network in University.