サーバーレス

Lambda(AWS Lambda) らむだ

サーバーレスFaaSAWSイベント駆動クラウド関数
Lambdaについて教えて

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

「必要なときだけ動く、サーバー不要のプログラム実行サービス」だよ!電気代みたいに「使った分だけ」課金されて、サーバーの管理は一切不要。何かイベントが起きたときだけコードが走る、超効率的な仕組みなんだ!


Lambdaとは

AWS Lambda(アマゾン ウェブ サービス ラムダ)は、Amazonが提供するクラウドサービス「AWS」上で動作するサーバーレスのコード実行環境です。「サーバーレス」とは「サーバーが存在しない」わけではなく、「サーバーの準備・管理・運用をユーザーが意識しなくてよい」という意味です。開発者はコードを書いてアップロードするだけで、インフラの設定や保守はAWSが自動的に行ってくれます。

Lambdaの最大の特徴はイベント駆動型である点です。「ファイルがアップロードされた」「HTTPリクエストが来た」「データベースが更新された」など、何らかのトリガー(きっかけ)が発生したときだけコードが実行されます。処理が終わればリソースは即座に解放され、待機中のコストはゼロ。小さな処理を大量に、かつ効率よく動かしたい場面に非常に向いています。

FaaS(Function as a Service)とも呼ばれるカテゴリに属し、アプリケーション全体ではなく「関数(Function)」という小さな単位でデプロイ・実行できるのが特徴です。マイクロサービスやAPIのバックエンド処理、定期バッチ処理など、幅広い用途で活用されています。


Lambdaの仕組みと構造

基本的な実行モデル

要素内容
トリガーLambdaを起動するきっかけ(HTTPリクエスト、S3へのファイル保存、タイマーなど)
関数(Function)実際に実行されるコード本体。PythonNode.jsJavaGo等に対応
ランタイムコードを実行する環境。言語ごとにAWSが用意
実行ロールLambdaが他のAWSサービスにアクセスするための権限設定
レスポンス処理結果の返却または次のサービスへの連携

主なトリガーの種類

トリガー具体例
API GatewayWebアプリのリクエストを受けてAPIとして動作
S3画像アップロード時に自動でリサイズ処理
DynamoDB StreamsDBの変更を検知して別処理を起動
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など競合サービスも続々登場

従来サーバーとの比較・サーバーレスの位置づけ

クラウドサービスの実行モデル比較

クラウド実行モデルの比較 IaaS(EC2など) アプリケーション ミドルウェア OS 仮想マシン(AWS管理) 物理サーバー(AWS管理) ■ 自分で管理する範囲大 PaaS(Elastic Beanstalk) アプリケーション ミドルウェア(AWS管理) OS(AWS管理) 仮想マシン(AWS管理) 物理サーバー(AWS管理) ■ アプリのみ管理 FaaS(Lambda) 関数(Function) アプリ基盤(AWS管理) ミドルウェア(AWS管理) OS(AWS管理) 物理サーバー(AWS管理) ■ 関数だけ書けばOK

競合サービスとの比較

サービス提供会社最大実行時間無料枠(月)特徴
AWS LambdaAmazon15分100万リクエストAWSとの連携が最も豊富
Google Cloud FunctionsGoogle60分200万リクエストFirebase連携が強力
Azure FunctionsMicrosoft無制限(消費プラン)100万リクエスト.NET・Azureとの相性◎
Cloudflare WorkersCloudflare30ms CPU時間10万リクエスト/日エッジで超高速実行

Lambdaが向いている場面・向いていない場面

向いている ✅向いていない ❌
APIのバックエンド処理常時起動が必要なWebサーバー
画像・動画の変換処理15分を超える長時間処理
定期バッチ・スケジュール処理低レイテンシが必須のリアルタイム処理
イベント通知・Webhook受信大量のメモリを必要とする処理(上限10GB)
スパイク(突発的な大量アクセス)対応ステートフルな処理(セッション保持)

関連する規格・RFC

※ AWS Lambdaはプロプライエタリなサービスのため、直接対応するRFC・ISOは存在しませんが、基盤技術に関連する仕様があります。

規格・仕様内容
CNCF CloudEventsイベント駆動アーキテクチャのイベントフォーマット標準仕様(LambdaトリガーのJSONと互換設計)
OpenAPI 3.0API GatewayとLambdaを組み合わせたAPI定義標準

関連用語