本文へスキップ
BecomeCoder

AWSコース · 第3章 コンピューティング · レッスン15

サーバーレス ― Lambda

導入

EC2は便利ですが、「OSのアップデート」「セキュリティパッチ」「使っていない時間の課金」など、サーバーを持つこと自体の手間とコストが発生します。Lambdaは、その「サーバーを持つこと」自体をなくしてしまうサービスです。

説明

AWS Lambdaは、サーバーの管理を一切せずにコード(関数)を実行できる、代表的なサーバーレスコンピューティングサービスです。特徴は次の通りです。

  • サーバー管理不要 … OSやミドルウェアの管理はAWSが行う。利用者はコードだけを用意する。
  • イベント駆動 … 「S3にファイルがアップロードされた」「APIにリクエストが来た」「決まった時刻になった」といったイベントをきっかけに実行される。
  • 従量課金 … 実行された回数と実行時間(ミリ秒単位)に対してのみ課金される。呼び出されていない間は料金がかからない。
  • 自動スケーリング … リクエストが増えれば、Lambda自体が並行実行数を自動的に増やして対応する。
sequenceDiagram
  participant S3 as S3(画像アップロード)
  participant Lambda as Lambda関数
  S3->>Lambda: アップロードイベント発生
  Lambda->>Lambda: 画像をリサイズ
  Lambda-->>S3: サムネイルを保存

EC2との違いを整理すると、EC2は「サーバーを借りて常時起動しておく」のに対し、Lambdaは「必要なときだけ処理が動き、終われば消える」という違いになります。常時大量のリクエストをさばき続けるならEC2(や後述のコンテナ)が有利な場合もありますが、「特定のイベントに反応して短時間の処理をする」用途(画像処理の自動化、APIの裏側の処理など)ではLambdaが非常に相性が良く、コストも抑えやすくなります。

読んでみよう

Lambdaは「サーバー管理不要・イベント駆動・実行した分だけ課金」の3点をセットで覚えましょう。EC2=常時起動、Lambda=必要なときだけ、という対比が試験でもよく問われます。