スタートページWeb教材一覧システム調達

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

キーワード

クラウドコンピューティング、SaaS、PaaS、IaaS、HaaS、BaaS、CaaS、DaaS、FaaS、MaaS、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド、コンテナ、コンテナオーケストレーション、VDI、FaaS、サーバレスサーバレス


NISTによるクラウドコンピューティングの定義

NIST(National Institute of Standard and Technology:米国国立標準技術研究所)は、クラウドコンピューティングを次のように定義しています(https://www.ipa.go.jp/files/000025366.pdf)2011年。

クラウドコンピューティングは、共用の構成可能なコンピューティングリソース(ネットワーク、サーバー、ストレージ、アプリケーション、サービス)の集積に、どこからでも、簡便に、必要に応じて、ネットワーク経由でアクセスすることを可能とするモデルであり、最小限の利用手続きまたはサービスプロバイダとのやりとりで速やかに割当てられ提供されるものである。このクラウドモデルは5つの基本的な特徴と3つのサービスモデル、および4つの実装モデルによって構成される。

基本的な特徴

オンデマンド・セルフサービス(On-demand self-service)
ユーザは、各サービスの提供者と直接やりとりすることなく、必要に応じ、自動的に、サーバーの稼働時間やネットワークストレージのようなコンピューティング能力を一方的に設定できる。
幅広いネットワークアクセス(Broad network access)
コンピューティング能力は、ネットワークを通じて利用可能で、標準的な仕組みで接続可能であり、そのことにより、様々なシンおよびシッククライアントプラットフォーム(例えばモバイルフォン、タブレット、ラップトップコンピュータ、ワークステーション)からの利用を可能とする。
リソースの共用(Resource pooling)
サービスの提供者のコンピューティングリソースは集積され、複数のユーザにマルチテナントモデルを利用して提供される。様々な物理的・仮想的リソースは、ユーザの需要に応じてダイナミックに割り当てられたり再割り当てされたりする。物理的な所在場所に制約されないという考え方で、ユーザは一般的に、提供されるリソースの正確な所在地を知ったりコントロールしたりできないが、場合によってはより抽象的なレベル(例:国、州、データセンタ)で特定可能である。リソースの例としては、ストレージ、処理能力、メモリ、およびネットワーク帯域が挙げられる。
スピーディな拡張性(Rapid elasticity)
コンピューティング能力は、伸縮自在に、場合によっては自動で割当ておよび提供が可能で、需要に応じて即座にスケールアウト/スケールインできる。ユーザにとっては、多くの場合、割当てのために利用可能な能力は無尽蔵で、いつでもどんな量でも調達可能のように見える。
サービスが計測可能であること(Measured Service)
クラウドシステムは、計測能力を利用して、サービスの種類(ストレージ、処理能力、帯域、実利用中のユーザアカウント数)に適した管理レベルでリソースの利用をコントロールし最適化する。リソースの利用状況はモニタされ、コントロールされ、報告される。それにより、サービスの利用結果がユーザにもサービス提供者にも明示できる。

サービスモデル

SaaS(Software as a Service)
利用者に提供される機能は、クラウドのインフラストラクチャ上で稼動しているプロバイダ由来のアプリケーションである。アプリケーションには、クライアントの様々な装置から、ウェブブラウザのようなシンクライアント型インターフェイス(例えばウェブメール)、またはプログラムインターフェイスのいずれかを通じてアクセスする。ユーザは基盤にあるインフラストラクチャを、ネットワークであれ、サーバーであれ、オペレーティングシステムであれ、ストレージであれ、各アプリケーション機能ですら、管理したりコントロールしたりすることはない。ただし、ユーザに固有のアプリケーションの構成の設定はその例外となろう。
PaaS(Platform as a Service)
利用者に提供される機能は、クラウドのインフラストラクチャ上にユーザが開発したまたは購入したアプリケーションを実装することであり、そのアプリケーションはプロバイダがサポートするプログラミング言語、ライブラリ、サービス、およびツールを用いて生み出されたものである。ユーザは基盤にあるインフラストラクチャを、ネットワークであれ、サーバーであれ、オペレーティングシステムであれ、ストレージであれ、管理したりコントロールしたりすることはない。一方ユーザは自分が実装したアプリケーションと、場合によってはそのアプリケーションをホストする環境の設定についてコントロール権を持つ。
IaaS(Infrastructure as a Service)
利用者に提供される機能は、演算機能、ストレージ、ネットワークその他の基礎的コンピューティングリソースを配置することであり、そこで、ユーザはオペレーティングシステムやアプリケーションを含む任意のソフトウェアを実装し走らせることができる。ユーザは基盤にあるインフラストラクチャを管理したりコントロールしたりすることはないが、オペレーティングシステム、ストレージ、実装されたアプリケーションに対するコントロール権を持ち、場合によっては特定のネットワークコンポーネント機器(例えばホストファイアウォール)についての限定的なコントロール権を持つ。
 NISTでは定義していませんが、IaaSは以前はHaaS(Hardware as a Service)と呼ばれていました。ハードウェアという物理的表現をインフラという機能的表現に変えたのだと思われます。

(注)クラウドコンピューティングとSaaSは混同されることが多いのですが、NISTではSaaSはクラウドコンピューティングの一形態だとしています。また、SaaSが普及する以前にASP(Application Service Provider)という用語がありましたが、どうやらSaaSに名称変更になったようです。
 SaaS、PaaS、IaaSを管理主体から整理すると、ほぼ次のようになります。
           SaaS PaaS IaaS
  ハードウェア   提供者  提供者  提供者
  OS       提供者  提供者  提供者〇
  ミドルウェア   提供者  提供者〇 利用者
  アプリケーション 提供者〇 利用差  利用者
     〇:基本的には提供者だが、利用者の個別対応可能

実装モデル

プライベートクラウド(Private cloud)
クラウドのインフラストラクチャは、複数の利用者(例:事業組織)から成る単一の組織の専用使用のために提供される。その所有、管理、および運用は、その組織、第三者、もしくはそれらの組み合わせにより行われ、存在場所としてはその組織の施設内または外部となる。
コミュニティクラウド(Community cloud)
クラウドのインフラストラクチャは共通の関心事(例えば任務、セキュリティの必要、ポリシー、法令順守に関わる考慮事項)を持つ、複数の組織からなる成る特定の利用者の共同体の専用使用のために提供される。その所有、管理、および運用は、共同体内の1つまたは複数の組織、第三者、もしくはそれらの組み合わせにより行われ、存在場所としてはその組織の施設内または外部となる。
パブリッククラウド(Public cloud)
クラウドのインフラストラクチャは広く一般の自由な利用に向けて提供される。その所有、管理、および運用は、企業組織、学術機関、または政府機関、もしくはそれらの組み合わせにより行われ、存在場所としてはそのクラウドプロバイダの施設内となる。
ハイブリッドクラウド(Hybrid cloud)
クラウドのインフラストラクチャは二つ以上の異なるクラウドインフラストラクチャ(プライベート、コミュニティまたはパブリック)の組み合わせである。各クラウドは独立の存在であるが、標準化された、あるいは固有の技術で結合され、データとアプリケーションの移動可能性を実現している(例えばクラウド間のロードバランスのためのクラウドバースト)。

プライベートクラウドは利用企業内、パブリッククラウドはサービス組織になります。個人利用では通常はパブリッククラウドを利用します。


サービスモデルの多様化

NISTではSaaS、PaaS、IaaS(HaaS)の3つのサービスモデルを挙げていましたが、その後、多様なサービスモデル、特定分野のサービスモデルが出現してきました。その代表的なものを列挙します。
 なお、サービスモデルを総称して、XaaSといわれるようにもなりました。XaaSとクラウドコンピューティングは同義語だといえます。

BaaS(Backend as a service)
バックエンド機能とは、利用者が直接操作せずに裏で行っている機能です。アプリのユーザー登録やログイン管理などのアカウント管理、データの保存や共有、アプリ固有のサーバーサイド処理を実装するなどの機能があります。
BaaSは、モバイル向けアプリケーションサービスの一つで、バックエンド機能をクラウド側でサービスします。
BaaS(Backup as a service)
災害や事故の対策として、データのバックアップを主とするサービスです。データセンターのクラウド版だともいえます。
CaaS(Container as a Service)
  • コンテナ(Container)
    コンテナとは1台のサーバのOS上に作られた論理的な区画のことです。コンテナの内部にアプリケーションを動作させるために必要なライブラリなどを1つにまとめて、個別のサーバのように使えるようにします。
    仮想マシンでは、アプリケーションはゲストOS上で動作しますが、コンテナではアプリケーションやライブラリをサーバのホストOS上で動作します。そのため、一つのコンテナだけで処理するときは、仮想サーバよりも効率的です。
  • コンテナオーケストレーション
    複数のコンテナにまたがる処理、あるコンテナがダウンしたときの切り替えなど、複数のコンテナを効率的に運用管理するため仕組みが必要になります。その技術をコンテナオーケストレーションといいます。
  • Container as a service
    クラウド環境でコンテナオーケストレーションをサービスします。PaaSとIaaSの中間的なサービスモデルです。
CaaS(Communication as a Service)
インターネット電話やテレビ会議など、コミュニケーションツールを提供します。ベンダーがハードウェア、ソフトウェアを管理し、ユーザーは従量課金制でそれらを利用します。
DaaS(Desktop as a Service)
仮想デスクトップ(Virtual Desktop Infrastructure、VDI)と似た機能のサービスです。VDIは、企業内のサーバに各利用者のパソコン環境をおき、各利用者は単機能のパソコンとサーバを接続することにより、自分専用のパソコンのように使うことですが、DaaSはVDIをクラウドにしたもので、サービスを提供する側が仮想デスクトップ環境を構築・運営します。
PaaSとも似ていますが、インターネット環境があれば比較的スペックの低いデバイスでも仮想デスクトップ環境を利用できること、仮想デスクトップ環境の一元管理をしやすいのが利点です。また、表計算ソフトやワープロソフトなどのオフィス業務、営業部員なら受注の入力システムなどのソフトウェアをすべてクラウド側で用意するのが一般的です。
そのため、PaaSは主にIT部門など専門家をサービス対象にしているのに対して、DaaSは個人や専門家の少ない組織、あるいは、小規模なアプリケーションも対象にしています。
リモートワークや学校のオンライン授業などにも利用しやすく、環境を統一したり、整えたかったりする場合や自宅や個人のパソコンで作業をさせたくない場合に向いています。
DaaS(Data as a Service)
様々なデータをインターネット上で共有、管理、提供する仕組み、またはビックデータの処理や分析、再利用や活用する仕組みを提供するサービスです。さらに、蓄積されたデータを相互参照したりAIに適用したりするサービスが期待されています。
FaaS(Function as a Service)
アプリケーション開発ではサーバと連携するのが一般的ですが、自社にサーバを設置せず、データベース、メッセージング、認証など、開発に必要な機能を、サービスベンダが管理するクラウド環境からサービスとして提供される仕組みをサーバレスといいます。FaaSは。典型的なサーバレスです。
Amazonが2014年に提供したAWS Lambdaにより、BaaSの機能が飛躍的に向上してFaaSになったといわれています。BaaSなど多くのXaaSはベンダが提供するアプリケーションを利用するのに対して、FaaSは利用者が開発した任意のアプリケーションを実行できるのが特徴です。アプリケーション開発者はサーバーのことを考える必要がなくなり、実行するコードを書くことだけを考えればよい環境になりました。
 PaaSとも似ていますが、PaaSでは処理すべきリクエストがあるたびにアプリケーション全体を起動するリクエストリプライ方式であるのに対して、FaaSでは処理が発生したとき必要な処理部分だけが起動するイベントドリブン方式です(稼働時間により課金されます)ので、利用量の増減が激しい処理では、柔軟に自動スケールできる利点があります。それでECサイトのように負荷予測が難しく変動が激しいアプリケーションに向いています。
MaaS(Mobility as a Service)
これは上の3つのサービス形態とは異なります。公共交通か否か、またその運営主体にかかわらず、マイカー以外のすべての交通サービスを、需要に応じて利用できる一つの移動サービスに統合するものです。現在でも公共交通機関の経路、時刻表、運賃などがオープンデータ化されつつあり、それらを組み合わせた乗換ナビなどのサービスがありますが、それの対象を拡大するとともに、交通系ICカードの利用範囲の拡大、デマンド情報提供、自動運転システムなどを含む統合的なサービス化による公共交通全体のスマート化を目的としています。
 次のような発展レベルがあるとされています。
レベル1:いくつかの交通情報や価格の提供
レベル2:目的地までをセットにした予約や決済の統合
レベル3:公共交通に加えてレンタカー等も統合したサービス提供
レベル4:データ分析による政策の統合