Amazonとクラウドコンピューティング進化する技術(2/4 ページ)

» 2008年10月23日 08時00分 公開
[Jeff Cogswell,eWEEK]
eWEEK

伸縮自在なAmazonのクラウド

 AWSというアンブレラシステムは、その後さまざまな技術を包含していった。その1つが「Amazon Elastic Compute Cloud」と呼ばれる技術、すなわち「EC2」である。

 AWSを開発していたころ、Amazonのエンジニアはオペレーションを複数のコンピュータにシンプルに分散するだけでなく、それぞれのコンピュータが必要なときのみ、自分のサービスを提供する仕組みにした。

 例えば、誰かがAmazonのサイトにログインし、特定のDVDを検索したいと考えているとしよう。そのとき、ユーザーがコメントボードを利用しないなら、サーバがストレージスペースを割いてコメントボードをハンドリングしなければならない理由は何もない。Amazonは必要なときのみリソースを割り当て、不要になったら解放できる巨大な分散システムを構築した。

 小規模なWebサーバ環境では、こうしたアロケーションはかなり一般的だ。プログラマが必要に応じてオブジェクトを割り当てる方法を知っていれば簡単に実現できる。大規模システムの場合も、いまやこうした方法がきわめて重要になってきた。クラウドコンピューティングのコンセプトが登場した理由はそこにある。クラウドコンピューティングの世界では、それぞれの大規模Webサーバが特定のタスクに特化したサービス主体になる。それらのサービスは個別のハードウェアで実行される。他のコンピュータ上で実行するソフトウェアは、必要に応じてそれらのサービスにアクセスする。

 こうした仕組みがクラウドコンピューティングだ。つまり複数のシステムが相互にサービスを提供し合う環境である。ソフトウェアはサービスとして機能する(ゆえに「ソフトウェア・アズ・ア・サービス」と呼ばれる)。ただ、クラウドコンピューティングの場合、個々のシステムは通常、それ自体が大規模だ。それらは個別のWebサービスというだけでなく、むしろ巨大なデータウェアハウスのようでもある。それらのシステムが連携し、1つの巨大なサービスとなってインターネット上に展開されたとき、それはクラウドと呼ばれる。

最新のクラウドはSaaS、グリッド、そしてユーティリティコンピューティングにアドバンテージを持つ。その理由は?

 このコンセプトをさらに掘り下げてみよう。個々のサービスは必要に応じて利用できるように構築されている。例えば、あるユーザーが自社のソフトウェアでそれらのサービスを利用したいと考えたとしよう。Web上で実行するソフトウェアに、それらのサービスを組み込めば高い利便性が得られるはずだ。しかし、必要なサービスは一部だけであり、利用できるサービスすべてを組み込みたいわけではない。

 AmazonのEC2の狙いはそこだ。ユーザーはAmazonのクラウドにスペースを借り、必要とするパーツや利用した分だけ使用料を支払えばよい。ユーザーはソフトウェアの実行中、自由にスペースを割り当てることができる(仮想的にコンピュータを追加するようなものだ)。ユーザーはすべて利用できるが、課金されるのは実際に利用した分だけである。

 顧客にとってこうした仕組みは大きなメリットだ。1日数百万件のトランザクションを処理できる巨大なシステムで自社のソフトウェアを実行できる一方、そうした物理的なハードウェアを自前で持つ必要がないからだ。また、データセンターに設置された物理PCの仮想領域を求めてホスティングサービスを契約する必要もない。顧客は、まさに大手プレーヤーと同等のパワフルなソフトウェア機能を手にすることができるのだ。

 このようなアプローチのクラウドコンピューティングは、なにもAmazonの専売特許ではない。Amazonが自社のシステムを「Elastic Compute Cloud」と呼ぶのは、伸縮性(elastic)があるとエンジニアたちが考えているからだ。ユーザーのソフトウェアは瞬時にサービスをリクエストでき、実行中も必要があればリソースを増やし、不要になれば解放することができる。言い換えれば、ソフトウェアは伸縮自在で、必要に応じて拡大縮小でき、利用したサービスの分のみ課金される。固定的なリソースに固定的な月額使用料を支払う伝統的なホスティングサービスとは、その点できわめて対照的だ。

 一方、従来のホスティングと類似する点もいくつかある。顧客がEC2でアプリケーションを実行するとき、小さなホスティングプロバイダが提供するような仮想サーバが作成される。ユーザーのシステムはそこから必要に応じて追加的に仮想サーバを増強していくことができる。これらの追加的な仮想サーバは基本的に最小単位で増減できる。

 顧客のソフトウェアは、実行中、追加的な仮想マシンの必要性を判断できるように設計されているかもしれない。そしてソフトウェアは、あるとき膨大な量の計算を行う必要性に迫られるが、現行の仮想マシンをそのプロセスに集中させたくないと考えるかもしれない。その場合、顧客はスタンドアロンPCのパワーを持った第2の仮想マシンを1台アロケートし、そのプロセスを実行させることができる。データ処理が完了したら、第2仮想マシンは第1仮想マシンにその結果を提供し、シャットダウンしてAmazonの別の顧客がプロセスタイムを利用できるようにする。

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ