AWS Lambda を使用することで、サーバーのプロビジョニングや管理をすることなく、コードを実行できます。料金は、コンピューティングに使用した時間に対してのみ発生します。
Lambda を使用すれば、実質どのようなタイプのアプリケーションやバックエンドサービスでも管理を必要とせずに実行できます。コードさえアップロードすれば、高可用性を実現しながらコードを実行およびスケーリングするために必要なことは、すべて Lambda により行われます。コードは、他の AWS サービスから自動的にトリガーするよう設定することも、ウェブやモバイルアプリケーションから直接呼び出すよう設定することもできます。
利点
サーバー管理が不要
AWS Lambda ではコードを自動的に実行します。サーバーのプロビジョニングや管理は必要ありません。必要なのは、コードを書いて Lambda にアップロードすることのみです。
継続的スケーリング
AWS Lambda では、毎回のトリガーに対応してコードを実行することにより、自動的にアプリケーションをスケールします。コードは並行して実行され、トリガーごとに個別に処理され、ワークロードのサイズに合わせて正確にスケールされます。
ミリ秒単位の課金
AWS Lambda では、コードが実行される 100 ms ごと、およびコードがトリガーされた回数に対して課金されます。料金は、コンピューティングに使用した時間に対してのみ発生します。
安定したパフォーマンス
AWS Lambda では、関数に適切なメモリサイズを選択することにより、コード実行時間を最適化できます。また、プロビジョニングされた同時実行を有効にして、関数を初期化し、2 桁のミリ秒以内に応答するようにハイパー対応することもできます。
仕組み
ユースケース
AWS Lambda で何を構築できるでしょう? ユースケースの詳細は、以下を参照してください。
データ処理
AWS Lambda を使用すると、データの変更、システムステータスの遷移、またはユーザーによるアクションをトリガーとし、その応答としてコードを実行できます。Lambda は、S3、DynamoDB、Kinesis、SNS、CloudWatch などの AWS のサービスによって直接起動したり、既存の EFS ファイルシステムに接続したり、AWS Step Functions によってワークフローに編成したりすることもできます。これにより、さまざまなリアルタイムのサーバーレスデータ処理システムを構築することができます。
リアルタイムファイル処理
Amazon S3 を使用して AWS Lambda をトリガーし、アップロードしたデータを直ちに処理することができます。既存の Amazon EFS ファイルシステムに直接接続することもできます。これにより、大規模なファイル処理を行うための大規模な並列共有アクセスが可能になります。例えば、Lambda を使用すると、画像のサムネイル作成、ビデオのコード変換、ファイルのインデックス作成、ログの処理、コンテンツの検証、およびデータの収集とフィルタリングをリアルタイムで実行できます。
リファレンスアーキテクチャ: サンプルコード
The Seattle Times は AWS Lambda を使用して画像をリサイズし、デスクトップコンピュータ、タブレット、スマートフォンなどの異なるデバイスで閲覧できるようにしています。導入事例を読む »
リアルタイムストリーム処理
リアルタイムのストリーミングデータを AWS Lambda と Amazon Kinesis を使用して処理することで、アプリケーションのアクティビティのトラッキング、注文のトランザクション処理、クリックストリーム分析、データクレンジング、メトリクスの生成、ログのフィルタリング、インデックス作成、ソーシャルメディア分析、および IoT データのテレメトリと測定などが行えます。
リファレンスアーキテクチャ: サンプルコード
Localytics では、数十億のデータポイントをリアルタイムで処理しており、S3 に保存された、または Kinesis からストリーミングされた履歴データとライブデータを Lambda を使用して処理しています。導入事例を読む »
機械学習
AWS Lambda を使用してデータを前処理してから、機械学習モデルにフィードできます。Lambda から EFS にアクセスできるため、インフラストラクチャをプロビジョニングまたは管理しなくても、スケールに応じた予測を行うためのモデルを提供することもできます。
「Aible は、最小限の運用コストで、非常に強力な人工知能テクノロジーを提供することに注力しています。そのため、機械学習のトレーニングと予測に AWS Lambda とサーバーレスを使用しています。サーバーレスでは、ビジネスで最大限の効果を引き出すための人工知能を開発する高速なイテレーションとスケーリングに必要なバーストコンピューティングリソースの利点を得ながら、機械学習の広範なワークロードをさらにコスト効率の高い方法で実行できます」
Aible、CTO、Rod Butters 氏
バックエンド
AWS Lambda を使用して、ウェブ、モバイル、IoT、サードパーティー API リクエストを処理するサーバーレスバックエンドを構築できます。複数のメモリ構成やプロビジョニングされた同時実行など、Lambda の一貫したパフォーマンス制御を活用して、あらゆる規模のレイテンシーに敏感なアプリケーションを構築します。
ウェブアプリケーション
開発者は、AWS Lambda を AWS の他のサービスと組み合わせることで、スケールアップまたはスケールダウンを自動的に行う強力なウェブアプリケーションを構築し、複数のデータセンターにわたって可用性の高い設定で実行できます。スケーラビリティ、バックアップ、または複数のデータセンターによる冗長性を、管理に労力を費やすことなく実現できます。
リファレンスアーキテクチャ: サンプルコード
IoT バックエンド
AWS Lambda を使用して、ウェブ、モバイル、IoT、サードパーティー API リクエストを処理するサーバーレスバックエンドを構築できます。
リファレンスアーキテクチャ: サンプルコード
モバイルバックエンド
AWS Lambda によって、機能が豊富でカスタマイズされたアプリケーションの機能をより簡単に作成できます。AWS Lambda と Amazon API Gateway を使用して、API リクエストの認証と処理のためのバックエンドを構築できます。AWS Amplify を使用して、バックエンドを iOS、Android、ウェブ、React Native フロントエンドと簡単に統合できます。
リファレンスアーキテクチャ: サンプルコード
Bustle では、AWS Lambda と Amazon API Gateway を使用して、Bustle iOS アプリケーションとウェブサイトのサーバーレスバックエンドを実行しています。サーバーレスアーキテクチャでは、Bustle でインフラストラクチャを管理する必要は一切ないため、すべてのエンジニアは新しい機能の構築や新規開発に集中できます。導入事例を読む »
導入事例
アメリカの清涼飲料水分野の多国籍企業である Coca-Cola Company は、AWS Lambda と AWS Step Functions を使用してコスト効果の高いサーバーレスソリューションを構築しました。
iRobot は一流の世界的な消費者向けロボット企業で、サーバーレスアーキテクチャを用いて、スマート住宅向けの接続された次世代のデバイスを構築しています。
ライフサイエンス分野のソフトウェア会社 Benchling は、サーバーレスアーキテクチャを使用して、極めて正確にゲノムの一部を修正するために研究者が使用する技法を作り上げました。
Thomson Reuters は、AWS Lambda を使用して、使用状況分析サービスで最大 4,000 イベント/秒を処理し、導入から運用までには 5 ヶ月かかりました。
AWS Lambda の使用開始
AWS Lambda の詳細