FaaSとは?4段階のクラウドモデルで理解する関数実行サービス

システム開発・テクノロジー
FaaSとは?ざっくりと3行で
  • Function as a Serviceの略。関数(Function)単位でコードをクラウドに置き、イベント発生時だけ実行するクラウドサービスの利用形態だ
  • IaaS・PaaS・SaaSと並ぶクラウドの提供モデルの一つで、最も管理負担が少ない。サーバー・OS・ランタイムの管理はすべてクラウド事業者が担う
  • 使った分だけ課金される従量課金制のため、処理が走っていない時間はコストがかからない。イベント駆動型の処理と相性が抜群だ

【深掘り】これだけ知ってればOK!

「IaaS・PaaS・SaaS・FaaS」の4つは、どこまでクラウドに任せるかの違いを表している。この4段階の違いを理解すると、会議でクラウド選定の話が出たときに格段についていきやすくなる。

4つを「飲食店」に例えると整理しやすい。IaaSは「厨房設備だけ借りて、食材も調理も自分でやる」レンタルキッチンだ。PaaSは「食材と調理器具が揃った状態で、料理を作るだけ」のシェアキッチン。SaaSは「できあがった料理をそのまま注文する」デリバリーサービス。そしてFaaSは「自分のレシピ(コード)だけを渡せば、調理も提供もやってもらえる」オーダーメイドのデリバリーに近い。

技術的に言い換えると、FaaSでは開発者はビジネスロジックだけを関数として書く。その関数をいつ・どんな条件で呼び出すかをイベントトリガーとして設定するだけで動く。サーバーの起動・停止・スケーリング・パッチ適用は一切意識しなくてよい。この仕組みが「サーバーレス」とほぼ同義語として語られる理由だ。

FaaSの代表サービスは3つ覚えておけば十分。AWSのLambda、Google CloudのCloud Functions、AzureのAzure Functionsだ。どれも発想は同じで、使うクラウドによって選ぶだけ。読み方は「ファース」または「エフアース」どちらも通じる。

FaaSが最も力を発揮する場面はイベント駆動型の非同期処理だ。「画像がアップロードされたら圧縮する」「注文が入ったらメールを送る」「毎朝9時にレポートを生成する」といった、発火条件が明確で処理時間が短いタスクがベストマッチとなる。一方で、常時リクエストが途切れないAPIや15分以上かかる重い処理には向かない点を覚えておくと、現場での選定判断に役立つ。

よくある誤解

FaaSとサーバーレスは同じではない

FaaSはサーバーレスアーキテクチャの中核をなすコンピューティング部分だが、サーバーレス全体はもっと広い。サーバーレスなストレージ(S3)、サーバーレスなデータベース(DynamoDB・Firestore)、サーバーレスなAPIゲートウェイなど、さまざまなサービスが含まれる。FaaS⊂サーバーレスという包含関係と理解しておくと会話で混乱しない。

「関数=小さなコード」というイメージが必ずしも正確ではない

FaaSの「関数」は数行の小さなコードを想像しがちだが、実際には数百行の複雑なビジネスロジックを1つの関数として登録するケースも多い。重要なのはコードの行数ではなく、単一の責務(処理の目的が1つ)であること。1つの関数で何でもやらせようとすると、管理性が下がってFaaSの恩恵を受けにくくなる。

FaaSは必ずしも安いわけではない

従量課金という特性上、低頻度・短時間の処理では圧倒的にコストが低い。しかし毎秒数千リクエストが来るような高トラフィックのサービスでは、常時起動のサーバーより高くなる逆転現象が起きることがある。FaaSの料金最適化はリクエスト頻度×実行時間×メモリ量の3軸で考えるのが基本だ。

会話での使われ方

ITKAGYO運営者のアイコン画像

IaaSとFaaSって何が違うんですか?どちらもクラウドですよね?

クラウド勉強中の新入社員が、先輩エンジニアとの1on1でついでに質問した場面。両方クラウドではあるが、管理責任の範囲が根本的に異なる。

ITKAGYO運営者のアイコン画像

通知送信の部分、FaaSで切り出せばサーバー管理しなくてよくなるし、コストも下がるんじゃないかと思って。ちょっと試してみていいですか。

スプリントレトロスペクティブ後に、バックエンドエンジニアがチームリードに改善提案を持ちかけている場面。非同期通知はFaaS移行の典型的なユースケースだ。

ITKAGYO運営者のアイコン画像

このシステム、FaaSで全部組むのは早計かもしれないですよ。常時接続が必要な処理がある場合、コールドスタートで詰まる可能性があります。

クライアント向けシステム設計のレビュー会議で、ベンダー側のアーキテクトが過度なFaaS採用にブレーキをかけている場面。適材適所の判断が設計品質を左右する。

【まとめ】3つのポイント

  • 「コードだけ渡すオーダーメイドデリバリー」:FaaSは関数単位のコードを置いておくだけで、実行環境の管理をすべてクラウドに任せられるサービス形態だ
  • IaaS・PaaS・SaaSとの4段階で管理責任の範囲が変わる:どこまでクラウドに任せるかを軸に選ぶと、用途に合ったサービス選定ができるようになる
  • 向く用途・向かない用途を把握してから採用せよ:イベント駆動の短時間処理には最適だが、常時高トラフィックや長時間処理には不向き。適材適所の判断が設計の要だ

よくある質問

Q
FaaSを使うと何が便利になりますか?
A

サーバーの構築・スケーリング・パッチ適用といったインフラ管理が完全に不要になります。開発者はビジネスロジックのコードを書くことだけに集中でき、特に少人数チームやスタートアップでは開発速度と運用コストの両方を大幅に改善できます。

Q
FaaSの代表的なサービスを教えてください
A

三大クラウドのサービスとして、AWSのLambda・Google CloudのCloud Functions・AzureのAzure Functionsが代表的です。フロントエンド寄りの選択肢ではVercel FunctionsやNetlify Functionsも人気があります。基本的な考え方はどれも同じで、既存インフラがどのクラウドにあるかで選ぶのが合理的です。

Q
FaaSのイベントトリガーとは何ですか?
A

関数を起動するきっかけとなる出来事のことです。HTTPリクエスト・ファイルのアップロード・データベースの更新・定時タイマー・メッセージキューへの投入などが代表的なトリガーです。このトリガーを設定することで、特定の条件が満たされたときだけ関数が動く仕組みが実現します。

Q
FaaSとPaaSの違いは何ですか?
A

PaaSはアプリケーション全体を動かすプラットフォームを提供し、常時稼働が基本です。FaaSはさらに抽象度が高く、アプリケーションではなく関数単位でコードを実行し、イベント発生時のみ起動するのが大きな違いです。スケーリングや課金もPaaSはアプリ単位・FaaSは関数の実行単位と、粒度が根本的に異なります。

この用語と一緒に知っておきたい用語

用語この記事との関連
サーバーサーバーを押さえると本記事の理解がさらに深まります。ネットワークを通じて情報やサービスを提供する側のコンピューターのこと。レストランで料理を運んでくれる給仕係(server)をイメージするとわかりやすいよ
PaaSPaaSとの関係を知ると全体像がつかみやすくなります。Platform as a Serviceの略(読み:パース)。OSやランタイム・ミドルウェアなど開発に必要な基盤をクラウドがまるごと提供するサービス形態だ
サーバーレスサーバーレスとの関係を知ると全体像がつかみやすくなります。サーバーの構築・管理をクラウド事業者に完全委ねて開発者はコードを書くことだけに集中できる仕組み。「サーバーがない」ではなく「サーバーを意識しなくていい」が正確な意味だ
IaaSIaaSを押さえると本記事の理解がさらに深まります。Infrastructure as a Serviceの略(読み:イアース)。サーバー・ストレージ・ネットワークなどのインフラをインターネット越しに借りられるクラウドサービスの提供形態だ
SaaSSaaSを押さえると本記事の理解がさらに深まります。Software as a Serviceの略(読み:サース)。ソフトウェアをインターネット越しにそのまま使えるクラウドサービスの提供形態だ

【出典】参考URL

https://cloud.google.com/discover/what-is-function-as-a-service-faas?hl=ja :Google CloudによるFaaSの定義と解説
https://cloud-ace.jp/column/detail322/ :FaaSとIaaS・PaaS・SaaSの比較解説
https://www.intel.co.jp/content/www/jp/ja/cloud-computing/faas.html :インテルによるFaaS概要説明

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!