【Lambda講座1】概要 / 料金 / 主な連携サービスの一覧【5:39】

*現在Lambdaに割り当て可能なメモリは10GBとなります。動画は追って修正をしますが、取り急ぎよろしくお願いいたします。



0:00
今回の講座ではLambdaの概要・料金・主な連携サービスの一覧について説明していきます。
0:07
今回からAWSLambdaの解説に移ります。初心者でも分かりやすく解説するのでご安心ください。Lambdaは一言で表すと、「サーバーレスコンピューティングサービス」です。サーバー無しでコードを実行できるサービスですね。通常、プログラムの実行をする場合サーバーのセットアップなどが必要ですけれども、Lambdaではそれが必要なし、サーバーレスのコンピューティングサービスとなっております。
0:28
サポートしているプログラミング言語はメジャーなものでJava・Go・PowerShellなどご覧のようなものがありまして、別途カスタムランタイムというものもあります。Lambdaはコードを実行するインフラに依存しない・左右されずにコードを実行できることがメリットの1つです。
0:43
特徴としてはイベントに応じてコードを実行するというものがあります。例えば「S3バケットにオブジェクトが配置されたら、Lambdaを実行する」「DynamoDBのテーブルに変更が検知されたらコードを実行する」といったような形です。
0:57
もう1つの特徴としては、自動スケーリングがあります。こちらはシームレスと言いますか、Lambdaで処理が追いつかなくなってきたら自動的にもう1つLambdaが立ち上がるといったイメージですね。自動で並列に処理を開始する、スケーリングを自動で行うのもLambdaの特徴の1つです。
1:13
最後のエッジで実行可能というもの、こちらはLambdaエッジと呼ばれるものがありまして、CloudFrontこちらで発生したイベントに対応してLambdaのコードを実行するというもの。要はエンドユーザーに一番近いエッジロケーションでLambdaを実行する。お客さんからすればレスポンスがその分早くなりますので、このLambda@Edgeこちらも覚えておきましょう。


1:35
特徴やメリットをEC2インスタンスと比較してみました。EC2インスタンスの方はサーバーの管理が必要になります。セキュリティ対策、yumアップデート、だったりこちらの定期実行だったり、ウイルスソフトの管理・費用なんかも必要になってきます。また、EC2インスタンスは立ち上げっぱなしですと、お金がかかってしまいます。稼働時間に応じて料金の支払いが必要です。
1:57
一方Lambdaに関してはサーバーの管理が不要となりますので、EC2と比べてコスト面で有利になります。例えば、実行していないアイドリング状態の場合支払いは不要になります。
つまり、インフラの管理という手間を取っ払ってアプリケーション開発に注力できる、こちらがメリットになります。


2:16 
責任分担モデルの話でも、出てきましたけれどもこちらの図を用いて説明していきましょう。
こちら左から「On Premise」「IaaS」「PaaS」「FaaS」「SaaS」とあります。LambdaはFaaS(Function as a Servise)要はお客さんはFunction(プログラミングコード)については責任を持ちますが、それ以外はAWSが責任を持つというもの、こちらの責任分担モデルとなります。EC2インスタンスや、PaaSのRDSと比較をしますと、コードだけお客さんが責任を持つというFunctionをサービスして提供するというモデルになります。


2:52
Lambdaの料金についてどのようにお金がかかってくるのか説明します。大きく2つLambdaを呼び出すリクエストの数・そしてLambdaが実行する実行時間によって決定されます。Lambdaには無料枠がついており、例えばリクエスト数はLambdaが100万件呼び出し回数まで無料となっておりますし、実行時間40万GB秒まで無料となります。このGB秒、少し分かりにくいんですけれども、例えばLambdaにはメモリを割り当てることが出来ます。処理性能をどれくらい割り当てるかといったところ、こちらに1GBのLambdaのメモリを割り当てた場合、40万秒まで無料となります。
3:35
無料枠が終了して、いざ課金となった場合の説明についてなんですけれども、リクエスト数が100万件あたり、0.20USドル(約20円)です、そして実行時間GB秒あたり0.000016…とありますが、要はLambdaにメモリを1GB割り当てた場合、1秒当たりわずかなお金しかかかりません。Lambdaに割り当てることの出来るメモリの容量は128MBから1MB単位で1GBまで任意の量を割り当てることが出来ますけれども、そちらを見ても1GB大変大きいメモリの容量です。それを見ても、通常使う128とか、254とか、そちらの容量ですと個人開発やテストで使う分には本当に料金は誤差の範囲でしかかからないと思いますので、どうぞご安心ください。


4:27
こちらがLambdaと連携できる主なサービスの一覧です。そもそもAWSというサービスにはそれぞれのサービスとの連携が簡単に出来るという特徴がありますけれども、いくつかピックアップします。
APIGateway:APIGatewayにリクエストするとLambdaが実行される、こちらの組み合わせは大変一般的なスタイルとなります。
S3:S3バケットにオブジェクトが配置されたらLambdaが発動する、こちらのパターンもよくあります。
EventBridge:CloudWatchのイベントだったが、定期的にLambdaを実行したい、例えば毎朝このLambdaの関数を実行したい、といった場合に使える連携のパターンです。
CloudWatchLogs:Lambdaの実行結果は正常に終了したのか、エラーが出たのか、CloudWatchのログの方で確認が出来ますので、Lambda関数を作成すると自動的にCloudWatchと連携がされます。こちらの方でLambdaの動きが分かります。


次回以降、もう少し詳細にLambdaの中身をひも解いていきましょう。