アーキテクチャパターン

サーバーレスアーキテクチャ さーばーれすあーきてくちゃ

FaaSクラウドAWS Lambdaイベント駆動マイクロサービススケーリング
サーバーレスアーキテクチャについて教えて

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

「サーバーを自分で用意・管理しなくていい仕組み」だよ!電気みたいなもので、使った分だけ料金が発生して、使わないときはゼロ円。「サーバーがない」んじゃなくて「サーバーのことを気にしなくていい」ってことなんだ!


サーバーレスアーキテクチャとは

サーバーレスアーキテクチャとは、開発者がサーバーの調達・設定・運用・スケーリングを意識せずにアプリケーションを構築・実行できる設計スタイルです。クラウドプロバイダー(AWSやGCPなど)がインフラを自動管理し、開発者はコードのロジックだけに集中できます。「サーバーレス=サーバーが存在しない」わけではなく、サーバーの管理責任をクラウド側に完全に委譲するという意味合いです。

代表的な実装形態が FaaS(Function as a Service) です。処理を「関数(ファンクション)」単位で登録しておき、特定のイベント(HTTPリクエスト、ファイルのアップロード、タイマーなど)が発生したときだけその関数が起動・実行されます。使っていない時間はリソースをまったく消費しないため、従量課金でコストを最小化できるのが大きな特徴です。

ビジネス的には「サーバーエンジニアを常駐させなくてもシステムが動く」という意義が大きく、少人数チームや新規事業の立ち上げ、アクセス量が読めないサービスに特に向いています。


サーバーレスの仕組みと特徴

項目従来型(オンプレ・IaaS)サーバーレス
サーバー管理自社 or 開発チームが担当クラウドが自動管理
課金モデル24時間稼働分を支払う実行時間・回数で従量課金
スケーリング手動 or 事前設定が必要自動(ゼロ〜無制限)
起動方式常時起動イベント発生時のみ起動
開発の焦点インフラ+アプリアプリのロジックのみ
実行時間制限なし(原則)あり(例: AWS Lambdaは最大15分)

覚え方:「電気・水道モデル」

サーバーレスは公共インフラと同じ考え方です。

  • 電気:使った分だけ払う/発電所を自分で建てない = サーバーレスの課金モデル
  • 水道:蛇口をひねった瞬間だけ水が出る = イベント駆動の起動モデル

「サーバーを所有する」から「サーバーを利用する」へのシフト、と覚えるとスッキリします。

主要なサーバーレスサービス

クラウドFaaSサービス名備考
AWSLambda最も普及。無料枠あり
Google CloudCloud Functions / Cloud Runコンテナ対応も可
Microsoft AzureAzure FunctionsMicrosoftエコシステムと親和性高
CloudflareWorkersエッジでの実行に特化

歴史と背景

  • 2006年 — AWSがEC2(仮想サーバー)を提供開始。クラウド時代の幕開け
  • 2014年AWS Lambdaがリリース。「関数を登録してイベントで呼び出す」FaaSの概念が初めて商用化される
  • 2016年 — CNCF(Cloud Native Computing Foundation)が設立。サーバーレスが「クラウドネイティブ」の重要な柱として認知される
  • 2018年 — Google Cloud Run リリース。コンテナをサーバーレスで動かすモデルが広がる
  • 2020年代エッジコンピューティング(Cloudflare WorkersなどCDNエッジでの関数実行)が台頭し、サーバーレスの定義がさらに拡張

従来アーキテクチャとの比較・構造図

サーバーレスは「どこに責任の境界線を引くか」で他の方式と区別されます。

責任範囲の比較:オンプレ / IaaS / PaaS / サーバーレス オンプレミス IaaS PaaS サーバーレス ▼ 色:自社管理=濃色 / クラウド管理=薄色 ハードウェア 自社管理 クラウド管理 クラウド管理 クラウド管理 OS・ミドルウェア 自社管理 自社管理 クラウド管理 クラウド管理 ランタイム・スケール 自社管理 自社管理 自社管理 クラウド管理 アプリ・コード 自社管理 自社管理 自社管理 自社管理

サーバーレスが向いているケース・向いていないケース

ユースケース向き・不向き理由
アクセス量が読めない新サービス✅ 向いている自動スケールで過不足なし
定期バッチ処理(夜間集計など)✅ 向いている実行時間のみ課金でコスト最小
常時リクエストが来るAPIサーバー⚠️ 要検討コールドスタート遅延が気になる場合あり
長時間処理(動画エンコードなど)❌ 不向き実行時間に上限がある
既存のモノリシックシステム移行❌ 不向き設計の大幅見直しが必要

コールドスタートとは

サーバーレスの代表的な注意点がコールドスタートです。しばらく使われていなかった関数を起動する際、初回だけ起動に数百ミリ秒〜数秒かかることがあります。

初回アクセス:
  [リクエスト] → [コンテナ起動] → [関数ロード] → [処理実行] → [レスポンス]
                 ←── コールドスタート遅延 ───→

2回目以降:
  [リクエスト] → [処理実行] → [レスポンス]  ← ウォームスタートで高速

ユーザーが直接触れるUIに使う場合は注意が必要です。定期的にダミーリクエストを送る「ウォームアップ」で回避する方法もあります。


関連用語