メインコンテンツへ移動

UCバークレーの研究者たちが描いたクラウドコンピューティング

無料2019-08-03#Front-End#伯克利Cloud Computing论文#Berkeley Cloud Computing paper#云计算论文#云计算发展史

10年前、彼らはどのような未来を予見していたのか?

はじめに

10年前(2009年)の2月10日、UCバークレー(カリフォルニア大学バークレー校)はクラウドコンピューティングに関する1編の論文を発表しました。10年後の今日読んでも、なお大いに示唆に富む内容です。

Cloud Computing is likely to have the same impact on software that foundries have had on the hardware industry.

クラウドコンピューティングがソフトウェアに与える影響は、ファウンドリ(半導体受託製造)がハードウェア業界に与えた影響に等しいだろう、と。

1. なぜクラウドコンピューティングが未来なのか?

クラウドコンピューティングとは?

クラウドコンピューティング(Cloud Computing)は、インターネットを通じてサービスとして提供されるアプリケーション(いわゆるSaaS:Software as a Serviceにおけるサービス)と、それらのサービスを提供するデータセンターのハードウェアおよびシステムソフトウェア(いわゆるクラウド)の両方を指します。

Cloud Computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services.

クラウドが一般向けに従量課金制(pay-as-you-go)で提供される場合、それをパブリッククラウド(Public Cloud)と呼び、ユーティリティコンピューティング(Utility Computing)サービスを提供します。対して、一般には開放されていない企業・組織内のデータセンターをプライベートクラウド(Private Cloud)と呼びます。

P.S. ユーティリティコンピューティングとは、サービスプロバイダが顧客のオンデマンドに応じてコンピューティングリソースやインフラ管理を提供し、固定料金ではなく使用量に基づいて課金するサービス提供モデルです。

ユーザーの役割に対応させると、関係性は下図のようになります:

[caption id="attachment_1992" align="alignnone" width="686"]cloud computing roles cloud computing roles[/caption]

P.S. もちろん、SaaSプロバイダが同時にSaaSユーザーであることもあります。

クラウドコンピューティングが引き起こす変革

*クラウドコンピューティングの最大の利点は、リソースの弾力的な調達(elasticity of resources)*にあります。1000台のサーバーを1時間使用するコストは、1台のサーバーを1000時間使用するコストと変わりません。このようなリソースの弾力性は、かつてないものです:

Moreover, companies with large batch-oriented tasks can get results as quickly as their programs can scale, since using 1000 servers for one hour costs no more than using one server for 1000 hours. This elasticity of resources, without paying a premium for large scale, is unprecedented in the history of IT.

また、クラウドコンピューティングにより、アプリケーションプロバイダは自社データセンターを持たずにSaaSとして製品を展開できるようになります。それはちょうど、半導体ファウンドリの出現によって、チップメーカーが自社工場(ファブ)を持たずにチップを設計・販売できるようになったのと同じです

Just as the emergence of semiconductor foundries gave chip companies the opportunity to design and sell chips without owning a fab, Cloud Computing allows deploying SaaS—and scaling on demand—without building or provisioning a datacenter.

SaaSがユーザーの課題の一部をSaaSプロバイダに押し付けることを可能にしたように、クラウドコンピューティングはSaaSプロバイダの課題の一部をクラウドベンダーに投げ渡すことを可能にしました:

Analogously to how SaaS allows the user to offload some problems to the SaaS provider, the SaaS provider can now offload some of his problems to the Cloud Computing provider.

一方、ハードウェアの観点から見ると、クラウドコンピューティングがもたらす変化は以下の通りです:

  • オンデマンドで無制限のコンピューティングリソースを提供できる

  • クラウドユーザーが事前にリソースを見積もる必要がない

  • 従量課金制による短期的なコンピューティングリソースの利用をサポートする

これにより、企業はごく少額の投資から始め、実際に必要になった時点でハードウェアリソースを追加できるようになり、リソースの利用効率が向上します。同時に、必要な時に確保し不要になれば解放する方式は、リソースの節約にもつながります。

2. なぜ2009年だったのか?

クラウドコンピューティングを推進する重要な要因は、コストの低い地域で大規模な商用コンピュータデータセンターを建設・運営することでした。これらの地域では電力、ネットワーク帯域、運用、ソフトウェアのコストが低く、規模の経済が働きます:

We argue that the construction and operation of extremely large-scale, commodity-computer datacenters at lowcost locations was the key necessary enabler of Cloud Computing, for they uncovered the factors of 5 to 7 decrease in cost of electricity, network bandwidth, operations, software, and hardware available at these very large economies of scale.

実際、2000年代初頭にWebサービスが急成長して以来、2009年までにAmazon、eBay、Google、Microsoftなどのインターネット巨大企業はすでにかなりの規模のデータセンターを保有していました:

Building, provisioning, and launching such a facility is a hundred-million-dollar undertaking. However, because of the phenomenal growth of Web services through the early 2000’s, many large Internet companies, including Amazon, eBay, Google, Microsoft and others, were already doing so.

同時に、これらの企業はスケーラブルなソフトウェアインフラ(MapReduce、Google File System、BigTable、Dynamoなど)や、専門的な運用およびセキュリティメカニズムも構築しなければなりませんでした。

大規模な商用データセンターの運営に必要なハードウェア・ソフトウェアのインフラに加えて、新たな技術トレンドとビジネスモデルも重要な推進力となりました。また、クラウドコンピューティングが一度軌道に乗れば、新たな応用の機会や利用モデルが発見され、それがさらにクラウドコンピューティングの発展を促進することになります。

新たな技術トレンドとビジネスモデル

Web 2.0の出現は、ハイタッチ(high-touch)、高利益率(high-margin)、ハイコミットメント(high-commitment)なサービスから、ロータッチ、低利益率、ローコミットメントなセルフサービスへの移行を意味しました。例えば:

  • PayPalの登場により、個人でもクレジットカードでの集金が可能になりました。契約や長期的なコミットメントは不要で、従量課金制のわずかな取引手数料のみです。

  • Amazon CloudFrontは、コンテンツデリバリネットワーク(CDN)と契約を結ぶことなく、個人がWebコンテンツを配信することを可能にしました。

  • Google AdSenseは、広告配信会社と契約を結ぶことなく、個人のWebページで広告収入を得ることを可能にしました。

P.S. ハイタッチサービスとは、自動販売機やセルフサービスカウンターなどではなく、サービス提供プロセスにおいてより多くの人手を介するものを指します。

技術面では、仮想マシンの登場により、顧客が独自のソフトウェアリソーススタックを選択できるようになり、ハードウェアを共有してコストを下げつつ、互いに干渉しない環境が実現しました。

新たな応用の機会

クラウドコンピューティングは、以下のようなアプリケーションにとって絶好の機会です:

  • モバイルインタラクティブアプリケーション:高い可用性が求められ、大規模データセットを扱うため大規模データセンターに依存します。

  • 並列バッチ処理:ビッグデータのバッチ処理や分析タスクに必要なコンピューティングリソース。

  • アナリティクスの台頭:ビジネス分析(顧客理解、サプライチェーン、購買傾向、ランキングなど)にも大量のコンピューティングリソースが必要です。

  • 計算集約型デスクトップアプリケーションの拡張:Matlabのような数学ソフトウェアも同様にコンピューティングリソースに依存します。

また、データ移行コストやレイテンシなどの要因で一時的に「クラウド化できない」アプリケーション("Earthbound" applications)も、広域データ転送のコストとレイテンシが低下すれば、クラウドの弾力性と並列性の恩恵を受けられるようになるかもしれません。

3. ユーティリティコンピューティング(Utility Computing)

さまざまなユーティリティコンピューティング製品は、開発者に提供される抽象化のレベルとリソース管理のレベルによって区別されます:

Our view is that different utility computing offerings will be distinguished based on the level of abstraction presented to the programmer and the level of management of the resources.

例えば、当時のいくつかのクラウド製品は、コンピューティング、ストレージ、ネットワークなどのリソースを異なる度合いで仮想化していました:

  • Amazon EC2:クラウド仮想マシンを提供。物理ハードウェアのように、ユーザーがリソーススタック全体を制御可能。

  • Google AppEngine:アプリケーション向けの実行環境を提供。

  • Microsoft Azure:.NETの実行環境を提供し、上記2つの中間に位置する。

しかし、クラウドベンダーやクラウドユーザーの視点から見ると、これらのユーティリティコンピューティング製品は、開発者の使いやすさ、柔軟性、移植性の間でのトレードオフに過ぎず、それぞれに適したユースケースがあります。

4. クラウドコンピューティングの経済学

クラウドコンピューティングがもたらすきめ細かい経済モデルにより、トレードオフの意思決定はより流動的になり、特にクラウドが提供する弾力性はリスクの転嫁に役立ちます:

We argue that the finegrained economic models enabled by Cloud Computing make tradeoff decisions more fluid, and in particular the elasticity offered by clouds serves to transfer risk.

一般的に、ユーティリティコンピューティングがプライベートクラウドよりも優れているシナリオは2つあります:

  • サービスへの需要が時間とともに変化する場合。例えば、需要のピークへの対応。

  • 需要が事前に予測できない場合。製品が突然流行したり、大量のユーザーが突然離脱したりする場合など。

最初のシナリオでは、コストと収益の観点から以下のような不等式が成り立ちます:

UserHours of cloud × (revenue − Cost of cloud) ≥ UserHours of datacenter × (revenue − Cost of datacenter / Utilization)

すなわち、クラウドコンピューティングを使用した場合の予想利益と、平均稼働率を考慮したデータセンターを使用した場合の予想利益を比較します:

ユーザー利用時間 * (時間当たりの収益 - クラウドサービスコスト) >= ユーザー利用時間 * (時間当たりの収益 - データセンターコスト / 稼働率)

P.S. 稼働率が100%であれば両辺は等しくなります。しかし、データセンターの利用可能容量は通常60%から80%であるため、実際にはサービスが利用できなくなります。

例えば、あるサービスが日中の需要ピーク時には500台のサーバーを必要としますが、夜間は100台で済むとします。1日の平均使用量は300台で、使用時間は 300 * 24 = 7200 時間です。しかし、需要のピークに対応するためには、500 * 24 = 12000 サービス時間分のコストが必要となり、実際の必要量の約1.7倍になります。したがって、クラウドサービスを3年間(減価償却を3年と仮定)使用するコストがサーバー購入コストの1.7倍を下回る限り、ユーティリティコンピューティングを使用することで資金を節約できます。

実際には、需要のピークは通常平均値の2~10倍に達するため、データセンターサーバーの稼働率は一般的に5%から20%にとどまります。需要のピークに対応する唯一の方法は、リソースを事前にプロビジョニングしておくことです。しかし、すべての需要ピークを事前に予測できるわけではありません。例えば、ニュースイベントによって引き起こされる需要の爆発などです。このような場合、クラウドコンピューティングが提供するリソースの弾力性が特に重要になります。

コスト要因に加えて、リスクの転嫁能力もクラウドコンピューティングの経済モデルにおける重要な価値です。需要のピークがサービス能力を超えると、下図のように経済的損失が発生します:

[caption id="attachment_1993" align="alignnone" width="625"]peak load risk peak load risk[/caption]

一部のユーザーの潜在的収入を失うだけでなく、体験の悪化により一部のユーザーが永久に離脱してしまう結果を招きます。

その他のコストリスクもクラウドコンピューティングによって回避できます。例えば:

  • 事業の減速などの予期せぬ理由による規模縮小で発生する、余剰サーバーの処理に伴う減価償却損

  • ハードウェア・ソフトウェアの世代交代に伴う追加コスト

従量課金制の短期レンタルモデルは、クラウドユーザーの利用コストを削減し、強力な購買力を持つクラウドベンダーも規模の経済を最大限に活用して収益を上げることができます。クラウドユーザーにとっては、リソースコストの変化を価格に迅速に反映させることができ、例えばハードウェアコストの低下による経費削減の恩恵を直ちに受けることができます。

5. クラウドコンピューティングの10の障害と機会

障害機会
サービスの可用性(Availability of Service)マルチクラウドベンダーの採用、弾力性を活かしたDDoS対策
データの囲い込み(Data Lock-In)APIの標準化、Surge Computingをサポートする互換ソフトウェア
データの機密性と監査可能性(Data Confidentiality and Auditability)暗号化、VLAN、ファイアウォールなどの導入、地理的なデータ保存
データ転送のボトルネック(Data Transfer Bottlenecks)FedEx等でのディスク輸送、データバックアップ/アーカイブ、大帯域幅スイッチ
パフォーマンスの予測不可能性(Performance Unpredictability)VMサポートの最適化、フラッシュメモリ、VMの並行スケジューリング
スケーラブルなストレージ(Scalable Storage)スケーラブルなストレージの発明
大規模分散システムのバグ(Bugs in Large Distributed Systems)分散仮想マシンに適したデバッガの発明
迅速なスケーリング(Scaling Quickly)機械学習を活用したオートスケーリングメカニズムの発明、スナップショットによる保護機能の構築
レピュテーションの共有(Reputation Fate Sharing)Emailのようなレピュテーション保証の提供
ソフトウェアライセンス(Software Licensing)有料ライセンスの使用、バルク販売

P.S. 最初の3つはクラウドコンピューティング導入の技術的障害、中間の5つはクラウドコンピューティング発展の技術的障害、最後の2つはクラウドコンピューティング導入の政策的・業務的障害です。右側の対応する「機会」は、期待される解決策です。

6. ビジョン

The long dreamed vision of computing as a utility is finally emerging.

ユーティリティとしてのコンピューティングという長年の夢が、ついに現実のものとなりつつあります。

クラウドベンダーは、自社が保有するコンピューティングリソースを従量課金モデルで販売し、リソースの再利用を通じて利益を得ることが期待されています。クラウドユーザーは、自社データセンターの構築にかかる高額なコストを節約できると同時に、リソースの事前プロビジョニングのリスクから解放されます。

同時に、開発者はクラウド環境へのデプロイをサポートするために、仮想マシンの水平スケール(スケールアウト)に注力すべきです。具体的には:

  • アプリケーションソフトウェア:CPUやメモリなどのリソースの増減を含む垂直スケール(スケールアップ/ダウン)をサポートし、従量課金型のライセンスモデルも必要です。

  • インフラストラクチャソフトウェア:VM上での実行をサポートし、課金機能が組み込まれているべきです。

  • ハードウェアシステム:コンテナの規模で設計すべきであり、これが最小の購入単位となります。運用コストはパフォーマンスと購入コストに見合ったものであり、同時に省エネも考慮し、アイドル状態のリソースは低電力モードに移行できるようにすべきです。プロセッサはVMとうまく連携し、フラッシュメモリもメモリ階層に組み込み、LANスイッチやWANルーターも帯域幅とコストパフォーマンスを向上させる必要があります。

7. 考察

リソースの観点から見ると、クラウドコンピューティングがもたらす変革は主にリソース使用コストの削減とリソース利用率の向上にあります。

規模の経済により、一元管理されたコンピューティングリソースの購入・運用コストはより安価になり、さらに仮想化技術を通じてハードウェアを共有・再利用することで、リソース使用コストをさらに引き下げることができます。

リソース利用率の向上は、以下の4つのレベルで体現されます:

  • マシンレベル:迅速にレンタルと解放が可能です。保有するマシン数は、アプリケーションが必要とするマシン数に近くなります。

  • リソースレベル:物理マシンのハードウェア能力に縛られることなく、異なる種類のリソースをオンデマンドで取得できます。レンタルするリソースは、アプリケーションの実際のニーズに合致させることができます。

  • 負荷(ワークロード)レベル:仮想化技術によりハードウェアリソースを共有でき、CPUのマルチコア特性を十分に活用できます。ハードウェアの能力をフル稼働させることができます。

  • レンタル期間レベル:従量課金制の短期レンタルモデルがもたらすリソースの弾力性は、オフピーク時のリソース利用率が低かった状況を改善します。柔軟な調配により、アイドル時間に対するコストを支払う必要がなくなります。

参考資料

コメント

コメントはまだありません

コメントを書く