• AWS Lambdaとは
  • Lambdaが解決できる課題
  • サーバーレスアーキテクチャ
  • Lambdaのメリット
  • Lambdaの料金体系

 

AWS Lambdaとは

AWS Lambda はサーバーを用意しなくてもコードを実行できるコンピューティングサービスです。使用したコンピューティング時間に対してのみの料金課金 (コードが実行中でなければ料金はかからない)。AWS Lambda によって、さまざまなタイプのアプリケーションやバックエンドサービスが、管理なしでコードを実行できるようになります。AWS Lambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースの管理をすべて担当します。必要な操作は、AWS Lambda がサポートするいずれかの言語 (現在は Node.js、Java、C# および Python) でコードを指定するだけです。

AWS Lambda を使用して、Amazon S3 や Amazon DynamoDB などの AWS サービス用のデータ処理トリガーを簡単に構築し、Amazon Kinesis に保存されたストリーミングデータを処理し、AWS のスケール、パフォーマンス、およびセキュリティで運用される独自のバックエンドを作成できます。

 

 

Lambdaが解決できる課題

Lambdaはサーバーレスのイベント駆動型のコンピーティングサービスです。Lambdaが解決できる課題は、例えば以下のようなものです。
– S3のバケットに画像が保存されたら、その画像のサムネイルイメージが自動的に生成されるようにしたい
– DynamoDBにURLが格納される場合に、そのURLが正しい形式のものであるかのチェック処理が自動的に実行されるようにしたい

通常のサーバーアプリケーションシステムで上記のような課題を解決しようとすると、下記のようなシステムを構成する必要がでてきます。Lambdaはこのような複雑なシステムを構成することなく、簡単に課題を解決することを可能とします。
・画像のアップロードを検出するためのサーバと仕組みを用意
・サーバのOSの設定や言語環境の構築
・リクエストの幅広い想定ボリューム全体をカバーするスケールや耐障害性を実現
・システムのキャパシティや状態を24時間365日モニタリング

 

 

サーバーレスアーキテクチャ

サーバーレスアーキテクチャ上のファンクションは、何らかのイベントをトリガーとして呼び出される。イベントごとに実行プロセスが起動し、ファンクションの終了とともにプロセスが終了する。アプリケーションサーバーが「常駐型プロセス」を実行するインフラストラクチャだとすれば、サーバーレスアーキテクチャは「非常駐型プロセス」をイベントによってトリガーするインフラストラクチャだといえるでしょう。

AWS Lambdaのようなクラウドインフラストラクチャ上でサーバーレスアプリケーションを構築すれば、インフラストラクチャのスケーラビリティや可用性(アベイラビリティ)はクラウド事業者の仕事になり、開発者はインフラストラクチャに関する仕事の多くから解放されます。

また、すでにAWS上で各種データベースをはじめとする様々なクラウド部品が提供されている中では、LそれらをつなぐシンプルなハブとしてのLambdaサービスを用意されることによって、AWSユーザは用意にサーバーレスアーキテクチャを構成することが可能となりました。

 

Lambdaのメリット

インフラの管理が不要
コードをアップロードするだけで、キャパシティ・スケール・耐障害性・ロギングなどインフラ管理のすべてをLambdaがハンドリングするので、利用者はビジネスロジックにフォーカスすることができる

オートスケール
イベントの発生レートに合わせて自動でスケールUP/DOWN。またプロビジョニング中や完了をきにする必要もない

Bring your own code
コード内ではスレッド/プロセスの生成やバッチスクリプトの実行が可能であり、ライブラリもコードと一緒にアップロードすることも可能

細やかな従量課金体系
100msec単位でのコード実行時間に対する料金設定

 

 

Lambdaの料金体系

Lambdaの料金は、Lambdaファンクション(関数)へのリクエスト数に対する料金とコードの実行時間に対する料金の合計となっています。リクエスト数に対しては1ヶ月に1,000,000件の無料リクエスト枠があり、コードの実行時間に対しては400,000 GB-病の無料利用枠が設定されています。

リクエスト数に対する料金
Lambda はイベント通知と、コンソールからのテスト呼び出しを含む起動の呼び出しに対応して実行を開始した回数をカウント
・リクエストのうち毎月最初の 1,000,000 件は無料
・その後は 0.20 USD/1,000,000 件のリクエスト(0.0000002 USD/リクエスト)

コードの実行時間に対する料金
時間はコードの実行が開始された瞬間からコードが返されるか中止されるまでで計算され、100 ミリ秒単位で切り上げられます。料金は関数に割り当てたメモリ量により異なります。1 GB-秒の使用につき 0.00001667 USD の料金が発生します。

 

本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。

 

参考文献