クラウドコンピューティングとは?IaaS・PaaS・CaaS・FaaS・BaaS・SaaS・KaaSの違い
クラウドコンピューティングとは、インターネット経由で、コンピュートリソースを提供する形態です。IaaS・KaaS・CaaS・PaaS・FaaS・BaaS・SaaSの順で、プロバイダーが提供するリソースの範囲が大きくなり、ユーザーのリソース管理の負担が小さくなります。
- クラウドコンピューティングとは?
- XaaSが提供するリソース範囲の比較
- IaaS(Infrastructure as a Service)
- KaaS(Kubernetes as a Service)
- CaaS(Container as a Service)
- PaaS(Platform as a Service)
- FaaS(Function as a Service)
- BaaS(Backend as a Service)
- SaaS(Software as a Service)
- まとめ
クラウドコンピューティングとは?
クラウドコンピューティング(cloud computing)とは、プロバイダーが管理するコンピュートリソースを、インターネット経由で提供する形態です。
コンピュートリソースとは、システムを構成するハードウェアやソフトウェアのことで、サーバー、データストレージ、ネットワーク、OS、ミドルウェア、アプリケーションなどがあります。
クラウドコンピューティングによるサービスは、クラウドサービスやXaaS(X as a service:ザース)と呼ばれます。
XaaS全般に共通する特徴は、以下になります。
- 物理サーバーやプラットフォームを管理する必要がない。
- リソースの増減を柔軟に行うことができる。
- Webアプリとして、オンデマンドで利用することができる。
- 料金体系が、従量課金制やサブスクリプションである。
XaaSは役割の違いから、SaaSとそれ以外に大別されます。
SaaSは、エンドユーザーが利用する業務アプリケーションを提供するサービスであり、ユーザーが管理するリソースはデータのみです。
SaaS以外は、SaaSなどのWebアプリを開発、運用するためのシステム基盤を提供するサービスであり、エンジニアが利用するものです。
主なXaaSには、IaaS・KaaS・CaaS・PaaS・FaaS・BaaS・SaaSがあり、この順で提供されるリソースの範囲が広くなります。
つまり、ユーザーのリソース管理の負担が小さくなる一方、プラットフォームやアプリケーションのカスタマイズの自由度は小さくなります。
FaaSとBaaSは、バックエンドのプラットフォーム管理が不要であるため、サーバーレスコンピューティングとも呼ばれます。
XaaSが提供するリソース範囲の比較
各サービスにおいて、プロバイダーが管理するリソースの範囲は以下になります。
IaaS(Infrastructure as a Service)
仮想化システム、ハードウェア
KaaS(Kubernetes as a Service)
コンテナランタイム、OS、仮想化システム、ハードウェア
CaaS(Container as a Service)
コンテナプラットフォーム、コンテナランタイム、OS、仮想化システム、ハードウェア
PaaS(Platform as a Service)
ランタイム、ミドルウェア、コンテナランタイム、OS、仮想化システム、ハードウェア
FaaS(Function as a Service)
バックエンドプラットフォーム、ランタイム、ミドルウェア、コンテナランタイム、OS、仮想化システム、ハードウェア
BaaS(Backend as a Service)
バックエンドアプリ、ランタイム、ミドルウェア、コンテナランタイム、OS、仮想化システム、ハードウェア
SaaS(Software as a Service)
フロントエンドアプリ、バックエンドアプリ、ランタイム、ミドルウェア、コンテナランタイム、OS、仮想化システム、ハードウェア
IaaS(Infrastructure as a Service)
IaaS(Infrastructure as a Service:イアース)とは、仮想化されたITインフラを、インターネット経由で提供するサービスです。
ITインフラの構成をカスタマイズし、OS以上のレイヤーを自由に構築することができます。
ITインフラとして、仮想サーバーやストレージ、ネットワークなどが提供されます。
仮想サーバーとは、1台の物理サーバーを仮想化システムによって、複数の独立したサーバーとして利用できるようにしたものです。
仮想サーバーは、CPUのスペック、メモリーやディスクの容量、OSなどを選択することができます。
仮想サーバーを利用することで、ITインフラのコストを最適化することができ、リリース後のスケールアップ(サーバーのスペック増)やスケールアウト/イン(サーバー数の増減)も柔軟に行うことができます。
IaaSは、XaaSの中で最もシステム基盤の構築、運用の自由度が高いサービスとなります。
その反面、仮想サーバーのスケーリングやOSのパッチ適用といった、管理の負担が大きく、インフラエンジニアが必要となります。
IaaSの代表例は、以下になります。
KaaS(Kubernetes as a Service)
KaaS(Kubernetes as a Service:カース)とは、Kubernetesベースのコンテナ実行環境を、インターネット経由で提供するサービスです。
コンテナとは、OSを仮想化して、複数の独立した実行環境として利用できるようにしたものです。
つまり、KaaSは、仮想化されたITインフラに加え、仮想化されたOSも提供するものです。
Kubernetes(クバネティス)は、コンテナを管理するコンテナオーケストレーションシステムのデファクトです。
コンテナオーケストレーションシステムは、コンテナ化されたアプリケーションのデプロイや稼働、クラスター管理、スケーリング、ロードバラシング、監視、ロギング、認証、セキュリティ、障害への対応などの多くの作業を自動化します。
多くのクラウドプロバイダーがKaaSを提供しているため、Kubernetes上で稼働するよう構築されたシステムは、ベンダーロックインしにくくなるというメリットがあります。
KaaSの代表例は、以下になります。
- Amazon EKS(Amazon Elastic Kubernetes Service)
- GKE(Google Kubernetes Engine)
- AKS(Azure Kubernetes Service)
CaaS(Container as a Service)
CaaS(Container as a Service:カース)とは、フルマネージドのコンテナプラットフォームを、インターネット経由で提供するサービスです。
Kubernetes クラスターの構成や管理が不要であり、KaaSより管理の負担が軽くなります。
コンテナ化されたステートレスなマイクロサービスに開発に向いているサービスです。
CaaSの代表例は、以下になります。
PaaS(Platform as a Service)
PaaS(Platform as a Service:パース)とは、アプリケーションを開発、運用するためのプラットフォームを、インターネット経由で提供するサービスです。
仮想化されたITインフラとOS、コンテナランタイムに加え、ミドルウェアとプログラミング言語の実行環境を提供します。
つまり、PaaSは、ミドルウェア以下のレイヤーの管理が不要であるフルマネージドなサービスです。
ミドルウェアには、WebサーバーやDBサーバーなどがあります。
一定の制限下で、アプリケーションを構築することができます。
PaaSの代表例は、以下になります。
FaaS(Function as a Service)
FaaS(Function as a Service:ファース)とは、バックエンドのプラットフォームを、インターネット経由で提供するサービスです。
エンジニアは、提供されたバックエンドのアプリケーション実行基盤上で動く機能を開発します。
FaaSは、バックエンドプラットフォームの管理が不要であるため、サーバーレスコンピューティングの範疇でもあります。
FaaSの代表例は、以下になります。
BaaS(Backend as a Service)
BaaS(Backend as a Service:バース)とは、バックエンドのアプリケーションを、インターネット経由で提供するサービスです。
BaaSを利用すれば、開発者はフロントエンドのアプリケーションに専念することができます。
BaaSは、バックエンドの管理が不要であるため、サーバーレスコンピューティングの範疇でもあります。
BaaSの代表例は、以下になります。
SaaS(Software as a Service)
SaaS(Software as a Service:サース)とは、アプリケーションとストレージのセットを、インターネット経由で提供するサービスです。
Webアプリの中でも、クラウド上にデータを蓄積して共有、利活用することを目的としたサービスが、SaaSに当たります。
ソフトウェアもハードウェアもプロバイダーが管理するため、ユーザーが管理するのはデータのみです。そのため、エンジニアがいない職場でも気軽に利用することができます。
ただし、アプリケーションの処理や画面のカスタマイズは、あまりできません。
SaaSの代表例は、以下になります。
- Google WorkspaceやMicrosoft 365などのグループウェア
- Salesforceなどの営業支援(SFA)・顧客管理(CRM)プラットフォーム
- クラウド型の勤怠管理システムや会計サービス
まとめ
クラウドコンピューティングとXaaSについて、解説しました。
クラウドコンピューティングとは、プロバイダーが管理するコンピュートリソースを、インターネット経由で提供する形態です。
IaaS・KaaS・CaaS・PaaS・FaaS・BaaS・SaaSの違いは、以下の通りです。
この順に、システム構築の自由度が高くなり、管理の負担が大きくなります。
- IaaS(Infrastructure as a Service)は、ITインフラを提供
- KaaS(Kubernetes as a Service)は、コンテナ実行環境を提供
- CaaS(Container as a Service)は、コンテナプラットフォームを提供
- PaaS(Platform as a Service)は、アプリケーション実行環境を提供
- FaaS(Function as a Service)は、バックエンドのプラットフォームを提供
- BaaS(Backend as a Service)は、バックエンドアプリケーションを提供
- SaaS(Software as a Service)は、アプリケーションシステム全体を提供