AWS Lambda
開発者ガイド

AWS Lambda とは

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

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

イベントによってトリガーされる関数で構成され、AWS CodePipeline と AWS CodeBuild を使用して自動的にそれらをデプロイするサーバーレスアプリケーションを構築することもできます。詳細については、「AWS Lambda アプリケーション」を参照してください。

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

AWS Lambda が適している用途

AWS Lambda では多くのアプリケーションシナリオに最適なコンピューティングプラットフォームとして、AWS Lambda でサポートされる言語 (Node.js、Java、Go と C#、および Python) を使用してアプリケーションを書き込み、AWS Lambda の標準ランタイム環境で Lambda で提供されるリソースを実行できます。

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

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

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

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

Lambda は、可用性の高いサービスです。詳細については、「AWS Lambda サービスレベルアグリーメント (SLA)」を参照してください。

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

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

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

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

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

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

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

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