アバンタイトル
IT分野は範囲がとても広いです。そのため、過去問を解いていると1ページに何個も理解できない単語が出てきます。それを一気に理解しようとするのはとても骨が折れるし、やる気も続きません。
しかし、そんな時は1周まわって1つのことに徹底集中してみるのはどうでしょうか?覚えなきゃいけないことが沢山あると、終わりが見えずモチベーションが続きません。
でも、「今日はこの1つをマスターしよう!」と1つにフォーカスすればゴールが見えて、集中力も続くようになります。また、一点集中型なので理解力も深まり応用も効くようになります。
ということで、当サイトでは1点集中をコンセプトに解説を展開しています。勉強法が定まっていなかったり悩んでいる方は是非、続きをご覧になってみてはいかかでしょうか?
はじめに
今回もハッカーに近づく中二病心を刺激するワードを取り扱います。それがAWS Lambdaです。
今回学ぶこのフレーズに対しては、「難しそー」とか「役に立つの?」といった思考は一旦おいといて「ただかっこいいから知りたい!」というシンプルな思考でStudyしていってほしいです。
そのためにこの記事では、初心者にも超分かりやすく解説していきます。ただの試験対策、ただの退屈な勉強、という感覚ではなく、「人前でこのフレーズを連呼してる自分を想像したら胸がわくわくする」みたいな、そういう軽い気持ちを軸としてStudyしていきましょう(笑)!
【ここで扱う疑問】
など、Lambdaに纏わる様々な疑問を解消していきます!
Lambdaの大枠は? 1/7
AWS Lambdaは、プログラムコードをサーバーレスで実行できるサービスです。イベントが発生したときに自動的にコードが実行されるので、コスト効率がよく高可用性を提供します。これにより、開発者はインフラ管理から解放され、アプリケーションロジックに集中できます。
サーバレスってなに? 2/7
サーバレスを文字通りに解釈すると、「サーバがない」となりますよね?
え?サーバがないのに、プログラムコードって実行できるの?という疑問が浮かぶと思います。それを今から解消していきましょう!
実はサーバレスとはあくまでもユーザ目線の話なのです!
サーバレス、サーバレスと言っていますが、実際は裏でサーバは稼働しています。ただ、それをユーザ(AWS利用者)視点から見ると、サーバーの設定や管理が不要なので、あたかもサーバが無いように見える。だから、サーバレスと言われています。
サーバーレス(Serverless)は、ユーザーがサーバーの設定や管理をしなくても良い環境を提供することを意味しています。
サーバレスってことはPaaSってこと? 3/7
Lambdaは一見PaaSのように見えますが、それは違います。実際はFaaS(Function as a Service)と呼ばれるものなんです。
FaaSとは?
FaaSとはプログラムコードだけを準備すれば、あとは勝手に動いてくれるサービスです。
PaaSの場合は、プログラムコードに加えて、設定ファイル、必要なミドルウェアやデータベースの設定を準備する必要があります。しかし、それさえ準備すれば、あとは簡単にデプロイ・管理・運用ができます。
特徴 | PaaS | FaaS |
---|---|---|
管理対象 | アプリケーション全体 | 関数(小さなコードの単位) |
スケーリング | アプリケーション全体で自動スケーリング | 関数単位で自動スケーリング |
課金モデル | 常時稼働のインフラに基づく | 関数の実行時間とリソース使用量に基づく |
利用シナリオ | ウェブアプリケーション、複雑なサービス | イベント駆動型タスク、軽量な処理 |
インフラ管理 | 一部の管理が必要(アプリ設定など) | 完全にプロバイダが管理 |
Lambdaの料金は? 4/7
AWS Lambdaの料金は、いくつかの主要な要素に基づいて計算されます。以下に、Lambdaの料金制度の詳細を説明します。
1. 実行時間
- 料金基準: Lambda関数が実行されている時間に基づいて課金されます。具体的には、関数の実行時間が100ミリ秒単位で計測されます。
- 料金計算: 実行時間 × メモリサイズ(GB) × リージョンごとの料金
2. メモリサイズ
- 料金基準: Lambda関数に割り当てたメモリのサイズに応じて課金されます。メモリサイズは128 MBから10,240 MBまで、64 MB単位で設定できます。
- 料金計算: メモリサイズ(GB) × 実行時間(秒) × リージョンごとの料金
3. リクエスト数
- 料金基準: Lambda関数が呼び出された回数に基づいて課金されます。
- 料金計算: リクエスト数 × リージョンごとの料金
4. 無料枠
- 無料枠内容: AWS Lambdaには無料枠があります。具体的には、毎月1,000,000回のリクエストと、400,000 GB-秒の計算時間が無料で提供されます(2024年07月27日時点)。(https://aws.amazon.com/jp/lambda/pricing/)
- 適用対象: この無料枠はすべてのAWSアカウントに適用され、無料枠を超えると料金が発生します。
5. データ転送
- 料金基準: Lambda関数がデータをインターネットや他のAWSサービスに転送する際のデータ転送料金が発生することがあります。ただし、AWS内のサービス間のデータ転送は通常無料です。
6. Provisioned Concurrency
- 料金基準: プロビジョンドコンカレンシーを使用する場合、関数が指定した数のインスタンスを常に準備しておくための追加料金が発生します。
- 料金計算: プロビジョンドコンカレンシーの数 × メモリサイズ(GB) × リージョンごとの料金
7. Cold Start
- 料金基準: Lambda関数が初めて呼び出される際や、しばらく呼び出されなかった後に呼び出された際に発生する「Cold Start」は、実行時間に含まれます。追加の料金が発生するわけではありませんが、Cold Startの時間も実行時間として課金されます。
要するに…
- 実行時間: Lambda関数の実行時間に基づく料金。
- メモリサイズ: 割り当てたメモリサイズに応じた料金。
- リクエスト数: 関数の呼び出し回数に基づく料金。
- 無料枠: 毎月一定のリクエスト数と計算時間が無料。
- Provisioned Concurrency: プロビジョンドコンカレンシーの利用には追加料金が発生。
この料金体系を理解しておくと、Lambdaのコストを効率的に管理するのに役立ちます。
まとめ 5/7
要するに…
Lambdaっていうのはプログラムさえ用意すればそれをサーバレスで実行できるよっていうサービスです。で、サーバレスとはあくまでも、ユーザ目線であり、実際はAWS側がユーザの代わりにサーバを構成してくれています。しかし、我々ユーザからしたらプログラムさえ準備すれば、簡単に実行できるのでとても便利なサービスです。
おまけ:用語解説 6/7
PaaSってなに?
PaaS(Platform as a Service)は、クラウドコンピューティングのサービスモデルの一つで、アプリケーション開発、実行、管理を行うためのプラットフォームを提供するサービスです。PaaSは、インフラストラクチャの管理や維持から開発者を解放し、アプリケーションの開発とデプロイに集中できる環境を提供します。
PaaSはプリケーションのデプロイ、管理、スケーリングを簡単にしてくれるサービスってことです。
おわりに 7/7
本日はここまでです。今日はAWS Lambda をStudy&マスターしてきました!ただカッコいいからという理由だけの方が、意外と集中して向き合うことができたのではないでしょうか?
そうなんです!「勉強しなきゃ!知識つけなきゃ!」のように勉強を義務にしてしまうと長く続きません。だからこそ、私たちは楽しんで知識を身に着けていきましょう!そんなことをやってるうちに気づいたらスペシャリストになっているかもしれませんよ!
これからも、今日みたいに「the勉強するぞ!」という意気込みではなく、ヌルっと気づいたら知識が増えてた!みたいな軽い感覚でStudyを一緒にしていきましょう!
本日はここで、終わります。ありがとうございました。またお会いしましょう!では、さらばじゃ!
【この記事も一緒に読まれています】