読者です 読者をやめる 読者になる 読者になる

プログラマでありたい

おっさんになっても、プログラマでありつづけたい

サーバレスアーキテクチャ(ServerLess Architecture)とBaaSの違い

 先日、サーバレスアーキテクチャ(ServerLess Architecture)について簡単にまとめてみたところ、様々なご意見頂きました。その中で特に多かったのが次の2つです。

  • サーバレスといっても、裏にはサーバがある
  • 単なるSaaSやPaaS,BaaSを別の言い方にしただけでは?

 面白い視点だと思うので、個人的な見解を整理してみます。

裏にサーバがあるのに、サーバレス?



 「サーバレスといっても、裏にはサーバがある」というツッコミは、その通りです。この文脈で言うサーバレスというのは、利用者側から見て管理するサーバがないという意味です。従来だと、自前でサーバの設定をして、パッチ当てやログの管理が必要でした。ChefやAnsibleなどの構成管理ツールを使ったとしても、自分で管理する必要があるという点では同じです。
f:id:dkfj:20151020080735p:plain

 これに対して、サーバレスの場合はユーザがサーバを管理する必要はありません。例えば、Lambdaというコンピュートエンジンのサービスの例です。おそらく裏には沢山のサーバで構成され、必要に応じて利用されているのだと思います。ユーザはLambdaのFunctionと呼ばれる個々の実行モジュールは管理するものの、そのプラットフォームであるサーバ群を管理する必要はありません。全てサービスの提供者であるAWSが行います。
f:id:dkfj:20151020081215p:plain

 つまりサーバメンテナンスレスと言えるのではないでしょうか?(メンテはAWSがしますよという意味で)

単なるSaaSやPaaS,BaaSの別の言い方では?



 これは、明確にNoと言えます。ここでは、BaaS(バックエンドサービス)との対比で説明します。サーバレスアーキテクチャとBaaSは、利用形態としては非常に近いです。どちらも手軽にバックエンドのサービスを利用するという形態です。明確な違いがあるとすれば、BaaSは本質的にサービス提供者が利用者に制約を課して一定の使い方を仕向けるものに対して、サーバレスアーキテクチャは利用者が特定の目的に沿ってサービスを組み立てるものです。どちらが優れているという話ではなく、レイヤーが違う話です。提供形態の話とアーキテクチャの話なので、そもそも比較の対象ではないですね。そのため、サーバレスアーキテクチャで作られたBaaSというものは、今でも沢山あると思いますし今後もいくらでも出てくるでしょう。
 上記のような前提があるので、利用者視点では以下のようにスタンスになると思います。

  • BaaSは簡単に利用できるもののカスタマイズがし難い
  • サーバレスアーキテクチャは、初期の構築が自前でする必要があるのでBaaSほど簡単ではないもののカスタマイズ性が高い

 実際、私もスマホからデータを溜めるという用途のプロトを作る時には、BaaSをよく利用します。

まとめ



 自分の中で当たり前と思っていることでも、他の人からすると腑に落ちないということは良く有ります。サーバがあるのにサーバレスって確かに面白い視点だなぁと思った次第です。

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2015/03/25
  • メディア: Kindle版
  • この商品を含むブログを見る

See Also:
サーバレスアーキテクチャとは?
仮想サーバ、コンテナサービス、ファンクション
クラウドファーストとクラウドネイティブ
AWS Mobile HubとAmazon API Gatewayからモバイル開発の今後を考える
JAWSUG千葉で、API Gatewayの話をしてきました。