ITの教科書検索
入門読了 約9分

AWS Lambdaとは ― サーバーレスの仕組みとEC2との違い

Lambdaは、サーバを用意せずにコードを動かせるサービスです。イベントで関数が動く流れ、EC2との課金の違い、実行時間やメモリの上限を整理しました。

目次
  1. AWS Lambdaとは
  2. 関数・トリガー・実行環境の関係
  3. EC2との違い
  4. 実行時間・メモリの上限
  5. 料金の考え方
  6. 練習問題

AWS Lambdaとは、サーバを管理せずにコードを実行できるサービス

サーバを用意せず、コードだけを置いて動かせるのがAWS Lambdaです。S3にファイルが置かれたときやAPIにリクエストが来たときなど、イベントのたびに関数が動きます。課金されるのは、動いた分だけです。AWS公式ドキュメントは、Lambdaを「サーバのプロビジョニングや管理をせずにコードを実行できるサービス」と説明しています。プロビジョニングとは、サーバなどの資源を事前に用意することです。

EC2では、利用者が仮想サーバを起動し、OSの更新などを自分で管理します。Lambdaでは、サーバにあたる部分(基盤・OSのパッチ適用・容量の確保)をAWSがすべて管理します。こうした仕組みをサーバーレスと呼びます。一般的な考え方はサーバーレスの記事にまとめています。

Lambdaの関数の動かし方には、複数の種類があります。ここで説明するのは、イベントをきっかけに関数を実行する基本の形です。Webアプリをそのまま動かす形や、長時間の専用環境を使う形は扱いません。

関数・トリガー・実行環境の関係

Lambdaの仕組みは、関数・トリガー・実行環境の3つで成り立ちます。関数は、利用者が書くコードそのものです。コードの中で、イベントを受け取って処理を行う部分をハンドラと呼びます。

トリガーは、関数を実行するきっかけになるイベントの発生源です。トリガーの例は、API Gateway・Amazon S3・Amazon SQS・EventBridgeなどです。これらを含め200以上のAWSサービスをトリガーにできます。

HTTPのリクエストで関数を呼ぶ仕組みは、API Gatewayの記事で説明しています。SQSのキューを間に置く理由は、SQSとSNSの記事で説明しています。データベース接続用のパスワードは、コードに書かなくても、Secrets Managerから実行時に取得できます。

実行環境は、関数のコードが実際に動く場所です。イベントが来るとLambdaが実行環境を用意し、関数を実行します。処理が終わった実行環境は一時停止され、次の呼び出しで再利用されることがあります。ただし、AWS公式ドキュメントは、呼び出しの間で状態を共有しない前提で関数を書くよう求めています。

EC2との違いは、課金される区間

EC2は、インスタンスが起動している間の時間で課金されます(Amazon Linuxなど対象のOSでは秒単位)。EC2の記事で説明したとおり、インスタンスは利用者が起動し、止めるまで動き続けます。処理をしていない時間も、起動している限り課金されます。

Lambdaは、呼び出しの回数と、関数のコードが動いた時間(1ミリ秒単位)で課金されます。イベントを待っているだけの時間は課金されません。AWS公式ドキュメントは、この特徴を「使った分だけ払う。前払いの約束は不要」と説明しています。ただし、実行環境をあらかじめ確保しておく設定もあります。この「プロビジョニングされた同時実行」を使うと、待機中もその分の料金がかかります。

時間の流れ →EC2起動している間、ずっと課金Lambda待機中(課金なし)イベント実行中イベント実行中イベント実行中
EC2は起動している間ずっと課金されますが、Lambdaは関数のコードが動いている間だけ課金されます。イベントを待っているだけの時間は課金されません。

どちらが向くかは、処理の頻度と持続時間で決まります。常に一定の負荷がかかる処理には、EC2が向きます。不定期なイベントに短時間だけ応答する処理には、Lambdaが向きます。1つのアプリを小さなサービスに分けるマイクロサービスでは、サービスの一部をサーバーレスで動かす構成もあります。

Lambdaには、実行時間とメモリの上限がある

Lambdaの関数には、実行時間やメモリなどの上限があります。たとえば1回の実行は最大15分までなので、それより長く続く処理はそのままでは動かせません。長時間動き続ける処理をサーバの管理なしで動かす方法には、Fargateがあります。詳しくはAmazon ECSの記事で説明しています。Webアプリのコードを渡してEC2上で動かし続ける場合は、Elastic Beanstalkを使えます。処理を段階ごとの関数に分けて順につなぐなら、AWS Step Functionsが順番と再試行を管理します。

Lambda関数の主な上限(2026-10-17時点、AWS公式ドキュメント)
項目上限・既定値
メモリ割り当て128 MBから10,240 MBまで、1 MB刻みで設定できる。CPU性能はメモリに比例し、1,769 MBで1vCPU相当になる
実行時間(タイムアウト)既定値は3秒。最大900秒(15分)まで設定できる
同時実行数デフォルトのクォータは1,000。AWSに申請すれば引き上げられる
デプロイパッケージサイズLambda APIやコンソールから直接アップロードするzipは50MBまで(より大きいzipはS3経由でアップロードする)。展開後の中身は250MBまで

最新の上限値はAWS公式ドキュメントの「Lambda quotas」で確認してください。本文中の数値は、2026年10月17日に確認した値です。

料金は、リクエスト数と実行時間で決まる

Lambdaの料金は、関数が呼び出された回数(リクエスト数)と、実行にかかった時間(GB秒)で決まります。GB秒は、割り当てたメモリ量(GB)と実行時間(秒)をかけた値です。メモリを増やすとCPU性能も上がりますが、GB秒も増えます。

期限のない無料利用枠(Always Free)は、月100万リクエストと40万GB秒です。この値は、2026年10月17日にAWS公式ページで確認しました。次の図で、メモリ・実行時間・呼び出し回数からGB秒を計算し、無料利用枠に占める割合を確認できます。

月間のリクエスト数1,000,000 回無料利用枠(1,000,000回/月)の100%
月間のGB秒250,000 GB秒無料利用枠(400,000GB秒/月)の63%

GB秒 = 割り当てメモリ(GB、MB÷1,024)× 実行時間(秒)× 呼び出し回数。無料利用枠の数値は2026年10月17日にAWS公式ページで確認した値です。具体的な料金(USD)は含みません。

具体的な料金(USD)は、リージョンやCPUアーキテクチャによって異なり、変動することもあります。最新の料金はAWS公式の料金ページで確認してください。

参考にした資料

練習問題(全4問)

Q1AWS Lambdaの説明として正しいものはどれ?
Q2EC2とLambdaで、課金のされ方の違いとして正しいものはどれ?
Q3Lambda関数の実行環境を起動するきっかけとして、AWS公式ドキュメントが説明しているものはどれ?
Q4Lambdaのメモリ割り当てとCPUの関係として、AWS公式ドキュメントの説明と合うものはどれ?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

AWSの記事を続けて読む

AWS 全38本中6本目