lambdaとは

Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービス。Lambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースの管理をすべて担当する。これにはサーバーおよびオペレーティングシステムのメンテナンス、容量のプロビジョニングおよびオートスケーリング、コードのモニタリングおよびログ記録などが含まれる。Lambda を使用すると、実質どのようなタイプのアプリケーションやバックエンドサービスに対してもコードを実行できる。Lambda がサポートするいずれかの言語でコードを指定するだけでよい。

コードを Lambda 関数に整理する。Lambda は必要に応じて関数を実行し、1 日あたり数個から 1 秒あたり数千個のリクエストまで自動的にスケーリングする。課金は実際に消費したコンピューティング時間に対してのみ発生する。コードが実行されていない場合、料金は発生しない。

Lambda API を使用して Lambda 関数を呼び出したり、他の AWS のサービスからのイベントに応答してLambda が関数を実行したりできる。

  • AWS のサービス (Amazon Simple Storage Service (Amazon S3) や Amazon DynamoDB など) のデータ処理トリガーの構築。
  • Amazon Kinesis に保存されたストリーミングデータの処理。
  • AWS 規模、パフォーマンス、セキュリティで動作する独自のバックエンドの作成。

Lambda が適している用途

Lambda は、多くのアプリケーションシナリオにとって最適なコンピューティングサービス。Lambdaによって提供されるリソース内で Lambda スタンダードランタイム環境を使用しながら、アプリケーションのコードを実行できる。Lambda 関数は呼び出しごとに最大 15 分間実行されるため、Lambda は短いイベント駆動型のワークロードに最適。

Lambda を使用する際、ユーザーが責任を負うのはコードのみ。Lambda によって、コードを実行するメモリのバランス、CPU、ネットワーク、その他のリソースを提供するコンピューティングフリートが管理される。Lambda がこれらのリソースを管理するため、コンピューティングインスタンスにログインしたり、提供されたランタイムのオペレーティングシステムをカスタマイズしたりすることはできない。Lambda は、容量の管理、モニタリング、Lambda 関数のログ記録など、運用および管理アクティビティをユーザーに代わって実行する。

Lambda の機能

次の主要な機能は、スケーラブルで安全で拡張が容易な Lambda アプリケーションの開発に役立つ。

  • 同時実行とスケーリングコントロール
    • 同時実行制限やプロビジョニングされた同時実行などの 同時実行とスケーリング制御 により、製品アプリケーションのスケーリングと応答性をきめ細かく制御できる。
  • コンテナイメージとして定義された関数
    • お好きなコンテナイメージツール、ワークフロー、依存関係を使用して、Lambda 関数を構築、テスト、デプロイできる。
  • コード署名
    • Lambda のコード署名により、信頼性と整合性を管理できる。それにより、承認されたデベロッパーによって公開された未変更のコードのみが、Lambda 関数にデプロイされていることを確認できる。
  • Lambda の拡張
    • Lambda 拡張機能を使用して Lambda 関数を補強できる。拡張機能を使用すると、モニタリング、観測、セキュリティ、ガバナンス用のお気に入りのツールと Lambda を容易に統合できる。
  • 関数ブループリント
    • 関数ブループリントは、他の AWS サービスやサードパーティーのアプリケーションで Lambda を使用する方法を示すサンプルコードを提供する。ブループリントには、Node.js および Python ランタイム用のサンプルコードおよび関数設定プリセットが含まれている。
  • データベースアクセス
    • データベースプロキシ は、データベース接続のプールを管理し、関数からのクエリを中継する。これにより、関数はデータベース接続を使い果たすことなく、同時実行レベルを上げることができる。
  • ファイルシステムのアクセス
    • Amazon Elastic File System (Amazon EFS) ファイルシステムをローカルディレクトリにマウントするように関数を設定できる。Amazon EFS を使用すると、関数コードは共有リソースに安全かつ高い同時実行数でアクセスして変更できる。