AWSでサーバを構築し、システムとして機能させるためには、サーバ上で動作するプログラムが必要不可欠です。プログラムを動作させるために、サーバを構築しソフトウェアのインストールや環境の設定を行うのは、手間と時間がかかり負担となります。
このような負担を軽減する便利なサービスが「AWS Lambda(ラムダ)」です。本記事では、サーバレスでプログラムを実行できるAWS Lambdaについて詳しく解説していきます。
目次
AWS Lambdaとは
AWS Lambdaは、サーバレスでプログラムを実行できるコンピューティングサービスです。プログラムを実行するために、通常は、サーバ・OS・アプリケーションサーバソフトウェアなどを揃え、更にプログラムを実行させるための適切な環境設定が必要となります。AWS Lambdaでは、サーバを構築することなくプログラムを実行できる準備が整っており、AWS Lambdaを利用すれば様々なアプリケーションやサービスを実行することができます。
AWS Lambdaの利点
AWS Lambdaの利点として、大きく分けて以下の3点が挙げられます。
1. サーバレスでプログラムを実行可能
これは概要でも説明しましたが、AWS Lambdaはプログラムを実行させるためのサーバ構築などの面倒な準備が必要ありません。これにより、コスト削減や時間の節約が期待できます。ユーザが用意するものは、実行したいプログラムだけです。
2. 多数の開発言語に対応
AWS Lambdaは、Node.js、Java、C#、Pythonなどの世界中で利用されている開発言語に対応しています。これまで使い慣れた開発言語でそのままプログラムを作成できます。
3. 料金はプログラムを実行しない限り発生しない
AWS Lambdaはプログラムを実行しない限り料金が発生しません。例えば、Amazon EC2で仮想サーバを立て、その中に開発環境を構築しプログラムを作成する場合、仮想サーバが存在している限りプログラムを実行していない間も料金は発生します。
一方で、AWS Lambdaはプログラムを実行していない間は料金が発生しないので、プログラム開発にかかるコストを削減することができます。
AWS Lambdaの料金
AWS Lambdaの料金は、リクエストの件数とメモリに応じたプログラムの実行時間(これをコンピューティング時間と呼びます)によって決まります。リクエストに対する料金は100万件あたり0.20 USドル、コンピューティング時間に対する料金はメモリ1GBで1秒間実行した場合、つまりGB-秒の料金は0.0000166667 USドルとなります。メモリは最小128MBから、最大10,240MBまで、1MB単位で割り当てることができます。また、月間100万件のリクエストと400,000 GB-秒のコンピューティング時間が無料枠として存在します。
この説明だけですと少しわかりにくいので、例を考えてみましょう
料金例
例えば、プログラムに128MBのメモリを割り当て、1ヶ月で3000万回実行し、毎回の実行時間が200ミリ秒(0.2秒)だった場合を考えてみます。
- コンピューティング料金の考え方
- プログラムの合計実行時間:30,000,000 × 0.2 = 6,000,000秒
合計コンピューティング時間:6,000,000 × (128 MB ÷ 1024 MB) = 750,000 GB-秒
1ヶ月の請求コンピューティング時間:合計コンピューティング時間 - 無料枠のコンピューティング時間 = 750,000 - 400,000 = 350,000 GB-秒
1ヶ月のコンピューティング料金:350,000 × 0.0000166667 USドル = 5.83 USドル - リクエスト料金の考え方
- 1ヶ月の請求リクエスト:合計リクエスト - 無料利用枠のリクエスト = 30,000,000 - 1,000,000 = 29,000,000 件
1ヶ月のリクエスト料金:29,000,000 ÷ 1,000,000 × 0.20 = 5.80 USドル - 合計料金
- 合計料金 = コンピューティング料金 + リクエスト料金 = 5.83 USドル + 5.80 USドル = 11.63 USドル
このように、AWS Lambdaの利用料金は、プログラムに割り当てたメモリと実行した時間で決まるコンピューティング時間の料金と、リクエスト料金を合算したものになります。
下記表は、1回のプログラム実行時間が200ミリ秒だったと想定した時、プログラムに割り当てたメモリと月間のリクエスト数に対応した料金の早見表です。AWS Lambdaを利用する際の一つの料金の目安にしてみてはいかがでしょうか。
AWS Lambdaの料金早見表(単位はUSドル)
メモリ(MB) | 月間のリクエスト数(万回) | ||||
---|---|---|---|---|---|
500 | 1000 | 3000 | 5000 | 10000 | |
128 | 0.80 | 1.80 | 11.63 | 23.97 | 54.80 |
512 | 2.47 | 11.80 | 49.13 | 86.47 | 179.80 |
1,024 | 10.80 | 28.47 | 99.13 | 169.80 | 346.47 |
1,536 | 19.13 | 45.13 | 149.13 | 253.13 | 513.13 |
2,048 | 27.47 | 61.80 | 199.13 | 336.47 | 679.80 |
3,072 | 44.13 | 95.13 | 299.13 | 503.13 | 1013.14 |
4,096 | 60.80 | 128.47 | 399.13 | 669.80 | 1346.47 |
5,120 | 77.47 | 161.80 | 499.13 | 836.47 | 1679.80 |
6,144 | 94.13 | 195.13 | 599.13 | 1003.14 | 2013.14 |
7,168 | 110.80 | 228.47 | 699.13 | 1169.80 | 2346.47 |
8,192 | 127.47 | 261.80 | 799.13 | 1336.47 | 2679.81 |
9,216 | 144.13 | 295.13 | 899.14 | 1503.14 | 3013.14 |
10,240 | 160.80 | 328.47 | 999.14 | 1669.80 | 3346.47 |
- ※ ここで掲載している料金は、2021年4月現在のものです。最新のAWS Lambdaの料金につきましてはAWS公式サイト をご覧ください。
AWS Lambdaの利用例
AWS Lambdaの特徴として、何かのイベント発生などをトリガーとして、自動的にプログラムを実行することができる点が挙げられます。例えば、下記のようなことが実現可能です。
- Amazon S3にファイルがアップロードされたら、そのファイルに対して処理を行う
- ストリーミングデータを処理する
- データベースのデータ変更の要求に対する処理を行う
- IoTセンサーから受け取ったデータの処理を行う
上記であげたものはAWS Lambdaでできることのほんの一例に過ぎません。設計やアイディア次第で、より多くのことを、プログラムを入力するだけで実現することができます。
AWS Lambdaの利用は当社におまかせください
ここまでで、AWS Lambdaが実に便利なサービスかがお分かりいただけたかと思います。当社では、AWS Lambdaサービスデリバリープログラム認定を取得しています。AWS Lambdaに関して、サーバーを構築することなくプログラムコードを実行できるサーバーレスアーキテクチャを用いたシステム開発、および移行に自信があります。 AWSサービスは多岐にわたるため、知識やスキルが問われます。利用に自信がない方は、専門業者のサポートを受けるのも一つの有効な手段です。ご利用を検討中の方は、ぜひご相談ください。
お知らせ | AWS Lambdaサービスデリバリープログラム認定
関連サービス
おすすめ記事
-
2020.06.23
Amazon Connectで在宅勤務でも対応できる問合せ窓口を立ち上げてみた
-
2020.08.17
Datadogで実現するモニタリングとオペレーションのオートメーション化
-
2020.04.27
Amazon FSx for Windows ファイルサーバーへの移行と活用方法
-
2020.06.11
Amazon WorkSpacesとは?その特長をまとめてみた
-
2020.06.23
AWSのDevOpsサービスと当社マネージドサービスを活用したDevOpsの実装①~概念編~