以下は FaaS(Function as a Service)を“どんな時に使うと効果的か”を体系的にまとめた一覧 です。
現場のアーキテクチャ設計や実務を意識しています。
【FaaS(Function as a Service)の有効な使い方】
イベント駆動の処理を自動化したい時
クラウドサービスは多くのイベントを発火できるため、FaaSと相性が良い。
ファイルがアップロードされたら処理する
DBのレコード変更をトリガーに処理する
メッセージキューを受けて処理する
IoTデバイスからのデータを逐次処理する
「イベント → 関数実行 → 結果を保存」のパターンが王道。
常時稼働させる必要がないバッチ・集計処理
一定時間ごと、必要な時だけ動けば良いものに最適。
日次/週次のバッチ処理
ログ集計、メトリクス整形
自動メール送信
定時のバックアップ取得
常時サーバーを立てるよりコスト効率が良い。
画像・動画・PDFなどの“単機能加工処理”
ファイル処理はCPU負荷が高いが、短時間で完結するためFaaSと相性がよい。
サムネイル生成
PDFからテキスト抽出
音声ファイルの変換
大量アクセスにも自動スケールするので便利。
APIの一部だけサーバーレス化してコスト最適化
API全体ではなく、下記のような“一時的にしか動かない機能だけ”を関数化する。
通知送信API
支払い処理のコールバック
Webhook受信
ワンショットのデータ検証
常時稼働のWebアプリと組み合わせる構成が多い。
疎結合アーキテクチャとして、マイクロサービス間のつなぎに使う
FaaSは小さな関数単位で管理できるため、マイクロサービスの中間処理として便利。
キュー間の橋渡し
少量のデータ変換
他サービスの結果を整理して返す
各サービスを密結合にしない“グルーコード”として優秀。
開発スピードを上げたい時(プロトタイピング)
インフラ構築なしで公開できるため、試作が非常に速い。
小さいAPIをすぐ公開
一時的なWebhook受け取り
デモアプリの裏側処理
スタートアップや小規模チームに特に有効。
急激なスパイクがあるアクセスに強い
通常はアクセスが少ないが、特定タイミングだけ爆発的に増えるケース。
キャンペーンサイト
チケット販売開始直後のアクセス
年末年始の処理が集中するシステム
FaaSの自動スケールが負荷を吸収してくれる。
コストを最適化したい時
FaaSは「実行時間 × 実行回数」しか課金されないため、
サーバーを24時間立てておく必要がない用途で圧倒的に安い。
特に、
認証・認可の補助やセキュリティ対策に使う
軽量なセキュリティ処理は関数化しやすい。
トークン検証
署名の検証
不正アクセス検出ロジック
WAFのカスタムルール検証
API Gateway + Lambda の組み合わせが強力。
CI/CD や DevOps の小さな自動化に使う
開発工程の自動化にも有効。
PR時に静的解析
Slack通知
ファイルの自動フォーマット
デプロイの補助処理
「ちょっとした処理」を簡単にクラウド上で動かせる。
【まとめ】
FaaSが向いているのは、
イベントに反応する処理
単機能で短時間で終わる処理
バッチやタイマー処理
スケールが読めない処理
コスト最適化したい処理
逆に、
常時接続が必要なサービス
長時間実行する処理
大規模な状態管理が必要な処理
は不向き。
この記事へのコメント