AWS Lambda のアイコン

AWS Lambda

サーバー管理不要でコードを実行するサーバーレスコンピュートサービス

何ができるか

AWS Lambda は、サーバーのプロビジョニングや管理なしにコードを実行できるサーバーレスコンピュートサービスです。イベント (HTTP リクエスト、ファイルアップロード、データベースの変更など) をトリガーにコードが自動実行され、実行時間に対してのみ課金されます。Python、Node.js、Java、Go、.NET など主要な言語に対応しています。

どのような場面で使うか

API のバックエンド処理、S3 へのファイルアップロード時の画像リサイズ、DynamoDB の変更をトリガーとしたデータ処理、定期的なバッチ処理、IoT デバイスからのデータ処理など、イベント駆動型のあらゆるワークロードに利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

自動販売機に例えるとわかりやすいでしょう。ボタンを押す (イベント発生) と飲み物が出てくる (コード実行) 仕組みで、自動販売機の電気代やメンテナンス (サーバー管理) は業者 (AWS) が行います。ボタンが押されない間は料金が発生しません。

Lambda とは

AWS Lambda は、AWS で最も広く使われているサーバーレスサービスです。関数と呼ばれるコードの単位をアップロードし、イベントが発生すると自動的に実行されます。同時に数千のリクエストが来ても自動でスケールし、リクエストがなければコストはゼロです。

イベントソースとトリガー

Lambda は 200 以上の AWS サービスや SaaS アプリケーションからのイベントをトリガーにできます。API Gateway からの HTTP リクエスト、S3 へのオブジェクトアップロード、DynamoDB Streams のデータ変更、SQS キューのメッセージ、EventBridge のスケジュールイベントなどが代表的なトリガーです。これらを組み合わせることで、サーバーレスアーキテクチャを構築できます。

料金と制限

Lambda の料金はリクエスト数と実行時間 (GB-秒) の 2 つで計算されます。無料利用枠として月間 100 万リクエストと 40 万 GB-秒が常時無料です。1 回の実行の最大時間は 15 分、メモリは最大 10,240 MB まで設定できます。デプロイパッケージのサイズは圧縮時 50 MB、展開時 250 MB が上限ですが、コンテナイメージを使えば最大 10 GB まで対応可能です。

はじめかた

Lambda コンソールで「関数の作成」をクリックし、ランタイム (Python、Node.js など) を選択します。コンソール上のエディタでコードを記述し、「テスト」ボタンで実行結果を確認できます。API Gateway をトリガーに設定すれば、数分で HTTP API のバックエンドが完成します。

注意点

  • 1 回の実行時間は最大 15 分。長時間の処理には Step Functions や ECS/Fargate を検討する
  • コールドスタート (初回起動の遅延) が発生する場合がある。レイテンシが重要な場合は Provisioned Concurrency を検討する
  • 無料利用枠として月間 100 万リクエストと 40 万 GB-秒が常時無料で利用可能

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。