Saas、Iaas、Paas、Maas、Caasなどなどの「なんたらaas」、および、サーバーレスコンピューティングについて、一度自分なりの整理をしておこうかと思います。
目次
- 自分流に4つのグループに分類
- 1.クラウドコンピューティング(Iaas、Paas、Saas)
- 2.クラウドコンピューティング(Naas,Daas)
- 3.サーバーレスコンピューティング
- 4.その他、新しい技術の概念的なこと
- おまけ:それ以外にも乱立する「なんたらaas」
自分流に4つのグループに分類
主要なものだけ、かつ、大きく、4つの分類にわけてから整理しようと思います。
なお、この分類は自分流です。
あしからず。
分類は
- クラウドコンピューティング(Iaas、Paas、Saas)
- クラウドコンピューティング(Naas,Daas)
- サーバーレスコンピューティング
- その他、新しい技術の概念的なこと
です。
1.クラウドコンピューティング(Iaas、Paas、Saas)
昔からあるやつです。
ようするに、Iaas、Paas、Saasです。
ざっくりカバー範囲のイメージを描くと、こんな感じです。
Iaas(Infrastructure as a Service)は、クラウド上で仮想化されたコンピュータ基盤を提供するサービスです。
ここで言うコンピュータ基盤は、一般的に、ネットワーキング機能、コンピュータ (仮想または専用ハードウェア)、データストレージ領域へのアクセスなどです。
クラウドがでてくるまでは、各企業などが自前で構築するのが当たり前でしたが、1年に数回ピークがきて、あとはショボショボみたいな処理とか、毎年のように利用者が増えて、どんどん強化しないといけなくなったりとかするシステムの場合、環境の増強や維持が非常に大変でした。
特に前者の場合、年に1週間ほどのピークにあわせたバックボーンを1年中維持する必要があったりすると、ものすごく非効率で高コストになりますから。
だから。
処理量の増大や一時的ピークに対応するためのスケールアップ(サーバー個々の能力増強)や、スケールアウト(サーバーの台数を増やすことによる能力向上)が柔軟にできて、使った分だけ支払えばよいというのは、すごい魅力的だったりしましたね。
なお、仮想環境でコンピュータ基盤を提供するという点でVPSも似てますが、こちらはスケールアップやスケールアウトの柔軟性がなく、普通にハードウエアをシェアして使う形と同じになるので、Iaasとは呼びません。
Paas(Platform as a Service)はコンピュータ基盤にプラスして、ソフトウエアを開発・運用する土台となる開発環境をプラットフォームとして提供するサービスです。
OS・データベース・ミドルウエアなどを組み合わせたプラットフォームを利用できます。
システムの基盤はハードウエアだけじゃないですからね。
OS・データベース・ミドルウエアなどを企業が自前で管理するのも意外に大変です。
不具合修正や機能強化のパッチを適用したり、サポート切れ等に対応してバージョンアップをしたりしないといけません。
その度に、非互換調査をしたり、テスト環境に適用して手順の確認&動作確認したりして結構気をつかいます。
そのあたりをクラウドベンダーにおまかせで、リソースの調達やソフト保守・パッチの適用などに煩わされないで、ユーザがアプリケーションの開発・デプロイに集中できるというのは、有難いのですね。
ちなみに。
このPaasの発展形ととらえると理解しやすいと思うものに、Caas(Container as a Service)があります。
これは、OSの上にのっかったミドルウエア(Webサーバー・データベース他)などをDocker上に構築して、それをアップロードするような形で運用します。
kubernetes等の運用支援の仕組の利用など、Dockerを使うことによるメリットが、そのままアドバンテージになります。
これからは、こっちの方が主流になるのかな・・とすら思えます。
あと。
ミドルウエアの中でデータベースに特化したものもあります。
これも「Paas」の仲間だと思ってます。
DBaas(Database as a Service)と呼ばれてます。
クラウド上の仮想データベースを利用するわけです。
データベースについても、データの肥大化や処理集中によって、高い処理容量や莫大な記憶容量が必要になったりします。
そんな場合に,新たにデータベースを増築・改修することなく、柔軟に処理容量や記憶容量を変更できるというのは大きなメリットでしょうね。
特に、どんどんDBの容量や処理能力の増強が必要になる急成長のサービスにとってはありがたいだろうなと思えます。
自分が特に注目しているのは、Vitessです。
YouTubeの巨大化を支えたデータベースシステムなのですが、これがDBaas化されたみたいなんですね。
稼働中に簡単にデータベースのレプリケーションができる特徴は、EUのGDPR(一般データ保護規則)の順守をしつつ、かつ、高い可用性を維持する課題を持つグローバルなシステムには、ドンピシャですから、成長するんじゃないかなあと思ってます。
正直、大規模システムのバックボーンとしてのDBは複雑さを増していて、こういうサービスでもないとやってられない・・領域になっているんでしょうね。
Saas(Software as a Service)は、サービスプロバイダーが管理する完成した製品を利用するサービスです。
エンドユーザーアプリケーションを指すことが一般的です。
クラウドの初期のころの話題は、これに集中していた感じだったのを覚えてます。
サービス提供側が用意した決まったソフトウエアしか使えないという制約はあります。
でも、それが適合するのであれば、コスト面のメリットに加えて、ソフトウエアのバージョンアップやパッチの適用などのソフトウエア保守面をユーザが気にする必要がないというメリットがあります。
実際。
会計とか給与計算とかみたいに、企業ごとのやり方の差が少ない業務むけにはかなり浸透していて、実際に使っているという人も多いでしょうね。
最近は、これらにも亜流がでてきているみたいです。
例えば、RaaS(Robot as a Service)ですね。
これは、クラウド経由で提供するソフトウエアが、ロボットの機能を実現する制御用のソフトウェアに特化しているものみたいです。
使用量に応じて課金するサブスクリプション(購読)モデルで提供できるため、初期導入費なしにロボットを提供するメーカーがでてきていたり、ロボットの稼働状況などをクラウドで把握して設置後の最適化も図りやすくなったりします。
個人的には、すごい面白いなと思ってます。
あと。
迷惑なやつもあって。
- 詐欺用アプリを提供する「Faas(Fraud as a Service)」
- PCをハックして身代金をとる「Raas(Ransomware as a Service)」
- DDos攻撃を仕掛けるアプリを提供する
みたいな犯罪者が使う総称「Caas(Crimeware as a service)」があります。
まあ、提供形態としてはSaasなんでしょうけど、堪忍してほしいです。
FaasとかRaasとかの4文字を頼りに検索してて、英語のページなんかで、たまにこういう類のやつがでてくることがあります。
うっかり開いてみるとかしないよう気をつけてくださいということで書いておきます。
2.クラウドコンピューティング(Naas,Daas)
クラウドコンピューティングのサービスのひとつとして提供されているのですけど、IaasでもPaasでもSaasでもないもの・・です。
適当な分類がなかったので、思いつきで(ユーザサイド)をつけてしまいました。
異論あるかもしれませんが、ご容赦ください。
無理やりイメージ図に加えるとこんな感じですかね。
Daas(Desktop as a Service)はクラウド上に存在する仮想デスクトップ環境をネットワーク越しに利用します。
ここで言う「仮想デスクトップ環境」は、今のところ、自分が知っているのは、ほぼWindowsです。
個人用のデスクトップ環境をクラウド上に構築して、外部の端末からデスクトップ環境を呼び出して利用する形です。
イメージ的には.クラウド上に存在する自分の仮想コンピュータをリモートデスクトップで操作しているような感じの利用形態なので、イメージはしやすいですね。
本家マイクロソフトのクラウドや、GoogleがChromeBookでWindows環境を提供するサービスをしてたりしています。
Naas(Network as a Service)はハード、ソフト両面からの仮想ネットワーク技術を活用することで、ルータを始めとしたネットワーク機器を用意せずに、LAN・WAN・VPNなどと同等のネットワーク環境をクラウド上に構築するサービスです。
同じNaasをうたってても、提供企業によってサービスの内容とかは違うみたいですので、一概にこういうものとは言いづらいのですが。
例えば。
Pertino社の場合だと、接続用ソフトウェアをダウンロードし、メールアドレスを使ってサインインして、接続したいユーザー/デバイスに招待状を送るだけでセキュリティ的にもネットワークを構築できるみたいです。
ネットワーク構築と維持は結構面倒ですし、従来のクラウドサービスも、ユーザからクラウドまでのネットワークまではカバーしていなかった隙間をうめた感じですね。
3.サーバーレスコンピューティング
自分も最初勘違いしたのですけど「サーバーレス=サーバーがない」ではないです。
アプリケーションの開発者がサーバーを意識しなくても良い。
そういう意味での「サーバーレス」です。
リクエストに応じて処理を実行し、結果を返すようなサービスを主にクラウドで提供し、処理の実行時間に応じて課金するような形態になります。
処理が動いていない間は0円ですから、うまく使えば、かなり効率的ではあります。
イメージ的には、こんな感じなんですかね。
超荒っぽいですが・・(笑)
Faas(Function as a Service)は、最近では「Faas=サーバーレスコンピューティング」みたいな説明がされていることも多いくらいの代表的な形態です。
クラウドプロバイダーの方で必要なプログラムコードの実行環境を提供してくれます。
開発者側が用意する任意のプログラムが実行可能です。
リクエストの送受信もプロバイダ側の管理にまかせてしまうような形になるのが特に特徴的です。
処理のトリガになるイベントやリクエストが発生していないとき(動いていない時間)は課金されないので、利用頻度の低いシステムとかではコストを抑えられるというメリットがあると言われてます。
でも、当然ながら、プロバイダ側への依存度が高くなって、簡単に移行できなくなるとかのデメリットもあります。
あと・
開発時のテストがしづらいのは、あるでしょうね。
そのままだと都度クラウドにつながないと実行できないわけですから。
なので、プロバイダが提供するデバッグ用のFaas向けプログラム実行ソフトウエアなどが提供されているようです。
Baas(Backend as a Service) はアプリケーションを作成する上で必要なサーバ側の機能をプロバイダ側が提供し、それをAPIのような形で利用するタイプです。
Faasと異なり、プロバイダが提供しない機能を任意で追加したりはできません。
サーバー側の機能とは
- ユーザー登録、IDの再発行、ユーザー情報の管理
- メール通知、プッシュ通知
- GPSを活用した、位置情報サービスとの連携
- TwitterやFacebookなどソーシャルネットワークサービスとの連携
- データやコンテンツの保存/管理機能
みたいなことを指します。
自由度が低くても、必要とする機能が合致する場合は、利用するのがFaasよりも手軽だったりするので、良いなとは思うのですが、最近は何故かFaasに押されているという話をよく聞きます。
MBaas(Mobile Backend as a Service)はモバイルに特化した「Baas」です。
実際には、Baas自体をモバイルに特化して使っている場合もあります。
なので、「Baas」って書いてあるけれど、内容的には「MBaas」と同じことだったりするので、両方共、ほぼ同じ意味と考えればよいみたいです。
4.その他、新しい技術の概念的なこと
上記までは、システム開発・運用の基盤やプラットフォームに関連する「なんたらaas」でしたが、それに全く当てはまらないものもあります。
Maas(Mobility as a Service)はICTを利用して、交通をクラウド化して、マイカー以外の全ての交通手段による移動(モビリティ)をひとつのサービスとしてとらえる概念のことです。
ITmediaでこんな図があったので、引用させてもらいます。
http://www.mlit.go.jp/pri/kikanshi/pdf/2018/69_1.pdf
まさしく、概念・・とか夢を語るレベルの話なので、興味があれば、上記をどうぞ。
おまけ:それ以外にも乱立する「なんたらaas」
他にもいろいろあります。
そのくらい、「なんたらaas」は乱立しています。
自分も、A~Zまで全部あるんじゃないかと思ってて、一度、調べてみようと思ったことがあります。
実は同じことを考えて調べてくれた方がいたのでやめたんですけどね。
この記事によると「J」だけなかったらしいですが・・、今まさに、誰かが「Jaas」になるネタを考えてるかもしれませんし、きりがありません。
ということで。
すべては、書ききれません。
ちなみに、数ある「なんたらaas」で個人的に一番うけたのはこれです。
Zaas=サービス残業です。
いわゆるブラック企業で行われている人件費のクラウド化である。
残業代は雲のようにどこかへ消え去る。
なかなか洒落がきいてますよね。
ではでは。