導入
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=必要なときだけ、という対比が試験でもよく問われます。