注目を集めるクラウドサービス
XaaSは、
X(Anything) as a service
の略です。
「サービスとしてのX(何か)」ということで、XaaSでは、特定のモノや機能をサービスとして提供します。
多くの場合、基本的には様々なクラウドサービスの総称で使われます。
例えば、
SaaS (Software as a service)
は、クラウドでの色々なソフトウェアサービスを指します。
近年、このXaaSが増えています。
2020年以降は、世界的なリモートワークの普及を始めとする環境の変化により、さらに注目されている考え方です。
今日は、XaaSのいくつかを、代表的な例と合わせて紹介します。
SaaS、PaaS、IaaS
まずは、SaaS、PaaS、IaaSです。
それぞれ、
- SaaS (Software as a service)
- PaaS (Platform as a service)
- IaaS (Infrastructure as a service)
を表しています。
SaaS
SaaSは、文字通りサービスとしてのソフトウェアです。
クラウドで提供される様々なソフトウェアサービスのことを指します。
- Gmail
- Microsoft Office 365
- Dropbox
- Evernote
- Slack
などが代表例です。
多くの人が一度は使ったことがあるのではないでしょうか。
SaaSでは、無料で使用できる範囲と、様々な課金方式(月額、従量など)を採用した有料版が用意されていることが多いです。
- 導入が簡単
- 管理しやすい
- どこでも使える
などの利点があります。
SaaSではない方法で、ソフトウェアを大規模に使用する場合、導入コストが通常大きくなります。しかし、SaaSの場合はクラウドサービスのため、自分の敷地内に一から環境構築する必要がなく、導入コストを抑えられます。
システム的な管理が簡単、という点もメリットです。ユーザー側で保守、メンテナンスなどの作業が発生しないためです。
どこからでも使用できるという点もSaaSの利点です。
一方で、
- セキュリティに注意する必要がある
- メンテナンスやバージョンアップ、障害などで、一時的に使用できなくなることがある
というデメリットもあります。
SaaSを使用する際には、クラウドでのサービス提供という性質上、セキュリティを常に意識する必要があります。大規模に導入する場合は、セキュリティガイドラインを策定しているケースもあります。
またメンテナンスや障害などで、使用不可の時間が発生する可能性があります。
SaaSを利用する場合には、これらのデメリットを考慮しつつ、メリットを最大限活かせるようにサービスを選ぶ必要があります。
PaaS
PaaSは、
プラットフォームを提供するサービスです。
SaaSは、ソフトウェア機能を提供していましたが、PaaSでは、そのソフトウェアを構築するためのプラットフォーム(基盤)をサービスとして提供します。
- Amazon Web Services (AWS)
- Google App Engine (GAE, App Engine)
- Microsoft Azure (Azure)
などが広く知られています。
企業や開発者は、PaaSを利用することで、これらのプラットフォームの上に、自分でサービスを構築することができます。そのため開発者が、自分のサービス開発に集中しやすいというメリットがあります。
IaaS
IaaSは、
仮想マシンやネットワークなどのインフラそのものをクラウドサービスとして提供します。
- Amazon EC2
- Google Compute Engine
- Microsoft Azure IaaS
- VMware vCloud
などが知られています。
IaaSでは、ソフトウェア開発やサービスリリースに必要なインフラをクラウドで借りるイメージです。このため、IaaSでは、SaaSを利用するよりも、自由に開発環境をカスタマイズできます。その分、導入後の開発、運用には専門知識が必要とされます。
まだまだあります
XaaSには、SaaS、PaaS、IaaS以外にも多くのものがあります。
比較的知られている、
- BaaS (Backend as a service)
- CaaS (Container as a service)
- DaaS (Desktop as a service)
- FaaS (Function as a service)
- 番外編:MaaS (Mobility as a service)
を紹介します。
BaaS
BaaSは、
アプリケーションのバックエンド機能を提供します。
バックエンド機能とは、アカウント管理やデータ保持などを含むサーバー関連の様々な機能のことです。モバイルアプリ開発の時にBaaSを利用することで、開発者はサーバーサイド以外の開発に集中することができます。
BaaSはMBaaS (Mobile Backend as a service)と言われることもあります。
BaaSとしては、Firebase(Google)、CloudKit(Apple)、Kinvey(Progress)などが知られています。
CaaS
CaaSは、
「開発しやすい環境」をサービスとして提供します。
CaaSのC、コンテナは、専門用語です。
OSや周りの環境からある程度隔離されたコンテナ、を開発が利用しやすい形で用意することで、ユーザー(開発者)が開発を効率的に行うという考え方がCaaS活用の基本です。
そういう意味では、IaaSやPaaSに近いのですが、コンテナ技術をもとにした開発環境を提供するという点が、CaaSの特徴です。
CaaSとして、Google Kubernetes EngineやAmazon Elastic Container Serviceなどのサービスが知られています。
DaaS
DaaS (Desktop as a service)は、
PCのデスクトップ環境をクラウド経由で提供するものです。
DaaSは、デスクトップ仮想化とよく比較されます。
デスクトップ仮想化は、ユーザー側のサーバー経由で仮想デスクトップ環境が提供されるため、保守管理はユーザー側が行います。DaaSでは、クラウド経由でサービス提供者側がデスクトップ環境を提供し、保守管理も原則としてサービス提供者が行います。
DaaSには、Amazon WorkSpacesやVMware Horizon DaaSなどがあります。
FaaS
FaaSは、
Function(機能)を提供するものです。
開発者=ユーザーは、ソフトウェアやプラットフォームよりも、さらに細かい範囲で必要なもの=機能だけ、活用できるイメージです。
開発者は、FaaSを利用することで、複雑なインフラについて考えることなく、アプリケーション機能を、開発、実行、管理することができます。
FaaSやBaaSを用いた開発は、サーバーレス開発と言われることもあります。
FaaSの代表例は、AWS Lambdaです。
MaaS
番外編として、
MaaS (Mobility as a service)
を紹介します。
MaaSはクラウド経由で交通機関を提供するものです。
ライドシェアのUberやLyftが広く知られています。
MaaSは、環境への配慮、経済効率性などから、今後さらに普及することが予想されています。
サービスとしての…
XaaSは近年、急速に活用が進んでいます。
様々な企業から多くのXaaSが提供されています。
自分の用途に合わせて、XaaSを利用することができれば、
効率よく開発を進められるのではないでしょうか。
また、XaaSは開発以外の文脈でも、色々な場面で使われる用語になっています。
番外編として紹介したMaaSは、
- Management as a service
- Monitoring as a service
などの略語としても使われるようです。
また、Desktop as a serviceとして紹介したDaaSも、
- Data as a service
の意味で使用されることもあります。
それほど、クラウドサービスの普及は著しいと言えます。
これらの、XaaSを活用することで、さらに面白いプロダクト / サービスを作っていけると思います。
また、無料利用枠や従量課金をうまく利用することで、比較的安価に、個人利用できる可能性があります。
気になった人は、プログラミング学習で、XaaSを使うことを検討してみてはどうでしょうか。
コメント