MENU

【AWS】Lambdaとは?EC2との違い・初心者向けにわかりやすく解説!

AWS Lambdaは、AWSが提供するサーバーレスのマネージドFaaS(Function as a Service)サービスです。
開発者はサーバーを構築せずに、自分が書いたプログラムだけをアップロードして実行できます。


目次

EC2との違い

EC2ではOSやミドルウェアのセットアップが必要ですが、LambdaではAWSが実行環境を事前に用意しているため、利用者はプログラムの準備と設定だけで利用可能です。

項目LambdaEC2
サーバー必要な時だけ起動
(サーバーレス)
常時起動している
料金実行回数と実行時間に応じて課金サーバーの稼働時間で課金
インフラAWSが自動管理OS・ミドルウェアは
自分でセットアップ
運用保守AWSが担当ユーザーが実施

💡 サーバーレスとは
「サーバーがない」という意味ではなく、サーバーの管理をAWSに任せられるという考え方です。


Lambdaの特徴:イベント駆動型で動く仕組み

Lambdaは「イベント駆動型」で動作します。
つまり、「何かの出来事(イベント)」をきっかけに自動的にコードを実行します。

🔔 たとえばこんな動作

  • S3にファイルがアップロードされた →  Lambdaが起動して画像をリサイズ
  • DynamoDBにデータが追加された → Lambdaがメール通知を送信
  • CloudWatchで毎日0時にトリガーを設定  → 定期的にバックアップ処理を実行

アレクサで考えるとわかりやすい!

「アレクサ、電気をつけて」 → 照明が点く

このように、「声(トリガー)」をきっかけに「プログラム(処理)」が自動で実行されます。
Lambdaも同じで、AWS上のイベントをトリガーにコードが動く仕組みです。

ポイント

  • Lambdaは「アプリケーション」ではなく、小さなプログラム単位(関数)を実行します。
  • そのため「イベント駆動型プログラム実行環境」と呼ぶのが正確です。

Lambda関数とは?

Lambda関数(Lambda Function)とは、Lambdaで実行できるコードの単位です。
1つの関数に以下の情報を登録します。

  • 実行するプログラム(Node.js, Python, Javaなど)
  • トリガー(例:S3アップロード時、CloudWatch定期実行など)
  • 実行権限(IAMロール)
  • メモリやタイムアウト設定

対応言語

Node.js / Python / Java / C# / Go / Ruby / PowerShell

⚠️ Lambda関数は1回の実行が最大15分までという制限があります。
長時間処理や大規模バッチには不向きです。


Lambdaの処理イメージ

  1. S3に画像をアップロード(イベント発生)
  2. Lambda関数が自動的に呼び出される(トリガー)
  3. AWS上で一時的に「コンテナ」が起動してプログラム実行
  4. 処理完了後、コンテナは削除

つまり、必要なときだけ動くサーバーです。


料金体系

Lambdaは「使った分だけ課金される」従量課金モデルです。

  • リクエスト数:100万リクエストにつき約0.2 USD
  • 実行時間:割り当てたメモリ量に応じて課金
     (メモリに比例してCPUリソースも割り当てられる)

💡 コスト最適化のポイント

  • 処理時間を短くする
  • メモリ量を最適化する
  • 不要なトリガーを減らす

プロビジョニングされた同時実行

Lambdaはリクエストごとに新しい環境(コンテナ)を起動します。
このとき初回のみ「コールドスタート」と呼ばれる数秒の遅延が発生する場合があります。

プロビジョニングされた同時実行を設定すると、
あらかじめ一定数のインスタンスをウォーム状態で維持し、遅延を防止できます。

check

  • 応答速度が重要なシステム(チャット、ゲームAPIなど)で有効
  • 高負荷トラフィックを予測できる場合に活用
  • 有効化すると追加コストが発生

Lambda@Edge

例えば沖縄の人がLambdaを呼び出す場合、基本的には東京リージョンでLambdaが起動します。
そうなると、沖縄 → 東京(AWSデータセンター)→ Lambda実行 → 沖縄へ結果を返す という流れになり、
物理的に距離があることから、ある程度の遅延が発生してしまいます。
Lambda@Edgeは、CloudFrontのエッジロケーションでLambda関数を実行できる拡張機能で、
沖縄にもエッジロケーションがあり、すべての処理が沖縄内で完結するので、遅延が少なくなります。
このように世界中のユーザーの近くでLambdaを呼び出して、応答速度を向上させる機能がLambda@Edgeです。


VPCアクセスと注意点

デフォルトでは、Lambda関数はLambda専用のVPC内で実行されます。
そのため、プライベートサブネットのRDSやElastiCacheには直接アクセスすることができません。

プライベートリソースにアクセスしたい場合は「VPCアクセス」を設定します。

check

  • VPCアクセスを有効化すると、ENI(Elastic Network Interface)が作成される
  • Lambda関数が指定したサブネット内で通信可能になる

ただし、VPCアクセスを設定するとインターネット通信ができなくなるため、
必要に応じてNATゲートウェイを経由させます。


まとめ

  • AWS LambdaはサーバーレスなFaaS
  • イベント駆動型でコードを自動実行
  • 最大15分までの短時間処理に最適
  • 従量課金でコスト効率が高い
  • プロビジョニング同時実行でコールドスタートを回避
  • VPCアクセス設定でプライベート通信も可能

https://aws.amazon.com/jp/lambda

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次