2010年5月26日 22:00

「クラウド」とは何か、今一度考えてまとめてみた

すっかり一般化した「クラウド」とか「クラウドコンピューティング」っていう言葉。

去年ぐらいから、技術系のニュースやブログで頻繁に登場してます。

そして、同じぐらい聞かれるのが

「そもそもクラウドって、ASPやSaaSと、どう違うのよ」

という質問です。

自分なりに「クラウドってつまり、こういうことだよね」っていうのをまとめてみました。

 

クラウドとASPの違い

Wikipediaによると、クラウドコンピューティング

「ネットワーク、特にインターネットをベースとしたコンピュータの利用形態である。ユーザーはコンピュータ処理をネットワーク経由で、サービスとして利用する。」

と書かれております。この範囲では、昔からいう「ASPサービス」や「SaaS」と変わりません。

図で言うとこんな感じですね。

cloud_2

昔は「シンクライアント」なんてキーワードもありました。

さて、Wikipediaにはこうも書かれています。

「通常はオープン標準に準拠したソフトウェアや、ユーザー数や処理量の増減に対応できる仮想化技術が使用されるが、Googleなどはスケーラビリティ確保のために自社独自開発されたグリッドコンピューティング技術などを多用している。」

この

「グリッドコンピューティングの上で動くASPサービス」が、現在の「クラウド」と言われているようです。

グリッドコンピューティングとは

では、グリッドコンピューティングとは何でしょうか。

その前に、一般的なウェブサーバーを例に考えてみたいと思います。

現在、ホスティングサービス業者が提供するウェブサーバーの利用形態は、大きく「共用サーバー」と「専用サーバー」に分けられます。

共用サーバーは、1台のサーバーを複数人で分け合っているイメージです。賃貸マンションのイメージです。

それに対して、専用サーバーは、「1台のサーバーを丸ごと使えるサービス」です。イメージ的には一軒家を丸ごと借りきって住んでいる感じです。

cloud_3

ペーパーボーイさんが提供する「ロリポップ」や「ヘテムル」、さくらインターネットさんの個人向けサービスは、共用サーバーですね。

一方、さくらインターネットさんでも「マネージドサーバー」と呼ばれるサービスは、専用サーバーになります。

(実はVPSなど、物理サーバーとは別な形態があり、そこにも共用・擬似専用・専用、のような種別があるのですが、ここでは話を単純にするために「共用」「専用」と大雑把に分けます)

専用サーバーは、一般的に、共用サーバーより設定の自由度や、サーバー負荷に対する耐性の面でメリットがあります。

cloud_4

ただし、いくら専用サーバーと言っても、瞬間的にアクセスが増大した場合、たえきれなくなるケースがあります。

Yahoo!のトップニュースに乗ったり、2ちゃんねるでさらされて祭になったりすると、短時間の間に集中的なアクセス増加に見舞われて、ウェブページの表示処理が間に合わなくなります。

cloud_5

企業のウェブサイトや個人のブログなどの場合は、こういう事態になることはあまり無いのですが、話題を呼んでいる商品・サービスのキャンペーンサイト、沢山のユーザーに使ってもらう前提のポータルサービスサイト、ニュースサイトなどの場合は、このアクセス増加を無視しては運用できません。

特にビジネスとしてウェブサイト・ウェブサービスを運営している場合には、アクセス負荷の増大によるサーバーダウンは、ビジネスチャンスをみすみす逃すことになるため、事前の負荷対策が欠かせなくなります。

こういった場合、通常考えられる対策が、複数サーバーによるウェブサイトの運用=サーバーの冗長化です。

アクセスが集中したときに、自動的に複数サーバーに表示処理を分散させてしまう方法です。

cloud_6

サーバーは台数が多ければ多いほど、アクセス耐性が上がります。僕が今まで絡んだ案件では、ウェブサーバーで10数台の並列処理、アプリサーバーで4台ぐらいっていうウェブサイトが有りました。

さて、こう書くと複数台サーバーにすれば問題解決、のように思えるのですが、ここで無視できないのがサーバーコストです。当たり前ですが、サーバーが増えれば増えるほど、物理的なコストも運用保守にかかるコストも増大します。

しかも、アクセスが少ないときは、サーバーが「遊んでいる」状態なので、その間は完全にムダなコストになっています。

cloud_7

 

この、サーバー設備の遊休時間は、大型のウェブサイトになればなるほど無視できなくなります。

これを解消するために開始されたサービスが、グリッドコンピューティングサーバーです。

cloud_8

グリッドーサーバーでは、仮想サーバーが複数台集まって、ひとつのサーバー体としてサービスが提供されます。ユーザーは、そのうちの一部を、時間単位・もしくは台数(に近い概念)の単位で借ります。

そして、アクセス負荷が高くなった場合、同一グリッド内で負荷分散します。

cloud_9

こうすることで、急なアクセス増大にも耐えることができ、予めムダなサーバー資産も持たずに済むことになります。

使用した超過分のサーバー利用料金は、従量課金で請求されます。

グリッド・コンピューティングは、アクセス負荷に応じて利用料金が変わる、という意味では非常にメリットが高いのですが、「契約次第では、がんがん従量課金が増える」というデメリットも有ります。常にアクセス負荷が高い状態になってしまった場合、想定外のサーバー使用料金が発生します。

cloud_10

 

最近、Twitterで偶然、「クラウド破産」っていう言葉を見つけました。

cloud_1

これは上記の、「グリッド・コンピューティングの従量課金」にはまった例なのでしょうね。

グリッドだから「100%落ちない、大丈夫」なわけじゃない

今までの説明で言うと、なんとなく「グリッドってアクセス負荷が高くなっても落ちないんだね、安心だね」というイメージが有りますが、実際のところはそうでもないようです。

現実的には、グリッドコンピューティングでもサーバーが落ちる、ということはありえます。

実は、4-5年ほど前に、ある高アクセスのサイトを運用する業務で、グリッドサーバーを利用したことが有ります。確かにアクセス耐性は高かったのですが、何回かサーバーダウンに遭遇しました。僕が遭遇したのは以下のようなエラーでした。

・ホスティング会社のオペミス、設定ミス
・グリッドコンピューティングの制御ソフト自体のバグ

ヒューマンエラーなどは避けようのないもので、

「やっぱりウェブサーバーで100%安心っていうのは無いんだなあ」

と、緊急呼び出しを受けながらしみじみ思った記憶があります。

最も、当時はまだグリッドコンピューティングの事例自体が少なく、サービスとしても出始めたばかりだったので、現在はもっと枯れていることでしょう。エラー率は遥かに低下しているのではないか、と思います。

 

というわけで、クラウドとは

というわけで、一般的に言われている「クラウド」は、昔からあったASPという概念プラス、

「サーバー技術の進化によるコストダウン化、設備投資の適正化」

と合わせて「クラウド」なんだろうな、と考えた次第です。

逆に言うと、「クラウド」の恩恵は、個人利用のホームページや企業のウェブサイトにはあまりなくて、

「適正な設備投資により、ウェブサービスが安く提供できる」

とか

「キャンペーンサイトや大規模サイトの設備適正化」

などにあるといえるでしょう。

個人にとってのクラウドの恩恵は、便利なウェブサービスを安く手に入れられること。

企業にとっては、大型な設備投資を抑えられること。

と結論づけてみました。

(ここまで、自分の限られた範囲の知識で書いたので、「ここ間違ってるよ」とか、「これはこう書くべきじゃない?」などのご指摘、歓迎です。何かお気づきの点が有りましたらお知らせ下さい。)