
Lambdaは、料理のレシピみたいなもの。材料(データ)と調理方法(コード)を登録しておけば、必要な時に必要な分だけ料理(処理)してくれます。普段はガス(サーバー)をつけっぱなしにする必要はなく、注文(イベント)があった時だけ自動で動くから、無駄がありません。つまり、必要な時だけ動き、使わない時は止まる、とっても賢い料理人なんです!
面接官:AWS Lambdaについて説明してください。
私:AWS Lambdaは、Amazon Web Services (AWS) が提供するサーバーレスコンピューティングサービスです。サーバーのプロビジョニングや管理を気にすることなく、コードを実行できます。
以前のプロジェクトで、画像リサイズ処理を実装する際にLambdaを導入しました。以前はEC2インスタンスで常時実行していたため、アクセスが少ない時間帯でもリソースを消費していました。Lambdaに切り替えた結果、コストを約70%削減できました。また、イベント駆動型アーキテクチャを採用し、S3バケットに画像がアップロードされると自動的にリサイズ処理が開始されるように設計しました。これにより、迅速な画像処理が可能になり、ユーザーエクスペリエンスも向上しました。
現役エンジニアによる深掘り解説
メリット
コスト効率: 使用したコンピューティングリソースに対してのみ料金が発生するため、使用率が低い場合に特に効果的です。
スケーラビリティ: 自動的にスケールアップ・スケールダウンするため、トラフィックの変動に対応できます。
運用の簡素化: サーバーの管理が不要なため、開発者はコードの作成とデプロイに集中できます。
迅速なデプロイ: サーバーレスアーキテクチャにより、迅速なデプロイと反復開発が可能です。
多様な言語サポート: Java, Python, Node.js, Go, C, Rubyなど、多くのプログラミング言語をサポートしています。
デメリット
コールドスタート: 初回実行時や長時間未使用後に実行する場合、起動に時間がかかることがあります(コールドスタート)。
実行時間制限: 1つのLambda関数の実行時間には制限があります(最大15分)。
デバッグの複雑さ: ローカル環境での再現が難しい場合があり、デバッグが複雑になることがあります。
状態の保持: Lambda関数はステートレスであるため、状態を保持する必要がある場合は、別途データベースやキャッシュなどを利用する必要があります。
セキュリティ: 適切なIAMロール設定やVPC設定を行わないと、セキュリティリスクが高まる可能性があります。
⚠️ 面接突破のワンポイント
- コールドスタート対策: プロビジョニングされた同時実行数(Provisioned Concurrency)を検討し、コールドスタートの影響を軽減する方法を理解しておくこと。
- レイヤーの活用: 共通ライブラリや依存関係をレイヤーとして分離し、Lambda関数のデプロイサイズを小さく保つ方法を説明できるようにすること。


