2021.05.26 サーバを立てずにプログラムを実行できる「AWS Lambda」とは?

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をどう連携させれば適切に稼働するのか、と言った知識やスキルが問われます。
このような場合、専門業者のサポートを受けるのも一つの有効な手段です。TOKAIコミュニケーションズでは、AWS導入サポートをサービスとして提供しております。システムの新規構築でも、現在オンプレミスで稼働しているシステムの移行でも、AWSの利用をご検討中の方は、まずはお気軽にご相談ください。

関連サービス

おすすめ記事

導入のお問い合わせはこちら

AWSやAmazon WorkSpacesの導入から接続回線、運用・保守まで何でもお任せください。

お問い合わせ・資料請求