AWS Lambda はイベント発生時にお客様のコードを実行し、基盤となるコンピューティングリソースをお客様に代わって管理する、サーバーレスコンピューティングサービスです。AWS Lambda を使用すると、カスタムロジックを使って AWS の他のサービスを拡張することや、AWS の規模、パフォーマンス、セキュリティを活用して運用する自社のバックエンドサービスを作成することができます。AWS Lambda では、複数のイベント (Amazon API Gateway 経由の HTTP リクエスト、Amazon S3 バケット内のオブジェクト変更、Amazon DynamoDB 内のテーブル更新、AWS Step Functions 内の状態遷移など) に応答して、自動的にコードが実行されます。

AWS Lambda は可用性の高いコンピューティングインフラストラクチャでお客様のコードを実行し、コンピューティングリソースの管理をすべて担当します。これにはサーバーおよびオペレーティングシステムの管理、キャパシティーのプロビジョニングおよび自動スケーリング、コードおよびセキュリティパッチのデプロイ、モニタリングおよびロギングなどが含まれます。お客様はコードを書くだけです。

AWS を無料でお試しください

まずは無料で始める »
またはコンソールにサインイン

AWS 無料利用枠には、AWS Lambda での1 か月あたり 100 万の無料要求と最大 3.2M 秒のコンピューティング時間が含まれます。

AWS アカウント作成の流れはこちら »

ha_ed_webinar_video_380x186
AWS Lambda の使用開始
DevOps_lambda

AWS Lambda で実行するコードは「Lambda 関数」と呼ばれます。1 度 Lambda 関数を作成すれば、スプレッドシートの数式と同じでトリガーすればいつでもすぐに実行されるようになります。各関数はコードと、関数名やリソース要件などの関連情報で構成されます。Lambda 関数は「ステートレス」で、基盤となるインフラストラクチャに依存しないため、必要な関数をすべて迅速に実行することで受信イベントに合わせてスケールします。

AWS Lambda にコードをアップロードすれば、関数を特定の AWS リソース(特定の Amazon S3 バケット、Amazon DynamoDB テーブル、Amazon Kinesis ストリーム、Amazon SNS 通知)に関連付けることができます。その後リソースが変更されると、Lambda は受信リクエストに対応して必要な関数の実行およびコンピューティングリソースの管理を行います。

100x100_benefit_ingergration

AWS Lambda を使用すると、Amazon S3 バケット、Amazon DynamoDB テーブルなどの AWS リソースにカスタムロジックを追加できます。これにより、クラウドに入ってきたデータやクラウド内を移動するデータに簡単にコンピューティングを適用できます。

AWS Lambda の利用を開始するのは簡単です。まずコードをアップロードして(または Lambda コンソールで直接構築して)関数を作成し、メモリ、タイムアウト時間、AWS Identity and Access Management (IAM) の役割を選択します。次に、関数をトリガーする AWS リソースとして特定の Amazon S3 バケット、Amazon DynamoDB テーブル、Amazon Kinesis ストリームのいずれかを指定します。リソースが変更されると、Lambda は関数を実行し、受信リクエストに対応するために必要なコンピューティングリソースを開始および管理します。

100x100_benefit_layers

AWS Lambda を使用してアプリケーションに対する新規バックエンドサービスを作成し、Amazon API Gateway で構築した Lambda API またはカスタム API エンドポイントを使用してオンデマンドでトリガーできます。カスタムイベントをクライアントで処理するのではなく Lambda で処理することで、クライアントプラットフォームの検証の必要をなくし、バッテリーの消耗を軽減し、更新を容易にできます。

100x100_benefit_ccontainers

AWS Lambda はコードを可用性の高い、耐障害性を備えたインフラストラクチャで実行するためにインフラストラクチャをすべて管理するため、お客様は差別化されたバックエンドサービスの構築に注力できます。Lambda を使用すれば、パッチがリリースされた際に基盤となる OS を更新したり、使用量の増加に合わせてサーバーのサイズ変更や追加を考えたりする必要はありません。AWS Lambda はコードをシームレスにデプロイし、すべての管理、メンテナンス、セキュリティパッチの適用を担当し、Amazon CloudWatch によって組み込みのロギングおよびモニタリング機能を提供します。

100x100_benefit_durable

Lambda は組み込みの耐障害性を備えています。AWS Lambda は各リージョンの複数のアベイラビリティーゾーン全体でコンピューティングキャパシティーを維持し、個別のマシンまたはデータセンター設備の故障からコードを保護します。AWS Lambda およびこのサービスで実行される関数は予測可能で信頼性の高い運用パフォーマンスを発揮します。AWS Lambda は、サービス自体とサービスによって運用される機能のために高可用性を発揮するよう設計されています。メンテナンス時間や定期的なダウンタイムはありません。

100x100_benefit_increase-upward1

AWS Lambda は必要なときだけコードを実行し、リクエスト受信の回数に合わせて自動的にスケールします。お客様は何も設定する必要がありません。コードが処理できるリクエスト数に上限はありません。AWS Lambda は基本的にイベントの発生からミリ秒単位でコードを実行します。また Lambda は自動的にスケールするため、イベントの頻度が上昇しても一貫して高いパフォーマンスを維持できます。コードがステートレスなので、Lambda は時間のかかるデプロイや設定によって遅れが出ることなく必要な数だけインスタンスを実行できます。

100x100_benefit_migration

Lambda@Edge で AWS Lambda を使用すると、世界中の AWS エッジロケーションで Amazon CloudFront のイベント (オリジンサーバーやビューワーとの間のコンテンツのリクエストなど) に応答するコードを実行できます。これにより、各エンドユーザーにパーソナライズされた豊富なコンテンツを、低いレイテンシーで簡単に配信できます。詳細 »

100x100_benefit_secure

AWS Lambda では、組み込みの AWS SDK および AWS Identity and Access Management (IAM) との統合によって、コードを安全に他の AWS リソースへにアクセスさせることができます。デフォルトでは、AWS Lambda はコードを VPC 内で実行します。また、オプションで、AWS Lambda を構成して、独自の VPC の背後にあるリソースにアクセスできるようにすることもできます。こうすることで、独自のセキュリティグループやネットワークアクセスコントロールリストを使用して、独自の Lambda 関数が VPC 内のリソースにアクセスできるようにすることができます。

100x100_benefit_code

AWS Lambda には、学ばなければならない新しい言語、ツール、フレームワークがありません。ネイティブライブラリも含め、サードパーティのライブラリを使用できます。AWS Lambda は Java、Node.js、C#、および Python のコードをサポートしており、その他の言語も今後サポートする予定です。

100x100_benefit_lowcost-affordable

AWS Lambda では、送信したリクエストとコードを実行するために要した処理時間の分のみ料金が発生します。料金は 100 ミリ秒の増分で計算されます。コスト効率がよく、1 日に数件のリクエストから 1 秒に数千件のリクエストまで簡単に自動でスケールできます。

100x100_benefit_flexible

お客様が関数に割り当てるメモリ量を選択すると、AWS Lambda はそれに比例した CPU パワー、ネットワーク帯域幅、ディスク I/O を割り当てます。