[AWS] Lambda
Cloud AWS
Published: 2020-07-14

1.Lambdaとは

Lambdaは、AWSのサーバーレスコンピューティングサービスです。サーバーレスという言葉は最近よく聞くようになりました。これは、サーバーなしにアプリケーションを動かせるサービスを意味しますが、とはいえ実際にサーバーがなくても動くようなサービスではありません。ユーザー(AWSで開発する人をさします)がサーバーを用意せずとも、プログラムをただ書くだけでアプリケーションが構築できる環境ということです。Lambda自体はサーバーで動いていますが、ユーザーはサーバーを用意する必要はないということです。

2.Lambdaのメリット

サーバーがないとどんなメリットがあるのでしょうか。

まずサーバーがないと自前でインフラ環境の構築工数が削れるということです。インフラ環境はOSを入れたり、セキュリティを考えたりなど事前準備が必要だったりしますが、Lambdaはそんな事前準備は不要です。動かしたいコードを書くだけです。事前の作業を省けるのでかなり立ち上がりが早いです。

次にトリガー設定が簡単にできるので、「メールを受信したら」、「S3に画像がアップロードされたなら」などのトリガーが引かれたらLambdaの処理を走らせるというフローが容易にできます。

とはいえ、それだけならばAWSの仮想サーバーであるEC2と比べてあまりメリットがないような気がします。EC2はOSやVPCの設定などは必要ですが、EC2自体もインフラ環境構築の時間はあまりかからないので、Lambdaを使う決定的な理由にはならないでしょう。じゃあLambdaを使う理由は何かというと、圧倒的なコストパフォーマンスとセキュリティの高さです。特にコストパフォーマンスはEC2よりも優れています。EC2は利用しているだけ最低でも月額2000円ほどは発生します。インスタンスを停止していたとしても利用しているだけでコストが発生しますが、Lambdaは処理数に応じてコストが発生します。そのため、Lambdaを利用していても処理が少なければ、月額数十円ほどです。しかも、仮に処理が発生したとしても1万処理でだいたい月額1000円ほどなので、コストパフォーマンスの良さがご理解できるでしょう。セキュリティ性が高いという点もLambdaの特徴です。EC2などはセキュリティを考慮して設計する必要がありますが、Lambdaはそもそもサーバーレスなのでセキュリティを考慮すべき対象物がないのです。セキュリティ性が高いというよりもセキュリティを考慮すべき対象物がないというのが正解かもしれません。

3.Lambdaの使い方

使い方は簡単です。Aws Lambda Consoleにアクセスして「Create a Function」 を選択します。そして、関数を書いて実行するだけです。

もちろん、Lambdaだけだと構築できるアプリケーションの幅は狭いので、アプリケーション規模によってはLambdaが不適合な場合もあります。簡単なアプリケーションはLambda、複雑なアプリケーションや大規模なアプリケーションはEC2のような使い分けがベストプラクティスです。

関連する記事