ITシステムに関係している方であれば、Amazon Web Services(AWS)という名前を聞いたことがある方は多いのではないでしょうか?
この記事では、AWSが提供するFaaS「AWS Lambda」についてご紹介します。
自社にAWSを導入しようとお考えの担当者様や、サーバレスコンピューティングサービス・FaaSをお探しの方はぜひご一読ください。
AWS Lambdaとは
AWS Lambdaは、Amazonが提供しているFaaSで、FaaSの中でも特にメジャーなサービスです。
AWS Lambdaは、任意のプログラムを定義しクラウド上からプログラムを実行できるようになっており、プログラムの実行は、Lambda上から設定する「実行トリガー」によって開始されます。
実行トリガーにはさまざまな関数が登録できるようになっており、この関数の豊富さがAWS Lambdaの特徴のひとつです。
FaaSとは
AWS Lambdaは、FaaSに該当するサービスです。
FaaSとは「Function as a Service」の略で、サーバーレスコンピューティングの一種でプログラム実行に必要な環境や前後の処理をクラウド上から提供するサービスです。
アプリケーションやシステム開発に必要なフレームワークが備わっており、インターネットを通じサーバを利用してプログラムを実行できます。
サーバレスとは
サーバレスコンピューティングとは、サーバを管理することなく、特定の処理を実行できる環境です。
つまり「サーバレス」とは、「サーバ自体が不要」という意味ではなく「サーバの管理が不要」という意味になります。
サーバレスコンピューティングでは、物理的なサーバだけでなくミドルウェアの管理も不要です。ユーザはプログラムの開発と実行のみをすれば良く、極めて小さいコストで開発を進めることができます。
AWS Lambdaでできること
AWS Lambdaは、サーバーやミドルウェアなどを管理することなく、純粋にプログラムのみを実行することができます。
プログラムの定義さえ完了していれば、どのようなタイプの処理も実行可能です。必要なリソースの割り当てなども必要なく、コードをZIPファイルやコンテナイメージでAWS Lambda上にアップロードするだけでプログラムを実行する準備が整います。
AWS Lambdaの料金体系
AWS Lambdaの料金形態は、使用した分だけ料金が発生する従量課金制です。
関数に対するリクエスト数と、コードの実行時間に応じて料金が発生し、プログラムを作成しても、プログラムが実行されない限り料金は発生しません。
利用料はリクエスト100万件あたり0.2USドル(2023年6月時点)と、気軽に導入しやすい低価格です。
また、サーバーの運用コストもかからないため、プログラム管理にかかるコストを大幅に削減できます。
1カ月につき100万リクエストまでの無料枠も設けられており、小規模な利用であればほとんど費用がかかりません。
AWS Lambdaのメリット
サーバ管理が不要
サーバの準備やOSやミドルウェアのアップデート、セキュリティパッチの適用、不具合の対応などはAWS側で行われるため、AWS Lambdaを利用するユーザが管理する必要はありません。
そのため、ユーザは開発やサービスの提供・運用といったコア業務に専念できます。
また、サーバ管理に伴う費用を削減することもできます。
セキュリティに優れている
AWSにはセキュリティ専門家チームを擁しており、システムを24時間体制でモニタリングしています。
AWS Lambdaでは、実行基盤をAWS側ですべて管理しているため、自社で管理する場合に比べてセキュアな実行環境を簡単に実現できます。
任意の処理を自動化できる
AWS Lambda上に定義されたプログラムは、関数などからのリクエストを受けて実行されます。
処理が終了した後のレスポンスもLambdaから送信されるため、一連の処理を自動化することができます。
さらに実行回数に対しても自動スケールが働くため、実行回数の調節も必要ありません。
イベント発生ごとの従量課金制
AWS Lambdaは、常時動作しているわけではなく、トリガーとなるイベントが発生した場合のみ動作し実行環境を利用します。
そのためクラウドサービスの使用量削減と、それにともなうコスト削減が可能です。
また定額課金ではなく従量課金になるため、これまで固定費であったクラウドサービスの利用料を変動費に置き換えることができます。
AWS Lambdaのデメリット・注意点
メリットの一方で、AWS Lambdaにはデメリットも存在します。
どのようなデメリットがあるかを理解したうえで、効果的な利用へとつなげましょう。
実行時間に制限がある
AWS Lambdaには、実行時間は15分までという制限があります。
15分を超えるとタイムアウトとなり実行が強制終了となるため、それ以上の時間を要する処理は実行できません。
時間のかかるプログラムを実行する場合は、処理を分割して対応する必要があります。
処理実行数に制限がある
AWS Lambdaでは、同一リージョン内における同一アカウントの処理実行数に制限があります。
アジアパシフィック (東京)では、1,000回が上限です。
処理実行数は、「平均実行時間(秒)×1秒あたりの呼び出し数」で算出されます。
(例)関数の実行に5秒かかる場合、1秒あたりに呼び出せる数は200個まで
コストがかさむ可能性がある
AWS Lamdaの料金体系は従量課金制のため、多くのイベントを発生させたり、実行時間が長くなったりする場合は、その分だけ費用が多くかかります。
大量アクセスがあるシステムにAWS Lambdaを使用すると逆に高額な費用が請求されてしまう可能性があるため注意が必要です。
AWS Lambdaは、イベント数が少ないときや特定の時間帯のみ実行する場合、時間が短いプログラムを実行したい場合などにおすすめです。
まとめ
AWSでは、Lambda以外にも多種多様な機能・サービスを提要しておりクラウド上で様々なシステムを構築することが可能です。
無料利用可能なサービスもありますので、ご興味を持たれた方はぜひ一度お試しされてみてはいかがでしょうか。
本記事が、AWSを検討されている方の参考になれば幸いです。
株式会社KUIXではAWSを用いたシステムの開発やコンサルティングを行っています。本格的なAWS環境の構築・導入をご検討される際は、ぜひ一度ご連絡ください!お問い合わせはこちらから

