Lambda(AWS Lambda) らむだ
簡単に言うとこんな感じ!
「必要なときだけ動く、サーバー不要のプログラム実行サービス」だよ!電気代みたいに「使った分だけ」課金されて、サーバーの管理は一切不要。何かイベントが起きたときだけコードが走る、超効率的な仕組みなんだ!
Lambdaとは
AWS Lambda(アマゾン ウェブ サービス ラムダ)は、Amazonが提供するクラウドサービス「AWS」上で動作するサーバーレスのコード実行環境です。「サーバーレス」とは「サーバーが存在しない」わけではなく、「サーバーの準備・管理・運用をユーザーが意識しなくてよい」という意味です。開発者はコードを書いてアップロードするだけで、インフラの設定や保守はAWSが自動的に行ってくれます。
Lambdaの最大の特徴はイベント駆動型である点です。「ファイルがアップロードされた」「HTTPリクエストが来た」「データベースが更新された」など、何らかのトリガー(きっかけ)が発生したときだけコードが実行されます。処理が終わればリソースは即座に解放され、待機中のコストはゼロ。小さな処理を大量に、かつ効率よく動かしたい場面に非常に向いています。
FaaS(Function as a Service)とも呼ばれるカテゴリに属し、アプリケーション全体ではなく「関数(Function)」という小さな単位でデプロイ・実行できるのが特徴です。マイクロサービスやAPIのバックエンド処理、定期バッチ処理など、幅広い用途で活用されています。
Lambdaの仕組みと構造
基本的な実行モデル
| 要素 | 内容 |
|---|---|
| トリガー | Lambdaを起動するきっかけ(HTTPリクエスト、S3へのファイル保存、タイマーなど) |
| 関数(Function) | 実際に実行されるコード本体。Python・Node.js・Java・Go等に対応 |
| ランタイム | コードを実行する環境。言語ごとにAWSが用意 |
| 実行ロール | Lambdaが他のAWSサービスにアクセスするための権限設定 |
| レスポンス | 処理結果の返却または次のサービスへの連携 |
主なトリガーの種類
| トリガー | 具体例 |
|---|---|
| API Gateway | Webアプリのリクエストを受けてAPIとして動作 |
| S3 | 画像アップロード時に自動でリサイズ処理 |
| DynamoDB Streams | DBの変更を検知して別処理を起動 |
| CloudWatch Events | 毎日0時にバッチ処理を実行 |
| SNS / SQS | メッセージキューからデータを受け取って処理 |
覚え方・ポイント
🍔 「注文が来たら作る」ファストフードモデル
従来のサーバーは「365日店を開けて待ってる定食屋」。Lambdaは「注文が来た瞬間だけ料理して、終わったら閉める屋台」。待ってる時間のコストが一切かからないから効率的なんです。
料金体系のシンプルさ
Lambdaの料金は主に2つの要素で決まります。
- リクエスト数:関数が呼ばれた回数(月100万回まで無料)
- 実行時間:コードが動いていた時間 × 使用メモリ量
小規模な処理ならほぼ無料で運用できることも多く、スタートアップや試作フェーズでも導入しやすい構造です。
歴史と背景
- 2006年:AWSがEC2(仮想サーバー)を提供開始。クラウドサーバーの時代が幕を開ける
- 2014年11月:AWS Lambdaが発表(AWS re:Invent 2014)。サーバーレスという概念を世に広める先駆けとなる
- 2015年:一般提供(GA)開始。対応言語はNode.jsのみ
- 2016年:Python・Java・C#対応を追加。企業導入が一気に加速
- 2018年:Go言語・Ruby対応。コンテナイメージからの実行にも対応開始
- 2020年:コンテナイメージのサポート追加(最大10GBのDockerイメージを実行可能に)
- 2021年以降:ARM(Graviton2)プロセッサ対応でコスト最大20%削減、最大15分の実行時間制限拡張など進化継続
- 現在:FaaSの事実上の標準となり、Google Cloud Functions・Azure Functionsなど競合サービスも続々登場
従来サーバーとの比較・サーバーレスの位置づけ
クラウドサービスの実行モデル比較
競合サービスとの比較
| サービス | 提供会社 | 最大実行時間 | 無料枠(月) | 特徴 |
|---|---|---|---|---|
| AWS Lambda | Amazon | 15分 | 100万リクエスト | AWSとの連携が最も豊富 |
| Google Cloud Functions | 60分 | 200万リクエスト | Firebase連携が強力 | |
| Azure Functions | Microsoft | 無制限(消費プラン) | 100万リクエスト | .NET・Azureとの相性◎ |
| Cloudflare Workers | Cloudflare | 30ms CPU時間 | 10万リクエスト/日 | エッジで超高速実行 |
Lambdaが向いている場面・向いていない場面
| 向いている ✅ | 向いていない ❌ |
|---|---|
| APIのバックエンド処理 | 常時起動が必要なWebサーバー |
| 画像・動画の変換処理 | 15分を超える長時間処理 |
| 定期バッチ・スケジュール処理 | 低レイテンシが必須のリアルタイム処理 |
| イベント通知・Webhook受信 | 大量のメモリを必要とする処理(上限10GB) |
| スパイク(突発的な大量アクセス)対応 | ステートフルな処理(セッション保持) |
関連する規格・RFC
※ AWS Lambdaはプロプライエタリなサービスのため、直接対応するRFC・ISOは存在しませんが、基盤技術に関連する仕様があります。
| 規格・仕様 | 内容 |
|---|---|
| CNCF CloudEvents | イベント駆動アーキテクチャのイベントフォーマット標準仕様(LambdaトリガーのJSONと互換設計) |
| OpenAPI 3.0 | API GatewayとLambdaを組み合わせたAPI定義標準 |
関連用語
- サーバーレス — サーバー管理不要でコードを実行するクラウドの仕組み
- FaaS(Function as a Service) — 関数単位でコードを実行するクラウドサービス形態
- AWS(Amazon Web Services) — Lambdaを提供するAmazonのクラウドプラットフォーム
- API Gateway — LambdaをHTTP APIとして公開するためのAWSサービス
- イベント駆動アーキテクチャ — イベントをきっかけに処理を連鎖させる設計思想
- コンテナ — Lambdaと比較されるアプリケーション実行環境の単位
- マイクロサービス — Lambdaが多用される小さな機能単位での設計手法
- スケーリング — Lambdaが自動で行うアクセス増減への対応の仕組み