astris.design

クラウドコンピューティングとは?IaaS・PaaS・CaaS・FaaS・BaaS・SaaS・KaaSの違い

クラウドコンピューティングとは、インターネット経由で、コンピュートリソースを提供する形態です。IaaS・KaaS・CaaS・PaaS・FaaS・BaaS・SaaSの順で、プロバイダーが提供するリソースの範囲が大きくなり、ユーザーのリソース管理の負担が小さくなります。

【目次・クラウドとXaaS】

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

クラウドコンピューティング(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の代表例は、以下になります。


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 WorkspaceMicrosoft 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)は、アプリケーションシステム全体を提供