
AWS Lambdaは2014年11月のre:Invent基調講演で発表され、関数を置けばインフラが消えるという衝撃を業界に与えた。EC2が「仮想マシンを借りる」発想だったのに対し、Lambdaは「コードだけ預ける」発想で、課金は実行時間の1ミリ秒単位。以後Google Cloud FunctionsやAzure Functionsが追随し、サーバレスという潮流の中心に据えられた。本稿では設計思想、コールドスタート、典型構成、競合との違いまでを横断的に整理する。
この記事の目次
- Lambdaの中核アーキテクチャ
- 登場の経緯とサーバレス潮流
- 典型ユースケースとアンチパターン
- GCP Cloud Run/Azure Functionsとの違い
- まとめ
Lambdaの中核アーキテクチャ

Lambdaの基本単位は「関数」で、ハンドラとなる関数を1つ書けば、AWS側がコンテナの起動、メモリ割当、ネットワーク確保、ログ転送までを引き受ける。トリガーはAPI Gateway経由のHTTP、S3のオブジェクト作成、DynamoDB Streams、SQS、EventBridgeなど200近く用意され、関数同士をパイプラインのようにつなぐことができる。実行環境はFirecrackerと呼ばれる軽量マイクロVMで隔離され、同一テナントの干渉を防ぐ仕組みになっている。
メモリは128MBから10GBまで1MB刻みで指定でき、CPU性能はメモリに比例して割り当てられる。タイムアウトは最大15分、デプロイパッケージは250MB(zip展開後)まで。2020年からはコンテナイメージでのデプロイも可能となり、独自ランタイムや機械学習モデルを含む大きな成果物も載せやすくなった。VPC内リソースへの接続もENI経由で実現し、RDSやElastiCacheに直接アクセスする構成もごく普通になっている。
登場の経緯とサーバレス潮流

AWSは2006年にEC2でIaaS市場を切り拓いたが、運用負荷の高さが課題として残っていた。Tim Wagner率いるチームが「サーバを意識させない実行基盤」を構想し、2014年11月のre:InventでLambdaを公開。当時の発表ではNode.jsのみ対応だったが、翌2015年にはJava、Pythonが加わり、現在ではGo、Ruby、.NET、カスタムランタイムまで揃う。
2016年にはServerless Frameworkが登場、AWS純正のSAM(Serverless Application Model)も2017年から提供され、CloudFormationの拡張としてLambdaを宣言的に記述できるようになった。Martin FowlerやSimon Wardleyらがサーバレスを「コンピュートの最終形」と位置付けた論考も後押しとなり、2018年頃にはNetflixやCoca-Colaの大規模事例が公開され、業務基幹にも侵食を始める。
典型ユースケースとアンチパターン

得意分野はイベント駆動型のスポット処理。たとえばS3に画像がアップロードされた瞬間にサムネイル生成し別バケットへ保存する構成、API Gatewayから呼び出してDynamoDBに書き込むREST API、Cognitoのプリトリガーで属性を補正する用途などはLambdaの真骨頂である。秒間数千件のスパイクが来てもインフラ側で自動的に水平スケールし、平常時はゼロ課金に戻る。
一方、長時間バッチや低遅延を要求するゲームのバックエンド、巨大なライブラリを抱える機械学習推論などは不得手だ。コールドスタートが数百ミリ秒〜数秒生じることがあり、SLA厳守の処理ではProvisioned Concurrencyで温めるかECS Fargateを併用する判断が必要になる。RDBに直接大量接続するとコネクションを使い切るため、RDS ProxyやAurora Serverless v2を挟むのが定石となった。
GCP Cloud Run/Azure Functionsとの違い

Google Cloud Runは2019年に登場し、任意のコンテナを動かせる点が特徴で、Knativeをベースにしている。Lambdaが「関数」単位なのに対し、Cloud Runは「HTTPで起動するコンテナ」単位で、既存のDockerfileをほぼそのまま持ち込める。実行時間も最大60分とLambdaより長く、機械学習推論やレポート生成に向く。
Azure FunctionsはMicrosoftが2016年に提供開始、Durable Functionsという独自拡張でステートフルなワークフローを記述できるのが強み。Logic Appsと組み合わせれば、ノーコード寄りのフローも実現できる。コストはLambdaが100万リクエストあたり0.20USDなのに対し、Functionsは同水準、Cloud Runはリクエスト数とCPU/メモリ秒の二軸課金で見積もりが分かれる。要件次第で選定する時代になっている。
まとめ
Lambdaはサーバレスという概念を一般語にした立役者で、イベント駆動と従量課金の組合せは10年以上経った今も色褪せない。だがコールドスタートやVPC構成、コネクション管理など固有の癖もある。Cloud RunやFunctionsとの使い分けを意識し、適材適所で組み込むことが運用安定の近道となる。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント