AWS Lambda とは
AWS Lambda は、サーバーのプロビジョニングや管理をする必要なくコードを実行できるサーバーレスコンピューティングサービスです。Lambda は、基盤となるインフラストラクチャ (サーバーメンテナンス、容量プロビジョニング、スケーリング、パッチ適用など) を自動的に管理するので、ユーザーはアプリケーションロジックにフォーカスできます。
Lambda には、それぞれ異なるワークロードパターン用に設計された 2 つのコンピューティングプリミティブがあります。
-
Lambda 関数 – サーバーを管理することなくイベントまたは API コールに応答してコードを実行します。ハンドラー関数を記述してトリガー (API Gateway、Amazon S3、Amazon SQS、EventBridge、その他の 200 以上の AWS サービス) に接続すると、Lambda によって実行されます。各呼び出しは、共有状態なしで個別に実行され、需要に合わせて水平方向にスケーリングされます。Lambda は、実行環境、スケーリング、ルーティング、耐障害性を管理します。
-
Lambda MicroVMs – ほぼ即時の起動と状態が可能で、最大 8 時間維持される分離コンピューティング環境。個々のユーザーまたはジョブに専用のコンピューティング環境を必要とするワークロード向けに設計されています。Lambda は、分離、容量、ネットワークを管理します。アプリケーションは Lambda MicroVMs API と HTTPS エンドポイントを使用して、各ユーザー/ジョブをコンピューティング環境に接続します。
料金に関する情報については、[AWS Lambda の料金
Lambda Functions と Lambda MicroVMs の比較
LambdaFunctions と Lambda MicroVMs は共通のサーバーレス基盤を共有します。
-
サーバー管理なし — AWS は、基盤となるインフラストラクチャ、インスタンスのパッチ適用、容量を管理します。
-
従量制課金 – 前払いのコミットメントはありません。請求は使用したリソースに対してのみ発生します。
-
マネージドネットワーキング – どちらもサービスマネージドのインバウンドおよびアウトバウンドネットワークアクセスを提供します。
-
Firecracker 仮想化 – ワークロード間の VM レベルの分離。
2 つのサービスは、この基盤を共有しますが、対応するユーズケースが異なります。
| Lambda Functions | Lambda MicroVMs | |
|---|---|---|
| 最適な用途 | リクエストレスポンスまたはイベントドリブンのワークロード (API、データ処理、自動化) | ユーザーまたは AI が作成した信頼できないコードを実行する永続環境 |
| プログラミングモデル | サポートされているランタイムで呼び出された関数ハンドラー | 任意のアプリケーション – 独自のバイナリの実行、ポートのリッスン、Linux OS 機能の使用 |
| 期間 | 呼び出しごとに最大 15 分、Lambda の耐久性のある関数で最大 1 年間持続するマルチステップワークフロー | セッションあたり最大 8 時間、セッション間での一時停止と再開 |
| ランタイム環境 | サービス提供の言語ランタイム、お客様提供のランタイムのサポート | お客様が提供する MicroVM イメージ |
| インバウンドネットワーキング | 直接呼び出しまたは AWS サービスとのイベントソース統合、レスポンスストリーミングのサポート | OSI Layer 7 プロトコルを使用した任意のポートへのインバウンドアクセス |
| 同時実行 | 実行環境あたり一度に 1 つのリクエスト | MicroVM あたり複数の同時接続 |
| 環境の状態 | 実行環境は再利用可能 (ウォームスタート)、呼び出し間で状態が維持されないことがある | 一時停止時に保持され、再開時に復元されるメモリとディスクの状態 |
| スケーリング | 自動 – Lambda がトラフィックに応じて実行環境を作成および破棄 | デベロッパー制御 – API 経由で MicroVM を作成、一時停止、再開、終了 |
| ライフサイクル | Lambda によるフルマネージド | デベロッパー制御 (自動一時停止/再開用のオプションのアイドルポリシー) |
| 料金 | リクエストあたり、および実行時間の GB 秒 | 実行中の 1 秒あたりのコンピューティング、および一時停止中のスナップショットストレージ |