
CONTENT
こんにちは、KSです。
現在、AWS認定ソリューションアーキテクト(SAA)の合格を目指して猛勉強中です!
1. そもそもAWS Lambdaとは?(なぜ使うのか)
一言で言うと、「サーバーの管理を一切気にせず、プログラム(関数)だけを実行できるサービス」です。
従来のEC2(仮想サーバー)では、OSのアップデートやメモリの空き容量などを常に気にする必要がありました。しかし、Lambdaは「この条件を満たしたら、このコードを動かして!」と指示を出すだけで、裏側のインフラ管理はすべてAWSにお任せできます。
★試験勉強での重要ポイント
試験では「コスト最適化」や「運用負荷の軽減」が問われます。Lambdaは「リクエストがあった時だけ」料金が発生するため、24時間動かし続ける必要がない処理には最適。この「イベント駆動(何かが起きたら動く)」という考え方が、設計の要になります。
2. Lambda Layers:コードを「スリム化」する仕組み
複数のLambda関数を作っていると、共通して使いたいライブラリ(PythonのPandasなど)が出てきます。
これらを毎回各関数に詰め込むと、ファイルが重くなって管理が大変です。そこで登場するのが「Lambda Layers(レイヤー)」です。
・役割:共通ライブラリや自作の共通関数を「外出し」して共有できる。
・メリット:関数本体が軽くなり、更新が速くなる。最大5つまで重ねて利用可能。
[イメージ]
Lambda関数
├─ 自分のコード(独自のロジック)
├─ レイヤー1(共通ライブラリA)
└─ レイヤー2(共通ライブラリB)
------------------------------------
Lambda関数
├─ 自分のコード
├─ レイヤー1(共通ライブラリA)
├─ レイヤー2(共通ライブラリB)
------------------------------------
3. Invocation(呼び出し方):ここが試験の分かれ道!
Lambdaを「どう実行するか」という呼び出し方には2種類あります。実務での設計や試験対策でも、この使い分けが非常に重要です。
■ 同期呼び出し(Synchronous)
呼び出し元が、Lambdaの処理が終わるのを待って結果を受け取るパターンです。
・例:スマホアプリからAPIを叩いて、即座に画面にデータを表示したい時。
■ 非同期呼び出し(Asynchronous)
「お願いね!」とイベントを投げるだけで、処理の完了を待たないパターンです。
・例:S3に画像がアップロードされたら、裏側でこっそり縮小版を作る時。
★試験勉強での重要ポイント
特に「非同期呼び出し」でのエラーハンドリングがよく狙われます。「もし処理が失敗したら?」という対策として、自動リトライ(最大2回)や、どうしてもダメだった時にデータを逃がす「デッドレターキュー(SQS/SNS)」の組み合わせを理解しておくのが合格への近道です!
まとめ:Lambdaは「自動化」の立役者
Lambdaを学ぶと、AWS上の様々なサービスを繋ぐ「接着剤」のような役割が見えてきます。
・ファイルが置かれたら動く(S3連携)
・データベースが更新されたら動く(DynamoDB連携)
・決まった時間になったら動く(スケジュール実行)
これらを組み合わせることで、人間が何もしなくても勝手にシステムが動く「サーバーレス」の世界が実現できます。
引き続き、試験合格に向けてこうした「サービスの繋がり」を意識しながら学習を進めていきたいと思います!