FaaS
クラウドサービスの形態の1つ。利用者は、実行したい処理を関数(ファンクション)として登録するだけで、サーバの管理を意識せずに、イベントに応じてその処理を実行できる。サーバレスとも呼ばれる。
イマシルちゃんの解説
プログラムを動かすには、ふつう、サーバを用意して、OSを入れて、ずっと動かしておかないといけないよね。
FaaSでは、「写真がアップロードされたら、小さいサイズの画像を作る」みたいな処理を、関数として預けておくだけなんだ。
写真が届いたときだけ、クラウドが自動で関数を動かしてくれる。
サーバのお世話はいらないし、動いた分だけお金を払えばいいんだよ!
より深い解説
定義
FaaS(Function as a Service)は、利用者が作成したプログラムを、関数の単位でクラウド事業者の実行環境に配置し、HTTPのリクエストやファイルのアップロードなどのイベントをきっかけに実行させるサービスである。サーバの用意、OSの管理、負荷に応じた台数の増減(スケーリング)は、クラウド事業者が自動で行う。サーバそのものがなくなるわけではないが、利用者からは見えないため、サーバレスと呼ばれる。
代表的なサービスに、AWS Lambda、Azure Functions、Google Cloud Functions(Cloud Run functions)などがある。
特徴
| 特徴 | 内容 |
|---|---|
| サーバの管理が不要 | OSの更新、台数の調整などを意識しなくてよい |
| イベント駆動 | 処理が必要になったときだけ起動する |
| 自動スケーリング | 要求が増えれば、自動的に並列に実行される |
| 従量課金 | 実行した回数と時間の分だけ料金がかかる。何も実行しない時間は課金されない |
注意点
| 注意点 | 内容 |
|---|---|
| コールドスタート | しばらく使われていない関数を起動するとき、実行環境の準備に時間がかかり、応答が遅れることがある |
| 実行時間の制限 | 1回の実行時間に上限があり、長時間の処理には向かない |
| 状態を持たない | 関数の実行ごとに環境が変わるため、データはデータベースやストレージに保存する |
| ベンダーロックイン | 事業者ごとの仕組みに依存しやすい |
クラウドサービスの形態の比較
| 形態 | 利用者が使うもの | 利用者が管理する範囲 |
|---|---|---|
| IaaS | 演算機能、ストレージ、ネットワークなどの基盤 | OS、ミドルウェア、アプリケーション |
| PaaS | アプリケーションを動かすためのプラットフォーム(OS、ミドルウェア) | アプリケーション |
| FaaS | 関数の実行環境 | 関数(プログラムの処理) |
| SaaS | 事業者が提供するアプリケーション | 設定、データ |
| DaaS | 仮想化したデスクトップ環境 | デスクトップの利用 |
| 説明 | 当てはまる形態 |
|---|---|
| 演算機能、ストレージ、ネットワークなどをクラウドに配置して使う | IaaS |
| 仮想化したデスクトップ環境を遠隔地の端末から使う | DaaS |
| クラウド事業者が提供するアプリケーションを使う | SaaS |
| サーバの管理を意識せず、プログラムの実行環境を使う | FaaS |