対象読者
- Web系プログラマ
- AWSに興味のある方
必要な環境
- AWSアカウント
AWS Lambdaとは
「AWS Lambda」は、クラウド上でアプリケーションを実行する新たなプラットフォームです。AWS Lambdaを使えば何らかのイベントをトリガーに処理を実行することが可能です。Amazon Simple Storage Service(以下、Amazon S3)のバケットへのファイルのアップロード、Amazon Kinesisのストリームに届いたメッセージ、Amazon DynamoDBにおけるテーブルの更新といったイベントを受けて、事前に用意したコードを自動的に実行することができます。
従来であれば、こうしたイベントドリブンなアプリケーションの開発は非常に手間がかかりました。たとえば、変更を検知するためにポーリングし続ける仕組みや、変更を検知したらそれに応じた適切な処理を行う仕組みを独自に実装する必要がありました。もちろんアプリケーションの実装だけでなく、それらが稼働するためのインフラを構築し、管理する必要もあります。
これらはAWSのようなクラウドサービスを利用する場合でも同様です。AWSを利用する場合でもAmazon Elastic Compute Cloud(以下、Amazon EC2) インスタンスを設定したり、起動、監視したりする必要があります。また、OSやプログラミング言語の環境をインストール・設定し、それらに加えてスケールや耐障害性を考慮して十分なキャパシティを保つ必要もありました。
AWS Lambdaはそういった煩雑な作業から開放してくれる新しいコンピューティングプラットフォームと言えます。ユーザはアプリケーションを開発し、Lambdaファンクションとしてアップロードするだけで、目的を達成することができます。
特徴
インフラの管理が不要
AWS Lambdaはインフラの管理が不要なプラットフォームです。Amazon EC2インスタンスを設定・起動したり監視したりする必要はありません。また、OSや言語環境のセットアップはもちろん、予測困難なリクエストに備えたスケールや耐障害性の考慮も不要です。ユーザは開発したコードをLambdaファンクションとしてアップロードするだけで、キャパシティ、スケールなどは全てAWS Lambdaがハンドリングしてくれます。そのためエンジニアは、これまで以上にビジネスロジックの実装へと集中できます。
オートスケール
AWS Lambdaはイベントの発生レートに応じて自動でスケールをコントロールします。そのため、ユーザはサーバリソースのプロビジョニングやアプリケーションのデプロイについて考える必要がありません。ユーザ側では全く何も意識することなく、1時間あたり数万のリクエストを扱うことができるようになっています。
きめ細やかな料金体系
AWS Lambdaは、100ミリ秒単位の処理時間とリクエストに対して課金される、非常に細やかな料金体系となっています。そのためAWSの従量課金という特徴がより強く反映されたサービスであるとも言えます。