サーバーレス

サーバーレス さーばーれす

FaaSクラウドAWS Lambdaイベント駆動スケーリングマイクロサービス
サーバーレスとは?について教えて

簡単に言うとこんな感じ!

「サーバーレス」って名前だけど、サーバーがなくなるわけじゃないよ!「サーバーのことを自分で管理しなくていい」って意味なんだ。電気を使うとき発電所を自分で建てないでしょ?それと同じで、処理したいときだけクラウドに「ちょっと動かして!」って頼める仕組みのこと!


サーバーレスとは

サーバーレス(Serverless) とは、アプリケーションの実行に必要なサーバーの調達・構築・運用・スケーリングをすべてクラウドプロバイダーに任せ、開発者はコードを書くことだけに集中できる仕組みのことです。「サーバーがない」わけではなく、「サーバーの存在を意識しなくていい」という意味合いから、この名前が付けられています。

従来のシステム開発では、「このアプリを動かすためにはどんなサーバーが何台必要か」「アクセスが増えたら増強できるか」といったインフラ設計が不可欠でした。サーバーレスでは、そうしたインフラ管理の手間がほぼゼロになり、処理した分だけ課金される従量制が基本です。つまり、アクセスがない時間帯はコストも発生しません。

特にサーバーレスの中心概念となるのが FaaS(Function as a Service) です。「関数」という小さな処理単位でコードを登録しておき、特定のイベント(HTTPリクエスト・ファイルのアップロード・スケジュール実行など)が発生したときだけ動き出す、というイベント駆動型の実行モデルを採ります。


サーバーレスの仕組みと構造

従来型との比較

比較項目従来型(オンプレ・IaaS)サーバーレス
サーバー管理自社で構築・運用クラウドが全て担当
スケーリング手動 or 設定が必要自動(リクエストに応じて瞬時に)
課金モデル起動中は常時課金実行時間・回数に応じた従量制
アイドル時のコストかかるほぼゼロ
コードの単位アプリケーション全体関数(Function)単位
起動速度分〜時間単位ミリ秒〜秒単位

サーバーレスの実行フロー

ユーザー HTTPリクエスト イベントトリガー API Gateway など 関数(Function) コードが実行される 結果を返す DBや外部APIも呼び出せる ☁️ クラウドプロバイダーが管理するゾーン ・サーバーの起動/停止 ・スケーリング(自動増減) ・セキュリティパッチ適用 ・ハードウェア管理

代表的なサービス

プロバイダーサービス名特徴
AWSLambda最も普及。150以上のトリガーと連携
Google CloudCloud Functions / Cloud RunGoogle サービスとの親和性が高い
Microsoft AzureAzure Functions.NET / C# との統合が強み
CloudflareWorkersエッジ(ユーザーの近く)で実行可能
Vercel / NetlifyEdge Functionsフロントエンド開発者向け

覚え方

サーバーレス = レストランのデリバリー注文

厨房(サーバー)を自分で持たなくても、注文した分だけ料理(処理)を届けてもらえる。厨房の維持費(固定費)ゼロ、食べた分だけ払う(従量課金)!


歴史と背景

  • 2006年頃〜 : AWSがEC2(仮想サーバー)を提供し、クラウドコンピューティングが普及し始める
  • 2014年11月 : AWS Lambdaが発表。「コードをアップロードするだけで動く」という概念が初めて大規模に実用化され、サーバーレスの概念が広まる
  • 2016年 : GoogleがCloud Functions、MicrosoftがAzure Functionsを発表。主要クラウド3社が出揃い、業界標準の方向性が確立
  • 2016年〜 : CNCF(Cloud Native Computing Foundation) がサーバーレスワーキンググループを設立。マイクロサービスKubernetes・サーバーレスがクラウドネイティブの3本柱として認知される
  • 2018年 : Knativeなどのオープンソースプロジェクトが登場。特定クラウドへの依存(ベンダーロックイン)を減らす動きが始まる
  • 2020年代〜 : エッジコンピューティング(Cloudflare WorkersやVercel Edge Functions)と融合し、さらに高速・低レイテンシな実行環境が登場。Webアプリ・生成AI連携など適用範囲が急拡大

向いているケース・向いていないケース

✅ サーバーレスが向いているシナリオ

  • アクセス量が不規則なサービス(キャンペーンサイト・季節商材など)
  • 非同期バッチ処理(画像リサイズ・メール送信・ログ集計など)
  • 軽量なAPI(モバイルアプリのバックエンド)
  • PoC・プロトタイプ(初期投資ゼロで始められる)

❌ サーバーレスが苦手なシナリオ

  • 常時稼働が必要な処理(WebSocketを使ったリアルタイム通信など)
  • コールドスタート問題が許容できないケース(初回リクエスト時に起動遅延が発生することがある)
  • 長時間処理(多くのFaaSは実行時間に上限あり。例:Lambda は最大15分)
  • ステートフルな処理(関数は原則ステートレスで、実行間でデータを保持しない)

サーバーレスの構成イメージ

【典型的なサーバーレスアーキテクチャ例】

ユーザー


[API Gateway]          ← ルーティング・認証

  ├─[Lambda: ユーザー登録] ← イベント駆動で起動
  ├─[Lambda: 注文処理]
  └─[Lambda: 通知送信]

       ├─ [DynamoDB / RDS]   ← データ永続化
       ├─ [S3]               ← ファイルストレージ
       └─ [SNS / SQS]        ← メッセージキュー

関連する規格・RFC

規格・仕様内容
CloudEvents v1.0サーバーレスのイベントデータフォーマットを標準化するCNCF仕様。異なるクラウド間でイベントの互換性を確保する
OpenFaaSOSSのサーバーレスフレームワーク。Kubernetes上でFaaSを自前構築可能にする事実上の標準

関連用語

  • クラウドコンピューティング — オンデマンドでITリソースをネット経由で利用するサービスモデル
  • FaaS(Function as a Service) — サーバーレスの中核概念。関数単位でコードを実行するクラウドサービス
  • マイクロサービス — アプリを小さな独立したサービスに分割するアーキテクチャ手法
  • コンテナ — アプリの実行環境を軽量にパッケージ化する技術。サーバーレスとよく比較される
  • Kubernetes — コンテナの運用を自動化するオーケストレーションツール
  • イベント駆動アーキテクチャ — イベントの発生を起点にシステムが動作する設計パターン
  • API Gateway — APIへのリクエストを受け付け・制御する入口となるサービス
  • スケーリング — 負荷に応じてシステムの処理能力を増減させること