最近、AWSが提供するサーバレスサービス「AWS Lambda」が注目されています。 とはいっても、
・ AWS Lambda ってそもそも何?
・ AWS Lambda を使うメリットは?
と疑問に思う人も多いはず。
そこでこの記事では、AWS Lambdaの導入を検討される方に向けて、
・AWS Lambdaの概要や仕組み、メリット・デメリット
・関数の作成の流れ
などについて解説します。
専門領域:ソフトウェアエンジニア
しま (大嶋勇樹)
IT企業からフリーランスエンジニアを経て会社を設立。現在はエンジニアのスキルアップをテーマに、勉強会の開催や教材作成の活動を実施。オンラインコースUdemyではベストセラー講座多数。AWSやDocker/Kubernetes、サーバレス技術などを扱う「野生」のクラウドネイティブ人材。勉強会コミュニティStudyCo運営。
…続きを読むAWS Lambdaとは?
AWS Lambdaとは、クラウドサービスとして世界No.1のシェアを誇るAWS(Amazon Web Services)が提供する、サーバレスサービスのことです。AWS Lambdaはクラウド上で動作し、ユーザーがサーバーを構築・管理する必要はありません。インフラの管理はAWSが担当するので、ユーザーはプログラミングコードを準備し、アップロードするだけでプログラムを実行できます。
サーバーレスな開発が可能に
サーバーレスサービスとは、プログラムを稼働させる際にサーバーの構築や管理が不要な仕組みのことです。AWS Lambdaでは、AWS側が障害対応などのクラウド上のサーバーの保守・管理業務を担います。そのため、ユーザーはサーバー管理の手間が省け、アプリケーション開発に注力できます。
PythonやJavaなど複数言語をサポート
AWS Lambdaは、幅広いプログラミング言語をサポートしています。2023年8月時点では、以下の言語をサポートしています。
・Node.js
・Python
・Ruby
・Java
・Go
・C#
・PowerShell
また、カスタムランタイムという機能を使うことで上記以外のプログラミング言語も利用可能になります。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >AWS Lambdaを利用するメリット
AWS Lambdaは、AWSがクラウドサーバーの管理を担います。ここからは、AWS Lambdaを利用する3つのメリットについて解説します。
開発スピードが向上する
従来のようにサーバーがある場合、開発前にWebサーバーの設定やOS環境の構築などの多くの工程が必要になります。しかし、AWS Lambdaを利用することでWebサーバーの設定やOS環境の構築などのインフラに関する作業工程が必要なく、アプリケーション開発にすぐに取り組むことが可能です。そのため、開発スピードが向上するメリットがあります。
運用コストを削減できる
従来の独自サーバーを用意する方式の開発では、セキュリティや障害対策といったインフラの維持が欠かせません。一方でAWS Lambdaを利用した場合、これらの管理はAWSによって担われます。このため、サーバーの運用に関わる時間や費用を大幅に削減できます。また、AWSがサーバーの保守管理をするため、高いセキュリティ環境で運用できることもメリットになります。
一定の範囲内では無料で利用が可能
AWS Lambdaには無料利用枠があり、1ヶ月あたり月に100万件のリクエストと1GBメモリで40万秒までの利用が無料です。(2023年8月現在)AWS Lambdaの料金は、リクエストの量やコードが動く時間に合わせて料金がかかる仕組みです。起動をしていても処理がなければ、料金は発生しません。この特徴も運用コスト削減につながります。
AWS Lambdaのデメリット
AWS Lambdaを利用することで考えられるデメリットは、どのようなものがあるのでしょうか。ここでは、AWS Lambdaのデメリットについて解説します。
実行時間の上限が15分に設定されている
AWS Lambdaでの1つのプログラムの実行時間は、最大15分までとなっています。(2023年8月現在) この時間を超えると、プログラムはタイムアウトして強制的に終了します。もし長時間の処理を行いたい場合、プログラムを分けて同時に実行する方法を取る必要があります。
また、同時に行う処理の数にも上限が設定されており、同一のアカウントで同一のリージョン内では、最大1000回までの実行が可能です。(2023年8月現在) この数を超えると、スロットリングという制約が適用されます。そのため、ユーザーはこれらの制限を考慮する必要があります。
大量のアクセスがある場合はコストが高い
AWS Lambdaで採用されている従量課金制は、使用量に応じて料金がかかる方式です。アクセスが多かったり、実行時間が長かったりすると、コストが増加します。大量のアクセスが予想されるプログラムの場合は、定額制の「Compute Savings Plans」を検討するとコストを節約できるかもしれません。AWS Lambdaは、短時間でのプログラム実行や少ないアクセスの際に特に適しています。
非同期呼び出しの際に重複起動のおそれがある
AWS Lambdaは、プログラムの実行を非同期で行うと重複起動とされるリスクがあります。これは非同期呼び出しでは、AWS Lambdaが直接実行されず、エラーが起きた際に自動で再試行されるためです。そのため、重複起動を避けるための設計が必要となります。
AWS Lambdaの料金体系
AWSには、EC2やRDSといったクラウドサーバーサービスがあり、これらのサービスはサーバーが稼働している時間に応じて料金が発生します。これに対して、AWS Lambdaは異なる課金の仕組みを採用しています。AWS Lambdaは、コードが実行されるたびに料金がかかります。また、月に100万件までのリクエストと1GBメモリで40万秒までは無料で利用できるため、コストを効率的に抑えることが可能です。
以下は、リージョン(データセンター)を東京とした場合のAWS Lambdaの価格表です。(2023年8月時点)
アーキテクチャ | 期間 | リクエスト |
x86 価格 | ||
最初の60億GB秒/月 | GB-秒あたり 0.0000166667USD | リクエスト 100万件あたり 0.20USD |
次の 90億GB秒/月 | GB-秒あたり 0.000015USD | リクエスト 100 万件あたり 0.20USD |
150億GB秒/月 以上 | GB-秒あたり 0.0000133334USD | リクエスト 100 万件あたり 0.20USD |
Arm 料金 | ||
最初の75億GB秒/月 | GB-秒あたり 0.0000133334USD | リクエスト 100 万件あたり 0.20USD |
次の 112.5億GB秒/月 | GB-秒あたり 0.0000120001USD | リクエスト 100 万件あたり 0.20USD |
187億5千万GB秒/月 以上 | GB-秒あたり 0.0000106667USD | リクエスト 100 万件あたり 0.20USD |
AWS Lambdaで関数を作成してみよう!
AWS Lambdaの実際の操作画面は、どのようになっているのでしょうか?ここでは、AWS Lambdaを実際に使用して、プログラムの実行を通じてその機能を紹介します。
最初にLambdaを起動します。
起動後に画面上の「関数の作成」をクリック
次に「一から作成」を選択します。
基本的な情報の欄で、関数名(任意)を入力。次にランタイム(関数の記述に使用できるプログラミング言語またはフレームワークのバージョン)とアーキテクチャ(ここでは、Lambdaが関数の実行に使用するコンピュータープロセッサの種類)を選択します。
「コード」を選択するとコード画面が表示されます。
記入したいプログラミングコードは、 def lambda_handler(event, context):内に記入します。 コードを記入(ここでは、例として「testsample」と出力させるためにprint(‘testsample’)と入力)。
その後「Deploy」ボタンを押します。
「関数(関数名)が正常に更新されました」と表示されていれば、処理が成功しています。
作成した関数を動作させるには、「テスト」タブを押します。
「イベント名」に任意のイベント名を入力します。
次に画面右上の「テスト」ボタンを押します。
コードに問題が無ければ「成功」と表示されます。
詳細をクリックするとログなどを確認できます。
ログ出力画面には、例として記入したコードの「testsample」が出力されています。
まとめ
この記事では、AWS Lambdaの導入を検討される方に向けて、AWS Lambdaの概要や仕組み、メリット・デメリットなどについて解説しました。AWS Lambdaは、AWSが提供するサーバレスサービスとして注目されています。一定の範囲内では無料で利用できるため、AWS Lambdaに興味がある方は、本記事を参考にチャレンジしてみてはいかがでしょうか。
AWS Lambdaについてより詳しく知りたい人は、 下記の講座がおすすめです。
AWS Lambda / Serverless Framework 速習ハンズオン
実務で急に関わることにもなりやすい「AWS Lambda」や「サーバレス」の基本から、「Serverless Framework」を使った実践的な開発まで、手を動かしてスピーディに学びましょう!
\無料でプレビューをチェック!/
講座を見てみるレビューの一部をご紹介
評価:★★★★★
コメント: lambdaやサーバレスアーキテクチャなど曖昧だった領域について理解が深まった。
評価:★★★★★
コメント: WEBサーバとAPIサーバの一般的な構成をAWSに落としこんで解説いただけたので実務でためになる内容でした。
AWS Lambdaを活用して、ビジネスを加速させましょう!
最新情報・キャンペーン情報発信中