EY-Office ブログ

EY-Officeの吉田裕美が、まだ Ruby on RailsやiPhone開発を行ってない技術者や技術系マネージャー向けに、技術や教育に付いて書いています。

2009-08-31 クラウドといっても違いがある

最近の流行はクラウドかもしれませんね。Amazone VPS や Google App Engine、Windows Azure などなど・・・

私も現在 Google App Engineと関連する記事をCodeZineに書いています。
ここでわかった事としては、同じクラウドといっても実はかなり違いがあるということです。

Amazone EC2

2006年にはスタートした Amazone EC2 ですが、これは通常のホスティングサービスに似ています。好きなソフト(RDB、言語、フレームワーク・・・)をインストールして使えます。ただし通常のホスティングサービスと違い、仮想技術をベースとしてるので、サーバーの増設とアプリケーションの起動がコマンド一つで簡単に行えます (もちろん費用は増加しますが)。

たとえば、例えばボーナス時期は通常の何倍ものアクセスがあるショッピングサイトなどは、EC2を使えばボーナス時期だけはサーバーを増やし終わったら減らしてしまうといった事がコマンド1つで行えるので、最大負荷に合わせた高価なサーバーを準備せずに済みます。

Google App Engine

話題の多い Google App Engine (以下 GAE) ですが、こちらはサーバーにデータベースソフトなどを自由にインストルできません。Googleが用意したRDBとは異なるデータストレージしか使えませんし、サーバー上のファイル扱いや、さらには使える言語も Python と Java *1 に制限されています。現在稼働しているシステムを GAEで動かすには GAEのAPIに合わせてかなりの改造を行う必要があります。

しかし、GAEに合わせたアプリケーションが出来れば、アクセス数が10倍、100倍になっても問題なくサービス出来きます (もちろん費用は増加しますが)。これは GAEが大量のアクセスを受け付けられる Google と同様のインフラ技術で出来ているからです。従来のRDBをベースとしたアプリケーションでは10倍はともかく、100倍のアクセスを処理するにはmixiやfacebookなどのように大規模なサーバー群と大きな開発・運用コストが必要になります。しかし、GAEを使えば世界規模のサービスが低いコストで構築できます。

*1 : ただしJRubyなどJVM上で動作する言語は可能