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

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

シグマコンサルティング 橋本 圭一
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.まとめ(体験してみて分かったこと)


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間