メニュー
AWS Lambda
開発者ガイド

AWS Lambda とは

AWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。AWS Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケーリングします。使用したコンピューティング時間に対してのみお支払いいただきます- コードが実行中でなければ料金はかかりません。AWS Lambda によって、実質どのようなタイプのアプリケーションやバックエンドサービスでも、管理なしでコードを実行できます。AWS Lambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースの管理をすべて担当します。これにはサーバーおよびオペレーティングシステムの管理、キャパシティーのプロビジョニングおよび自動スケーリング、コードのモニタリングおよびログ記録などが含まれます。必要な操作は、AWS Lambda がサポートするいずれかの言語 (現在は Node.js、Java、C# および Python) でコードを指定するだけです。

AWS Lambda を使用して、Amazon S3 バケットまたは Amazon DynamoDB テーブル内のデータの変更などのイベントに応答してコードを実行できます。Amazon API Gateway を使用して HTTP リクエストに応答してコードを実行します。または AWS SDK を使用して作成された API コールを使用してコードを呼び出します。これらの機能により、Lambda を使って Amazon S3 や Amazon DynamoDB などの AWS サービス用のデータ処理トリガーを簡単に構築し、Amazon Kinesis に保存されたストリーミングデータを処理し、AWS のスケール、パフォーマンス、およびセキュリティで運用される独自のバックエンドを作成できます。

AWS Lambda の実行環境の詳細については、「Lambda 実行環境と利用できるライブラリ」を参照してください。AWS Lambda がコードを実行するために必要なコンピューティングリソースを決定する方法の詳細については、「コンピューティング要件 – Lambda 関数の設定」を参照してください。

AWS Lambda が適している用途

AWS Lambda は、AWS Lambda でサポートされる言語 (Node.js、Java、C# および Python) でアプリケーションコードを記述できる場合、多くのアプリケーションシナリオにとって最適なコンピューティングプラットフォームとなり、Lambda によって提供される AWS Lambda スタンダードランタイム環境とリソース内で実行されます。

AWS Lambda を使用する場合、お客様が責任を負うのはコードのみです。AWS Lambda は、バランスの良いメモリ、CPU、ネットワーク、およびその他のリソースを備えたコンピューティングシステムを管理します。これは柔軟性の引き換えとなるものです。つまり、コンピューティングインスタンスにログインしたり、オペレーティングシステムまたは言語ランタイムをカスタマイズしたりすることはできません。これらの制約により、AWS Lambda はユーザーに代わって操作や管理のアクティビティを実行します。これには容量のプロビジョニング、システム全体の状態のモニタリング、セキュリティパッチの適用、コードのデプロイ、Lambda 関数のモニタリングとログ記録が含まれます。

独自のコンピューティングリソースを管理する必要がある場合は、Amazon Web Services は目的に適した他のコンピューティングサービスも提供します。

  • Amazon Elastic Compute Cloud (Amazon EC2) サービスには柔軟性が備わっており、さまざまな EC2 インスタンスタイプから選択できます。これにより、オペレーティングシステム、ネットワークやセキュリティ設定、およびソフトウェアスタック全体をカスタマイズするオプションが得られますが、容量のプロビジョニング、システム全体の状態とパフォーマンスのモニタリング、および耐障害性のためのアベイラビリティーゾーンの使用はお客様が行う必要があります。

  • Elastic Beanstalk はアプリのデプロイおよび Amazon EC2 へのスケーリング用の使いやすいサービスで、お客様が基盤となる EC2 インスタンスを所有して全面的に管理します。

AWS Lambda を初めてお使いになる方向けの情報

AWS Lambda を初めて使用する方には、次のセクションを順に読むことをお勧めします。

  1. サンプルのユースケースを理解するため、製品概要を読み、入門動画をご覧ください。 これらの資料は AWS Lambda ウェブページにあります。

    このガイドの「仕組み」セクションをお読みください。 このセクションでは、エンドツーエンドエクスペリエンスを作成するために使用する AWS Lambda のさまざまなコンポーネントを説明しています。詳細については、「仕組み」を参照してください。

  2. 本ガイドの「Lambda 関数」を確認してください。 Lambda 関数のプログラミングモデルとデプロイオプションについて、理解しておく必要がある主要概念があります。このセクションでは、それらの概念について説明し、Lambda 関数のコードの記述に使用できるさまざまな言語での動作の詳細について説明します。詳細については、「Lambda 関数」を参照してください。

  3. コンソールベースの「ご利用開始にあたって」の実習を実行します。 この実習では、コンソールを使用して、初めて Lambda 関数を作成し、テストする手順について説明しています。Lambda 関数を迅速に作成するためにコンソールで提供される設計図についても学習します。詳細については、「ご利用開始にあたって」を参照してください。

  4. 本ガイドの「AWS Lambda を用いたアプリケーションの構築」をご覧ください。 このセクションでは、エンドツーエンドエクスペリエンスを作成するために使用する AWS Lambda のさまざまなコンポーネントを説明しています。詳細については、「AWS Lambda を使用するアプリケーション構築の概要」を参照してください。

「ご利用開始にあたって」の実習の後に、さまざまなユースケースを参照でき、それぞれのシナリオの例を説明したチュートリアルが提供されています。アプリケーションのニーズ (たとえば、イベント駆動型 Lambda 関数の呼び出しまたはオンデマンドでの関数呼び出しのいずれか) に応じて、お客様固有のニーズを満たす特定のチュートリアルを参照できます。詳細については、「ユースケース」を参照してください。

ここで示している各トピックで、AWS Lambda についてさらに詳しく学習できます。