2020/10/14

AWS Lambdaとは?使うメリット5つと料金の仕組みについて解説

 
  

「AWS」とは?

AWSは、Amazon Web Servicesの略称で、アメリカの大手インターネット通販のAmazonが提供している、世界で広く活用されているクラウドプラットフォームの総称です。世界中のデータセンターから、175以上の機能を有するサービスを提供しています。現在、急成長しているスタートアップから、大企業、主要な政府機関など、多くの顧客がAWSを採用しています。

「AWS Lambda」とは?

AWS Lambdaは、プログラムを実行するためのサーバのプロビジョニングや管理をすることなく、コードを実行できる環境を提供するサービスです。AWS Lambdaを使用することで、開発者はコードさえアップロードすれば、コードの実行やスケーリングのために必要なことは、Lambdaによって行われます。これにより、開発者はプログラムのコーディングに集中することができます。

AWS Lambdaを使うメリット5つ

AWS Lambdaは他のクラウドコンピューティングサービスと比較し、多くのメリットがあります。ここでは、AWS Lambdaを利用することのメリットを5つ紹介します。

メリット1:サーバ管理が不要

AWS Lambdaは、コードを実行するための環境をサービス側で準備しています。Amazon EC2のように、サーバをキッティングしたり、管理したりする必要はありません。また、実行環境にセキュリティパッチが出た場合においても、実行環境は自動的にアップデートされ、利用者は意識することなく利用を継続することができます。開発者に必要なのは、コードを準備してLambdaにアップロードすることだけです。

メリット2:コスト削減

AWS Lambdaは、コードが実行される時間とトリガーされた実行回数に対して課金されます。実行時間は100ms毎に細かく計算されており、コードを実行した分だけ課金されるため、コスト削減に効果があります。

メリット3:様々なプログラミング言語に対応

AWS Lambdaは、標準ではJava、Go、PowerShell、Node.js、C#、Python、Rubyの7つのプログラミング言語に対応しています。さらに、Runtime APIと呼ばれる機能を提供しており、標準では対応していないプログラミング言語でも、ランタイムをアップロードすることで利用可能になります。ただし、独自にアップロードしたランタイムを利用する場合については、セキュリティパッチ等の自動アップデートの対象にはならないため、手動でバージョンアップ対応をするなど、利用する際は注意する必要があります。

メリット4:高いセキュリティ力

AWS Lambdaは、利用者によるコンピューティングリソースの管理が不要になっています。コードの実行環境に対する運用、セキュリティパッチの適用、その他定期的なメンテナンスをサービス側で実行してくれます。このため、利用者はアップロードするコードに関連するセキュリティに注力することができます。また、AWS Lambdaから他のAWSリソースへのアクセスおよび他のAWSリソースからLambdaへのアクセスはIAMロールを用いて厳密に管理することが可能となっています。

メリット5:オートスケーリング

AWS Lambdaには、オートスケーリング機能があり、アクセス数や負荷に応じて自動的にコードを実行するための環境をスケーリングします。Lambda関数は実行トリガー毎にコードを実行しており、並行して実行されているプロセスに関連はありません。このため、実行環境がスケールした分だけコードは並列実行可能となります。さらに、トリガー毎に処理は個別に行われる仕組みとなっているため、利用者が意識することなくスケーリングされた環境を利用できます。

AWS Lambdaの注意点4つ

AWS Lambdaは、利用者にとって多くのメリットが存在しますが、利用するためには注意しておくべき点も存在します。ここでは、Lambdaを使用するにあたって利用者が認識しておくべき、注意点を4つ紹介します。

注意点1:メモリに上限がある

AWS Lambdaでは、128MBから3008MBという、メモリ量の制限があります。そのため、大容量のメモリを消費するようなコードを利用しようとした場合は、利用できない可能性があるため注意が必要です。ただし、メモリ量の上限については、過去に引き上げられた実績もあるため、今後制限が緩和される可能性があります。

注意点2:処理時間の制限がある

AWS Lambdaでは、1回の処理に利用できる処理時間を設定する必要があります。設定できる処理時間は、3秒~900秒までという制限があります。コード内の処理量が多く、実行時間が900秒以上かかる可能性がある場合には、AWS Lambda以外のサービスを検討する方が良いでしょう。

注意点3:単体での使用はできない

AWS Lambdaは、Lambda単体での利用は出来ません。Lambdaの実行には、処理を起動するキッカケとなる、トリガーを設定する必要があります。Lambdaの実行トリガーは、API Gatewayや手動実行など、トリガーの発生と同期して処理を開始するタイプのトリガーと、Amazon S3やCloudWatch LogsおよびCloudWatch Eventsなどでイベントが発生したことを検知して、トリガーの発生とは非同期に関数を実行するタイプのトリガーがあります。

注意点4:固定費としての計上が困難

AWS Lambdaは実行回数や実行時間に応じて料金が変化します。このため、事前にどの程度の費用が発生するかを正確に予想することができず、予算として計上することはできません。

AWS Lambdaの料金の仕組み3つ

AWS Lambdaの料金は、実行回数による計上と実行時間による計上の組み合わせで決定され、使用した分のみ発生する仕組みとなっています。ここでは、AWS Lambdaの料金体系について詳細を紹介し、無償で利用可能な無料利用枠についても紹介します。

仕組み1:無料利用枠

AWS Lambdaの利用には、テスト呼び出しを含むすべての実行に対し、リクエスト数と実行時間に応じた料金が加算されます。ただし、1ヶ月ごとに100万件のリクエスト、および40万GB-秒の無料利用枠があります。無料利用枠のリクエスト回数、実行時間をすべて使い切ると、実行に応じた料金の加算が開始されます。

仕組み2:実行時間

実行時間に対する料金は、関数に割り当てたメモリ量と、関数を実行した時間によって変わります。単位はGB-秒と表します。これは、1秒あたりに1GBを割り当てた場合の料金を表しています。よって、1か月の料金は、「1GB-秒あたりの単価」×「容量」×「実行時間」で算出されます。なお、1GBは1024MBと置き換えられるため、例えば128MBを割り当てた関数を100ミリ秒実行した場合、容量は「0.125GB(128MB÷1024MB)」、実行時間は「0.1秒(100ミリ秒)」となります。なお、無料利用枠として40万GB-秒が無料で利用できるため、1ヶ月に100万GB-秒の利用があった場合、40万GB-秒を超えた60万GB-秒に対して料金が発生します。

仕組み3:リクエスト

リクエストに対する料金は、リクエスト100万件毎に料金が加算されます。無料利用枠として、100万件のリクエストが無料で利用できるため、例えば300万件のリクエストがあった場合は、200万件(300万件-100万件)分の料金がかかります。

AWS Lambdaについて理解を深めよう

AWS Lambdaは利用者がコードの実行環境を意識せず利用できる、サーバレスコンピューティングの代表的なサービスです。今までの仮想サーバを利用したコードの実行環境とは使い方が大きく異なりますが、特徴を理解して活用すれば、多くのメリットが得られます。AWS Lambdaについて理解を深め、目的に合ったシステムを利用できるようにしましょう。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】