【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

特集:クラウド体験記(前編)

エンジニア視点で比較する“雲”の違い

シグマコンサルティング 橋本 圭一
2009/03/17
Page1 Page2 Page3

1. 2009年はクラウド元年

 2009年は「クラウド元年」ともいえる状況で、日々いろいろな場所でクラウド・コンピューティングに関する情報を耳にするようになってきた。実際にクラウド・コンピューティングに興味を持ち始めている方、試し始めた方も多いのではないだろうか。

 そこで本稿では、エンジニア、デベロッパー的な視点から、主要なクラウド事業者、具体的にはアマゾン、グーグル、マイクロソフト、セールスフォースの“雲”(=クラウド)の住み比べをレポートしたい。アマゾンを除いて、各社とも正式リリースというわけではないため、あくまで途中経過の印象になるが、これを見て皆さんが今後クラウド・コンピューティングに触れるきっかけとなれば幸いだ。

 なお、本稿を読むに当たり、「クラウド・コンピューティングがよく分からない」という方は、基本知識として「@IT:5分で分かるクラウド・コンピューティング」を読まれることをお勧めする。

2. クラウド・サービスについてのおさらい

 本題に入る前に、クラウド・コンピューティングで提供されるサービス(以下、クラウド・サービス)の提供方法について分類の指針を示し、実際に各社のクラウドを分類しておく。なお、各社のクラウド・サービスの範囲はさまざまであり、あらゆるサービスを一様に分類することは不可能だ。従って、以下は、頭の中を整理する際のヒントにすぎない。

サービスの提供方法

 クラウド・サービスに関しては、いろいろなとらえ方があるが、本稿では「SaaS」「DaaS」「PaaS」「HaaS」の4種類に分類してみた。以下の表を見てほしい。

略称 正式名称 説明
SaaS Software as a Service ソフトウェアをインターネット経由で提供。具体例はGoogle Apps(Gmail、Google カレンダーなど)Windows LiveMicrosoft Online ServicesSalesforce CRMなど
DaaS Database as a Service データベースの利用をインターネット経由で提供。具体的には、SQL Data Services、や Amazon SimpleDBなど
PaaS Platform as a Service アプリケーションを構築するためのミドルウェアと開発環境をセットにしてインターネット経由で提供。Google App EngineWindows AzureForce.comなどのように、開発プラットフォームまで提供しているサービスといえば分かりやすいだろう
HaaS Hardware as a Service サーバやストレージなどハードウェアの利用をインターネット経由で提供。IaaS(Infrastructure as a Service)とも呼ばれる。具体例はAmazon EC2(Elastic Compute Cloud)Amazon S3(Simple Storage Service)Windows Azure Storage Servicesなど
クラウド・コンピューティングで提供されるサービスの分類

 ただし、これらの用語は現状、クラウド・コンピューティングの黎明(れいめい)期ということもあって、今後変わることもあるかもしれないため、クラウド・サービスを切り分ける1つの参考としてほしい。

主要なクラウド・サービス提供者とサービス内容の整理

 先ほどのクラウド・サービスの分類を活用して、アマゾン、グーグル、マイクロソフト、セールスフォースの4社が提供するクラウド・サービスを、次の表に整理してみた。

アマゾン グーグル マイクロソフト セールスフォース
SaaS   Google Apps Windows Live/
Microsoft Online Services
Salesforce CRM
DaaS SimpleDB (BigTable) SQL Data Services (Force.com Database)
PaaS   Google App Engine Windows Azure Force.com
HaaS Amazon EC2/
Amazon S3
  Windows Azure Storage Services  
主要なクラウド・サービス提供者とサービス内容
今回は、現在、主要なクラウド事業提供者4社をピックアップしたが、事業者はほかにもある。
BigTableとForce.com Databaseについては、それ単体では提供されているクラウド・サービスではないが、BigTableはGoogle App Engineから、Force.com DatabaseはForce.comから利用できる。それ以外はすべて個別に提供される単体のクラウド・サービスで、どこからでも、どのアプリケーションからでも利用できる。

主だって騒がれているメリットとデメリット

 現状注目されているのは、主にユーザー側のコスト面でのメリットになる。

  • サーバをユーザー側で新たに用意せずに、低い初期コストで迅速に新しいサービスを開始できる
  • クラウド上にあるSaaS型アプリケーションを共有すれば、ユーザー側で独自にシステムを構築する必要がない

 より詳細な情報は、こちらの記事をご覧いただきたい。

 デメリットとしては、

  • インターネット上でデータがアクセス可能なため、情報漏えいなどのセキュリティ問題が懸念事項としてよく指摘される

 さて、クラウド・サービスの提供方法についてある程度理解したところで、次はWebアプリケーションの実行環境として、Amazon EC2、Google App Engine、Windows Azure、Force.comを比較してみよう。

 なおAmazon EC2は、サーバをサービスとして提供し、そこで任意のOS(WindowsやLinux)を利用できる。そのOS上でWebアプリケーションを動作させることができるため、この状態のAmazon EC2と上記の各PaaS(Google App Engine、Windows Azure、Force.com)を比較していく。

3. あなたは、どのクラウド?

 エンジニアとしてクラウドを利用する場合、やはりこれまでのスキルとどうマッチするか、どのプラットフォームが作り組みやすいかという視点が最初に来るのは否めない。ちなみに筆者はPython言語を楽しみながら始めているが、新しい言語や環境に飛びつくための障壁があるのも事実であるため、まずはそられについて簡単にまとめてみた。皆さんのスキルセットで、なじみの深いクラウドはどこになるだろうか。

事業者
サービス名
Amazon
 EC2

Google
 App Engine

Microsoft
 Windows Azure

Salesforce
 Force.com

構築用API 開発環境に依存 Datastore API
Memcache APIなど
(Google App Engineで提供されるAPI)
.NET Framework
.NET Services(ID管理)など
Visualforce(UI作成)
AJAX Toolkit
Flex Toolkitなど
開発ツール 開発技術や開発言語に依存 テキスト・エディタ
Eclipse
Visual Studio 2008
Visual Studio 2010
ブラウザ
Eclipse
開発言語 利用するOSに依存 Python
今後、Perlなどの言語への対応計画有
.NETで利用可能な言語
今後、PHP、Python、Rubyへの対応予定有
Apex
Javaに近い
データベース SimpleDB
もしくはMySQL、Oracle、SQL Server 2005など
BigTable SQL Data Services Force.com Database
開発OS Windows、Mac OS、Linux Windows XP以降、Mac OS X、Linux Windows Vista/7 Windows XP以降、Mac OS X、Linux
アマゾン、グーグル、マイクロソフト、セールスフォースのクラウド比較
この表には、Amazon S3やWindows Azure Storage Servicesなどのストレージは含めていないが、大容量でシンプルなデータの場合(例えばバックアップなど)は、ストレージの方が便利だ。

 エンジニアにとっては、言語に最も目が行くかもしれない。例えば.NETのエンジニアでC#やVisual Basicを利用するのであれば、Amazon EC2でWindowsをサーバとして利用するか、もしくはWindows Azureを選択することが可能だ。

 Amazon EC2はOSとIIS、SQL Serverがインストールされた状態で、それ以降の作業がユーザーに渡される形となる。従って、ホスティングもしくはデータ・センターにあるサーバのOSより上位層を自己管理で利用するイメージに近い。これまで利用していたアプリケーションを移行する場合にも、大きな変更は必要なく、ホスティング業者の変更というようなイメージに近いだろう。

 Windows Azureに関しては、単なるホスティング環境ではなく、Windows Azure用クラウド・サービス専用のホスティング環境として構築されている。これまでホスティング業者やデータ・センターに置いていたアプリケーションを、そのままWindows Azureに移行することはできず、プロジェクトの作り替えなどの作業が発生する。また現状では、データベース・アクセス部分のコードを変更する必要がある*1

*1 最新の情報では、SQL Data Servicesの正式リリース時には、通常のSQL Serverと同じようにアクセスできるようになる(つまり、ストアド・プロシージャやADO.NETなど、既存のSQL Server開発/管理ツールが使えるようになる)ため、接続文字列を変更するだけで移行できると発表されているが、詳細はまだ不明だ。

 JavaやPHPを利用するのであれば、今回特集するクラウド事業者の中からはAmazon EC2を利用することになる。Amazon EC2はプラットフォームの選択肢が非常に広いのが魅力である。ただし、今後Windows AzureでもPHP/Python/Rubyといった言語への対応予定があるようだ。

 一方Google App Engineを利用するには、言語としてPythonを利用する必要がある。

 また、Force.comを利用してプログラミングを行う際には、Apexという独自の言語を利用することになるが、こちらの言語は非常にJavaに近いのでJavaエンジニアの方はなじみやすいはずだ。

 以上、エンジニア向けクラウド情報の手始めとして、言語をピックアップした。なじみのない言語が出てくると何となく壁を感じる方がいるかもしれないが、「せっかくクラウドを活用し開発を始めるのなら、それは別の言語にトライしてみる良いチャンスになるかもしれない」ということも付け加えておく。

 では、実際にそれぞれのクラウドを体験してみよう。以下では、クラウドごとに、総合評価、事前の準備、作業手順の概要、技術習得で役立ったリソース(手ほどき)、作成したサンプル、所感などを、Google App Engine、Force.com、Amazon EC2、Windows Azureの順でレポートする。本稿は2回に分け、前編でGoogle App EngineとForce.com、後編でAmazon EC2、Windows Azureのレポートになる。


 INDEX
  特集:クラウド体験記(前編)
  エンジニア視点で比較する“雲”の違い
  1.2009年はクラウド元年/あなたは、どのクラウド?
    2.実際に使ってみよう 「Google App Engine」
    3.実際に使ってみよう 「Force.com」
 
  特集:クラウド体験記(後編)
  体験してみて分かった“雲”の違い
    1.実際に使ってみよう 「Amazon EC2」
    2.実際に使ってみよう 「Windows Azure」
    3.まとめ(体験してみて分かったこと)

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事

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

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?