一方、「狭義のサーバレス」とは、ここ数年の間でにわかに注目を集めるようになった「FaaS(Function as a Service)」の技術を使ったシステムアーキテクチャのことを指す。AWS Lambda、Cloud Functions、Azure Functionsといったサービスが該当するといえば、ピンとくる人もいるだろう。
FaaSは、アプリケーションのプログラムの最小実行単位、つまり「ファンクション」をクラウド上で簡単に実装する仕組みだ。一般的なPaaSがアプリケーションの実行環境までを提供するのに対し、FaaSはそれに加えて「ファンクション」を呼び出し、連携する環境までを提供するというイメージである。
開発者は、プログラミングした個々のファンクションをクラウドのFaaSプラットフォーム上に登録する。その際、個々のファンクションが呼び出されて動くきっかけ、つまり「トリガー」を設定しておく。典型的なトリガーは、他のサービスが何らかの処理を行ったことをきっかけに発動される。このように、他サービスの実行など(イベント)をトリガーとして処理が発動する仕組みのことを一般に「イベントドリブン方式」や「イベント駆動型」と呼ぶ。例えば、データベースを更新するというイベントをトリガーに、FaaSに登録されたファンクションが起動し、メールの送信を行うといった具合だ。
従って、FaaSを利用する場合、ユーザーはサーバの用意はもちろん、アプリケーションの実行環境を整える必要もなく、FaaSプラットフォーム上に個々のプログラム(ファンクション)を登録するだけでいい。後はFaaSのプラットフォームが、あらかじめ設定したトリガーが発生したタイミングで自動的にファンクションを実行してくれる。
このFaaSの先駆けとなった製品が2015年に登場したAWS(Amazon Web Services)の「AWS Lambda」だ。またLambdaの成功を受け、他のクラウドベンダーも続々と同種のサービスを提供し始めている。
なお、実際にシステムを設計する際にはサーバレスアーキテクチャだけでシステム全体を設計・開発するケースは少なく、他のアーキテクチャと組み合わされることが多い。例えば、FaaSとIaaSを組み合わせる例としては、IaaSの仮想サーバ上で稼働するアプリケーションからトリガーを発動してFaaS上のファンクションを呼び出し、特定の処理を行うようなケースが該当する。
もちろん、サーバレスアーキテクチャだけでシステム全体を設計・構築することも可能で、実際にそうした先進的な事例も出てきてはいるが、現時点では数としてはさほど多くない。ではサーバレスアーキテクチャを採用することによって、ユーザーはどのようなメリットを享受できるのだろうか。以下では、IaaSと比較し、FaaSの代表的なメリットを幾つか挙げる。
Copyright © ITmedia, Inc. All Rights Reserved.
製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。