Community One Westレポート

サンのクラウドは、Amazon EC2とどう違うのか？

サン・マイクロシステムズが2009年夏にも提供を開始するクラウドサービス「Sun Cloud」の概要が見えてきた。同社のクラウドサービスはOpenSolarisベースの仮想環境で、Amazon EC2/S3に相当するサービスを提供するものだ。計算リソース（OSやアプリケーションなどのソフトウェア実行環境）を提供する「Sun Cloud Compute Service」とストレージサービスの「Sun Cloud Storage Service」で構成する。

価格などまだ不明な点は多いが、技術情報は徐々に出てきている。例えばストレージサービスに関してはWebDAVやAmazon S3互換のRESTful APIでアクセスできることが明らかにされているほか、APIのドキュメントやJavaで書かれた管理コンソール、PythonやRuby向けのライブラリが公開されている。スクリプトやAPI経由でボリュームの作成・削除、スナップショットの作成などができる。

Javaで書かれた管理コンソール。クラウド上のボリュームの作成などストレージの管理ができるようだ。このほか、まだバージョンは0.2だが、Ruby、Pythonなどのスクリプトで管理できるようにライブラリも準備されている

ベータ版の期間も含めると先行するAmazonに遅れること3年。Sun Cloudは、後発として、価格、使い勝手、サービスの種類などで、どこまで差別化できるだろうか。2009年6月1日から3日間の予定で米国サンフランシスコで開催したイベント「CommunityOne West」の基調講演の内容から、サンのクラウドが目指す方向性を探ってみたい。

基調講演でクラウドについて語るサン・マイクロシステムズのシニア・バイス・プレジデント、デイブ・ダグラス氏（Dave Douglas、左）と、クラウドコンピューティングの技術責任者を務めるルー・タッカー（Lew Tucker、右）氏

20年前のグリッドをもう1度、サンにはお手の物!?

「CommunityOne West」はサンが主催する年次イベント「JavaOne」と併催される開発者向けイベントだ。JavaOneがサンの製品にフォーカスしているのに対して、CommunityOneは文字通り、コミュニティやオープンソースにフォーカスしている。

CommunityOne初日に基調講演を行ったのは、サン・マイクロシステムズのシニア・バイス・プレジデント、デイブ・ダグラス氏（Dave Douglas）。現在ダグラス氏は、サンでクラウンドコンピューティング関連のプロジェクトを担当している。言うまでもなく、クラウドは同社が取り組んでいる分野の中でも、特に強力に推進している分野だ。

Sun Cloudのデモンストレーションを行うに当たり、ステージ上のダグラス氏に加わったのは、同社でクラウドコンピューティングの技術責任者を務めるルー・タッカー氏だ。タッカー氏はCloud CTOという今風のとってつけたような肩書きを持っているが、彼にしてみれば時代が一巡したような感覚があるのかもしれない。「われわれ2人は今から20年前に、世界最速のコンピュータの前に座っていたよね。またやることになったわけだ」（タッカー氏）。サンは、HPCやグリッドコンピューティング分野への取り組みは長いので、「グリッド」の装いが変わっただけのクラウドもお手の物だと言いたげだ。

各種サーバもスイッチもドラッグ＆ドロップ

デモンストレーションはGUIを使ったユーザーインターフェイスが特に印象的だった。Webブラウザベースのネットワーク管理ツールを使い、サーバやスイッチをフリースペースに並べて矢印でつなぐだけ。それでシステムが構成できるというのだ。実際、左側ペインに用意された「Ubuntuサーバ」「OpenSolarisサーバ」「Fedoraサーバ」などをドラッグ＆ドロップする。インスタンスイメージは、単にOS別というだけでなく、Webサーバやファイアウォール、DBサーバ「MySQL」、分散キャッシュメモリ「memcached」、分散処理フレームワークの「Hadoop」、ロードバランサやリバースプロキシとして機能する「Squid」などを使うことができる。

WebブラウザベースのGUIで、ドラッグ＆ドロップによるサーバやスイッチの構成管理が可能

Hadoopクラスタでインスタンスを追加することもできる

デモンストレーションでは、インターフェイスを見せただけなので、どこまでこうした抽象化でシステムコンフィギュレーションが自動化できるかはまだ分からない。もし、「memcachedを3台追加」というような直感的なディプロイができるようになるのだとすれば、企業ユーザーにとっては革新的なサービスになりそうだ。サンでは一旦構築したシステムは同様のUIを通じて監視や管理、再構成が可能なほか、システム全体をモデル化して保存し、それを再び適用するといった使い方が可能になるとしている。

Amazon EC2でもWebブラウザベースの管理コンソール上から、OSインスタンスやストレージに対して基本的な操作が可能だ。しかし、複数のサーバを有機的に構成するのはHadoopフレームワークなど一部を除いてユーザーの手に委ねられている。Sun Cloudがもし本当に画面から期待される通りに動くのであれば（それはデモンストレーションだけでは分からないが）、各種サーバや、ネットワークアプライアンスに相当する「OSインスタンス＋サーバアプリケーション」など複数のノードを2次元の画面でつなぐことでITシステムを構築、運用ができる、一歩進んだクラウド環境になると言えそうだ。

サンは6月2日にクラウド上でのシステム構築のコンサルティングを行うサービス「Cloud Strategic Planning Service」を提供していくと発表している。基調講演での言及は最小限で、発表資料も短い。まだ内容はほとんど不明といっていいレベルだ。ただ、サンがクラウドビジネスにおいて、単にコンピューティングやストレージのリソースを提供することだけを考えているわけではない、ということは間違いないだろう。

エコシステムは立ち上がるか？

サンは、2009年3月にSun CloudのAPIをオープンにしていくと発表しているが、こうしたAPIを利用したサードパーティー製ツール、サービスがどこまで充実するかも注目だ。Amazon EC2の成功した要因の1つは、多くのスタートアップを含むIT企業が、Amazon EC2に対して（あるいはAmazon EC2上で）、さまざまなサービスを提供したことでエコシステムができたことにある。

CommunityOneの基調講演では、パートナーの取り組みに関しても紹介があった。ステージ上に登場したのはクラウド向けのデータベース「Vertica」、クラウド上のアプリケーションサーバの監視や自動スケーリングを行う「webappVM」、オンプレミスサーバからクラウドへアーカイブを保存したり、災害復帰を行う「Moonwalk」の3製品の担当者。

これらの企業は、いずれもAmazon EC2/S3に対してサービスを提供しており、Sun Cloudへの対応は自然な流れとも言える。サンが主張するようにクラウド関連のAPIが、今後どこまで標準化されるのかは未知数だが、同目的のAPIが存在するのであれば、たとえAPIの仕様が違っても、こうしたサービスをAmazon EC2、Sun Cloud の両対応とするのは難しくないだろう。基調講演終了後の展示会場でwebappVMの担当者に聞いたところ、Sun Cloudへの対応自体は難しくないが、まだサンの準備が終わるにはもう少し時間がかかるだろうという回答だった。

Amazon EC2向けのサードパーティーアプリケーションがSun Cloudに対応。画面はアプリケーションライフサイクル管理の「webappVM」

OpenSolaris 2009.06がリリース、クラウドにもインパクト

Amazon EC2とSun Cloudには大きな違いがある。それはAmazon EC2がサービスのみであるのに対して、Sun Cloudはプラットフォーム自体もオープンソースで提供するとしていることだ。つまり、サン以外がSun Cloudと同様のクラウドサービスを始めてもいいし、企業ユーザーがデータセンターのサーバリソースを有効活用するために、手持ちの資産をプライベートクラウド化する目的でも使えるということだ。

もう1つ、大きな違いはインフラにOpenSolarisを採用していることだ。基調講演では、同日正式リリースした「OpenSolaris 2009.06」をクラウド関連と同じぐらい時間を割いて紹介してたが、インフラOSとしてのOpenSolarisは強力に進化を続けている。

クラウドに関連するOpenSolarisの注目ポイントはファイルシステムの「ZFS」、システム分析ツールの「DTrace」、仮想化などに対応するために新たに書き起こされたネットワークスタックの「Crossbow」だ。

クラウド初のSSDサポート？

ZFSはコピー・オン・ライトを基本とする次世代のファイルシステムだ。通常、フルコピーが必要となるボリューム全体のスナップショットなどでも、コピーが発生しない。コピーが必要となるのは、ファイルの追加や削除をしてからで、その差分だけがディスクに書き込まれる。このため、15分置きにスナップショットを取るようにしておけば、何か人為ミスのトラブルがあっても、すぐにロールバックが可能だ。何らかのソフトウェアのバージョンアップ中に問題が発生しても、すぐにやり直せるなど管理面でのメリットが大きい。

さらに、ZFSが2008年秋にSSDに対応した点も見逃せない。SSD対応は単に使えるようになったというだけではない。OSから見たメインメモリとキャッシュメモリの関係のように、ファイルシステムでシームレスに統合されている。このため、ボトルネックがI/OにあればSSDをストレージプールに追加し、容量が足りなくなればハードディスクを足すという柔軟な運用が可能だ。

Sun Cloudはクラウド上でSSDがシームレスに統合された形でサポートするプラットフォームになる可能性が高い。この点についてOpenSolaris担当者に話を聞いたところ、SSDとハードディスクの容量をクラウド上で任意に選択できるようにすることは十分にあり得るという話だ。

ZFSではスナップショット作成に必要なディスク消費量が少ないので、自動的にスナップショットを取る設定にしておけば、編集前のファイルを容易に取り出せる。画面は同一の画像ファイルの古いバージョン（おたまじゃくし）と、最新バージョン（カエル）を表示。ZFSを備えたOpenSolarisはインフラOSとしてだけでなく、デスクトップOSとしても魅力的だ

仮想化を前提に書き換えられたネットワークスタック「Crossbow」

ZFSがファイルシステムという大きなサブモジュールをスクラッチで書き直したものであるように、「Crossbow」はネットワークモジュールを書き直したものだ。OpenSolaris 2009.06で初めて統合された。

昨今のNICは、仮想化環境を想定して物理的なポートが1つだけであっても、独立した「レーン」が備わっていることがある。これらのレーンには個別にパケットバッファがある。こうしたNICの機能を、仮想化環境で最大限に生かすためにVNIC（仮想NIC）をサポートしたのがCrossbowだ。

Crossbowは仮想環境に最適化されたネットワークスタック

これまで仮想環境のNICへのパケットは、ホストOSやハイパーバイザがルーティングしていたが、VNICであれば、各仮想環境のNICは直接パケットを拾い出すことができる。これはセキュリティ上も、パフォーマンス上もメリットが大きい。

Crossbowではソフトウェア的にレーンを用意し、ハードウェアレーンがある限りこれを割り当てる。もし、仮想サーバが増えてハードウェアレーンが足りなくなれば、足りない分はソフトウェアレーンに割り当てるようフォールバックする。

Crossbowでは負荷が高くなったときのパフォーマンス低下を抑える「ダイナミック・ポーリング」の機能を実装しているという。パケット受信速度がパケット処理速度以下の場合には、各NICのパケットは割り込みによってCPUが処理するが、どこかのレーンで受信速度が処理速度を超えると、そこは自動的にポーリングモードに切り替わる。ポーリングモードでは、CPU（パケット処理用のスレッド）は一定間隔でレーンに蓄積したパケットを、パケットチェーンとしてまとめて受け取る。これはネットワークのスループットやCPUリソースの面で有利だという。

Crossbowは仮想環境におけるセキュリティ（OSインスタンスの分離）やパフォーマンス向上以外にも、メリットがある。

1つは、特定ポートの帯域制御などをダイナミックな管理が容易になることだ。これはOpenSolarisがOSレベルでVNICに対応しているからこそできることで、基調講演のデモンストレーションでは、特定の仮想サーバのNICだけ帯域を半分に絞って、実際に即座にスループットを示すグラフがガクンと曲線を描くさまを披露していた。

仮想環境に割り当てたVNICは帯域制限などが簡単にできるという。グラフが帯域制限直後に落ち込んでいるのが分かる

もう1つはDTraceによるネットワークパフォーマンスのプロファイリングが容易になることだ。これまでにもDTraceによるCPUや各アプリケーションのパフォーマンスのプロファイリングが可能だったが、Crossbowが入ったことで、OpenSolarisではCIFS、NFS、FTPなどプロトコルレベルでのパフォーマンス監視が容易になるという。Webアプリケーションでは、多数のサーバ、多数のアプリケーションが分散して走ることが多いが、そうした場合でも、ボトルネックが言語処理系なのかネットワークなのか、ディスクI/Oなのか、といったことが容易に把握できるという。

プロファイリングツールのDTraceではネットワーク系ファイルシステムも見られるようになった

遅延発生頻度も直感的なグラフで見ることができる

基調講演のデモンストレーションを通して眺めてみると、サンがクラウドで提供しようとしているものが単なるリソースではなく、むしろ「ITシステム」であることが分かる。Amazon EC2がインスタンス指向、Google App EngineやSalesforce.comがアプリケーション指向であるとするなら、Sun Cloudはシステム指向と言えそうだ。

（＠IT 西村賢） 情報をお寄せください：