クラウド コンピューティングの進化
- 12 分
クラウドコンピューティングの概念は、1950年代初頭に登場し、ハーブ・グローシュ、ジョン・マッカーシー、ダグラス・パークヒルなど、いくつかの学者が電力に似たユーティリティとしてのコンピューティングを構想しました。 それから数十年経過し、いくつかのテクノロジが現れ、クラウド コンピューティングの基礎を形成しました (図 1.3)。 もっと最近のことになると、World Wide Web の急成長と、Microsoft、Google、Amazon など、インターネット業界の巨人の出現でようやく、クラウドコンピューティング モデルの開花を可能にする経済/ビジネス環境が作れるようになりました。

図 1.3: クラウド コンピューティングの進化。
コンピューティングの進化
1960 代以降、組織で利用されていたコンピューターの最も初期の形態にメインフレーム コンピューターがありました。 複数のユーザーが端末を利用し、基本的なシリアル接続を介してメインフレームに接続し、共有できました。 メインフレームがデータのあらゆるロジック、ストレージ、処理を担い、メインフレームに接続された端末には計算処理能力がなく、あってもわずかでした。 このようなシステムは 30 年以上にわたり広く利用され続け、ある程度は現在も存続しています。
パーソナル コンピューティングが誕生し、プロセッサとメモリが安く、小さく、高性能になったことで方向性が変わり、ユーザーは自分のソフトウェアを実行し、データをローカルに保存するようになりました。 この状況が逆に、非効率的なデータ共有という問題を引き起こし、組織の IT 環境内で秩序を維持するためのルールが作られるに至りました。
徐々にですが、高速ネットワーク テクノロジが開発されたことで、コンピューターを接続し、互いに通信させることを可能にするローカル エリア ネットワーク (LAN) が生まれました。 ベンダーは、パーソナル コンピューターとメインフレームの両方の長所を取り入れるシステムを設計し、その結果、LAN 経由のクライアント/サーバー アプリケーションが人気になりました。 通常、クライアントでは、クライアント ソフトウェアが実行されるか (加えて、一部のデータが処理されます)、サーバーに接続されたターミナルが実行されました (旧式のアプリケーションの場合)。 クライアント/サーバー モデルのサーバーは、アプリケーション、ストレージ、データのロジックを提供しました。
やがて、1990 年代に入り、グローバル情報の時代となり、インターネットが急速に採用されました。 通常のダイアルアップ アクセスであったものが今では専用のファイバー接続となり、ネットワーク帯域幅が何桁も増えました。 加えて、安価で高性能なハードウェアが出現しました。 さらに、World Wide Web と動的な Web サイトの進化には、多層アーキテクチャが必要でした。
多層アーキテクチャにより、アプリケーションのプレゼンテーション層、ロジック層、ストレージ層を個別のエンティティとして分割することでソフトウェアのモジュール化が可能になりました。 このモジュール化と分離により、間もなく、別個の物理サーバーで個々のソフトウェア エンティティが実行されるようになりました (一般的には、ハードウェアとソフトウェアの要件に違いがあるためです)。 その結果、組織において、個別のサーバーが増えることになりましたが、サーバー ハードウェアの平均利用率の低下にもつながりました。 2009年、国際データ社(IDC)は、平均x86サーバの使用率が約5〜10%であると推定した [2]。
仮想マシン テクノロジは 2000 年代になって十分に成熟し、市販ソフトウェアとして利用できるようになりました。 仮想化により、サーバー全体をイメージとしてカプセル化し、そのイメージをハードウェア上でシームレスに実行できます。また、そのイメージにより、複数の仮想サーバーを 1 つの物理サーバーで同時に実行し、ハードウェア リソースを共有することが可能になります。 つまり、仮想化によりサーバーを統合できるため、システムの利用率が適宜改善されます。
同時に、大規模な問題を分散方式で解決しようという取り組みの中、科学コミュニティの間でグリッド コンピューティングが注目されました。 グリッド コンピューティングでは、複数の管理ドメインに属するコンピューター リソースが共通の目標のために連動します。 グリッド コンピューティングから、大規模なコンピューティング リソースを管理するためのリソース管理ツールがたくさん生まれました (スケジューラーやロード バランサーなど)。
さまざまなコンピューティング テクノロジが進化する中、コンピューティングの経済性も進化しました。 メインフレームがコンピューティングの中心であった昔でも、IBM などの企業は、銀行や航空会社など、さまざまな組織のためにコンピューターやソフトウェアのホスト/実行サービスを提供していました。 インターネットの時代になり、サードパーティの Web ホスティングも人気になりました。 しかしながら、仮想化を導入すれば、1 台のサーバーに複数のクライアントを収納し、クライアント間でハードウェアやリソースを共有するという、無類の柔軟性がプロバイダーに与えられます。
そのようなテクノロジが開発され、ユーティリティ コンピューティングという経済モデルと結合して進化し、やがてクラウド コンピューティングになりました。
事を実現するテクノロジ
クラウド コンピューティングは、ネットワーク、仮想化、リソース管理、ユーティリティ コンピューティング、プログラミング モデル、並列/分散コンピューティング、ストレージ テクノロジなど、さまざまなエネイブリング (事を実現する) テクノロジからなります (図 1.4)。

図 1.4: クラウド コンピューティングでのテクノロジの有効化。
高速のユビキタス ネットワーク テクノロジの出現は、実行可能な枠組みとしてのクラウド コンピューティングに大きく貢献しました。 最新のネットワークは、高速で信頼性の高い通信をコンピューターで可能にしますが、そのことはクラウド プロバイダーのサービスを利用するにあたり重要です。 離れた場所にあるデータ センターでソフトウェアを実行しても、パーソナル コンピューターでソフトウェアを実行するときと同じ操作感をユーザーに与えることを可能にしました。 たとえば、Web メールはオフィスの生産性ソフトウェアとして人気です。 また、仮想化はクラウド コンピューティングを可能にするための鍵です。 仮想化では、複数の仮想マシンを利用し、リソースを抽象化してユーザー間で共有することで、複雑なクラウドを管理できます。 各仮想マシンでは、それ自体のオペレーティング システムと関連アプリケーション プログラムを実行できます。
大規模ストレージ システム、分散ファイル システム、新しい種類のデータベース アーキテクチャなどのテクノロジは、クラウドのデータを管理/保管するために非常に重要です。 ユーティリティ コンピューティングからは、計算処理リソースをリースするためのさまざまな課金構造が提供されます。 たとえば、リソース時間あたりの課金、保証されたスループットあたりの課金、月単位で格納されるデータあたりの課金があります。
並列分散コンピューティングにより、ネットワーク接続されたコンピューターに配置された分散エンティティは、並列プログラムとして表され、特定の問題を解決するためにアクションを通信および調整できるようになります。 分散クラスター用の並列プログラムの作成は、本質的に困難です。 クラウドのプログラミング効率と柔軟性を高めるには、プログラミング モデルが必要です。プログラミング モデルが必要です。
クラウド用のプログラミング モデルを使用すると、ユーザーは、並列プログラムを順次計算ユニットとして柔軟に表現できるようになります (たとえば、MapReduce の関数や GraphLab の頂点)。 このようなプログラミング モデルのランタイム システムでは、通常、計算ユニットの並列化、分散、スケジュール設定、ユニット間通信の管理、フォールト トレランスを行います。
リファレンス
Simson L. Garfinkel (1999 年)。 「情報社会のアーキテクト:MIT のコンピューター サイエンス研究所の 35 年間。 MIT Press。
Michelle Bailey (2009 年)。 仮想化の経済性: Application-Based コスト モデルへの移行。 VMware の後援による IDC ホワイトペーパー。
自分の知識をチェックする
フィードバック
このページはお役に立ちましたか?
いいえ
このトピックについてサポートが必要ですか?
このトピックの意図を把握したり、理解を深めたりするために Ask Learn を使ってみませんか?