勝手にAWS教室 2時間目:Lambda
情報が古い場合があります。間違っている箇所がありましたらご教授いただけると幸いです。
「サーバーレス」という言葉を聞いたとき、最初に出てくるサービスが AWS Lambda です。
「サーバーレスって、サーバーがないってこと?」というギモンを持った方、いますよね。この記事でスッキリ解消しましょう。
先にまとめ
- サーバーレスとは何か:サーバーがないのではなく「管理しなくていい」
- Lambdaの動き方:自動販売機モデルで覚える
- 料金の仕組み:使った分だけ・実行時間課金
そもそも「サーバーレス」とは
「サーバーレス=サーバーがない」ではありません。
実際にはサーバーはあります。ただし、そのサーバーを自分で用意・管理しなくていい、という意味です。
従来のサーバー管理(EC2など)
EC2でサーバーを立てると、次のことを自分でやる必要があります。
- サーバーの起動・停止
- OSのアップデート・パッチ適用
- スケールアップ(負荷に応じた拡張)
- 24時間稼働しているので、使っていない時間も課金
Lambda(サーバーレス)
Lambdaでは、これらをすべてAWSが肩代わりしてくれます。
開発者はコードを書くだけ。サーバーの管理は一切不要です。
料理で例えると、EC2は「自炊(キッチン・食材・片付け全部自分)」、Lambdaは「UberEats(注文するだけ・届いた分だけ払う)」イメージです。
1. Lambdaの動き方:自動販売機
Lambdaの動作を 「自動販売機」 で覚えましょう。
ボタンを押したときだけ動く
自動販売機は、誰かがボタンを押したときだけ商品を出します。誰も使っていない時間は、ただ待っているだけです。
Lambdaも同じで、何らかのイベント(トリガー)が発生したときだけコードが実行されます。待機中は課金されません。
トリガーの例
Lambdaを起動するイベント(トリガー)の例です。
トリガーの内容は一旦無視して大丈夫です。今後学んでいきます。
今はいろんなサービスと連携することでLambdaが動くんだよってことを抑えてください!
| トリガー | 例 |
|---|---|
| API Gateway | HTTPリクエストが来たとき |
| S3 | ファイルがアップロードされたとき |
| DynamoDB | データが更新されたとき |
| EventBridge | 定時(cronのように毎朝9時など) |
| SNS | 通知が届いたとき |
コードが実行される時間は短い
Lambdaの関数は 最大15分 しか実行できません(タイムアウト)。長時間かかる処理には向いていないため、小さな処理を組み合わせる設計が基本です。
これは結構大事な知識になります。
長い時間の処理にはLambdaは向かないので、「この処理はLambdaでいけるか?15分以内に終わるか?」が判断基準になります。
2. 料金の仕組み:使った分だけ
Lambdaの料金は2つの要素で決まります。
リクエスト数課金
関数が呼び出された回数に応じて課金されます。毎月最初の 100万リクエストは無料 です。
私はいつもこの無料に助けられてます....笑
個人学習で何かを作るときは100万リクエストなんて到底行かないのでタダで使うことができます、神です。
実行時間課金
コードが実行されている時間(ミリ秒単位)× メモリ量で課金されます。
コインパーキングで止めた時間分だけ課金されるのと同じイメージです。また、止める車のサイズによっても値段が変動しますが、それがメモリ量だと考えてもらえるといいかなと思います。
料金比較イメージ
EC2が「駐車場の月極契約(使っても使わなくても毎月固定料金)」なら、Lambdaは「コインパーキング(止めた時間分だけ課金)」です。
EC2と料金の比較をすると以下のような形になります。
| サービス | 課金タイミング | 向いている用途 |
|---|---|---|
| EC2 | 起動している間ずっと | 24時間動き続けるサーバー |
| Lambda | 実行した時間だけ | 何かが起きたときだけ動く処理 |
3. Lambdaが向いているケース・向かないケース
向いているケース
- 写真をアップしたら自動でサイズを小さくする → Instagramに投稿したら自動でリサイズされるみたいな小さい処理
- 毎朝決まった時間にデータをまとめる → 毎朝届く日報メールを自動で作る
- ボタンを押したらデータを返す → アプリの「検索ボタン」の裏側で動く処理
- 通知が来たら何かする → LINEが届いたら自動で既読をつける
向かないケース
- ずっと待ち構えているWebサイト → Netflixみたいに24時間いつでも動画が見られるサイト
- 何時間もかかる重い処理 → YouTubeに上げた動画が何時間もかけて画質変換される裏側の処理
- めちゃくちゃパワーが必要な処理 → ChatGPTみたいなAIにたくさんのデータを覚えさせる作業
まとめ
| 概念 | 比喩 | 一言ポイント |
|---|---|---|
| サーバーレス | UberEats | サーバー管理不要・コードだけ書く |
| トリガー | 自販機のボタン | S3・API GW・EventBridgeなどのイベント |
| 実行時間 | コインパーキング | 最大15分・使った時間だけ課金 |
| 無料枠 | お試し期間 | 毎月100万リクエストまで無料 |
最後に
「サーバーレスとは何か」「どういうときに使うか」をネットで調べてみてください。Lambdaは思った以上に色々なことに使われていて、いろんなサービスを横から支えています。
私自身も一番好きなサービスなのでぜひ皆さんもLambdaについて知識を深めて、Lambdaマスターになりましょう。
現在までに投稿してきた「勝手にAWS教室」はこちらにまとめてあります。
興味がある方はご覧ください。



