【ふぁーす】

FaaS とは?

最終更新:
💡 「必要なときだけ動く」コードの自動販売機

関数(Function)という小さな単位のコードを、クラウド上でイベントをきっかけに実行できるサービスの形。サーバーの用意や管理を利用者が意識せずに済む「サーバーレス」の代表的な形の1つ。

📌 このページのポイント
FaaS(Function as a Service) HTTP リクエスト スケジュール キュー / イベント トリガー FaaS プラットフォーム 関数 A 短命実行 関数 B 短命実行 サーバー管理は不要 自動スケーリング レスポンス 出力 / 副作用 実行回数と実行時間に応じて課金(待機分は原則かからない)
FaaS(Function as a Service)の仕組み
ひよこ ひよこ
FaaSってサーバーレスと同じもの?
ペンギン先生 ペンギン先生
FaaSはサーバーレスの形の1つ、という関係だよ。CNCFの資料は、サーバーレスを「サーバーの管理を必要とせずにアプリを作って動かす考え方」と説明していて、その代表としてFaaSと、認証やデータベースなどを外部サービスに任せるBaaSを挙げているんだ。サーバーがなくなるわけではなくて、利用者が管理しなくてよい、という意味だよ。
ひよこ ひよこ
関数って普通のアプリと何が違うの?
ペンギン先生 ペンギン先生
普通のWebアプリは、サーバーを起動したままリクエストを待つよね。FaaSの関数は、イベントやHTTPリクエストをきっかけに呼び出されて、処理が終わったら結果を返す。呼び出しが増えれば自動で並列に動く数が増えるんだ。たとえば「画像がアップロードされたらサムネイルを作る」といった用途に使われるよ。
ひよこ ひよこ
関数が終わると、中のデータは消えちゃうの?
ペンギン先生 ペンギン先生
消える前提で作るのが正解だよ。AWS Lambdaの場合、処理が終わっても実行環境はしばらく保持されて、次の呼び出しで再利用されることがある。でも、いつまで残るかは保証されないんだ。だから関数は状態を持たない(ステートレス)ものとして作り、残したいデータはストレージやデータベースなど外部に保存するよ。
ひよこ ひよこ
FaaSの実行時間制限って何分くらい?長い処理は無理なの?
ペンギン先生 ペンギン先生
サービスや設定によるけど、AWS Lambdaの標準的な関数は、1回の実行が最大900秒(15分)までだよ。既定値は3秒で、必要に応じて延ばす形なんだ。これを超える処理は、小さく分けるか、別のサービスを使うことになるね。
ひよこ ひよこ
ペンギン先生 ペンギン先生
再利用できる実行環境がないときに、コードの取得や環境の準備から始めるぶん、応答が遅くなることだよ。AWSはLambdaについて、コールドスタートは通常は呼び出しの1%未満で、長さは100ミリ秒未満から1秒超まで幅があると説明している。あらかじめ実行環境を用意しておく「プロビジョニング済み同時実行」で減らせるけど、用意している間は追加料金がかかるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「FaaS」って出てきたら「関数1個をクラウドに置いてイベントで呼び出す仕組みのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「FaaS(Function as a Service)」 = 関数をサービスとして提供する
💬 「as a Service」シリーズの一員。IaaS・PaaS・SaaSと同じ命名パターンだよ

参考資料

← 用語集にもどる