みなさん、こんばんは。ご無沙汰しています。新人のRenです。
今日はLambdaについて簡単に学んだことをお伝えします。
AWS Lambdaとは、AWSが提供するFaaS(クラウドサービスの1種、いわゆるサーバーレス)のサービスであり、クラウド上にプログラムを定義しておくことで、インターネットを通じてプログラムを実行できるサービスです。つまり、利用者側はプログラムコードを用意して、Lambdaに設定するだけでプログラムの実行が可能となります。

サーバーレスのメリット

サーバーレス、つまりサーバー管理から解放されることが1番のメリットと言えます。サーバーがある場合は、コンピュータ資源の初期設定や管理を行う必要があり面倒です。サーバーの管理から解放されるので、運用・保守・サーバーそのもののコストを削減できます。また、オートスケールによりリソースが自動的に増減するので、無駄をなくすことができ、コードを書くだけの効率的なシステム開発につながります。

AWS Lambdaの基本的な使い方

AWS Lambdaは基本的に、AWSの他のサービスと組み合わせて利用します。Lambdaは、「何らかのイベントが起こったら、あらかじめ設定していたプログラムが実行される」という仕組みなので、利用時にはトリガーに対する対応をあらかじめ設定します。トリガーへの対応は主に2つあります。

・トリガーと同期して関数を起動するもの・・・①
・トリガーを検知して、非同期で関数を実行するもの・・・②

①は、代表的なサービスとしては、Cognito、API Gatewayなど該当します。
②は、代表的なサービスとしては、Amazon S3、CloudWatch Logs、CloudWatch Eventsなどが該当します。

メリット

AWS Lambdaの主なメリットは下記の通りになります。

 ・安い
  毎月100万件の実行は無料でできます

 ・高速開発が可能である
  準備したコードを実行するだけです

 ・仮想サーバの保守・運用が不要
  AWS側が管理しているので、利用者が保守・運用をする必要がありません

 ・人的コストの改善
  保守・運用にかかっていたコストをすべて削減できます

 ・AWSのサービスとサービスを疎結合につなげることが簡単にできる
  例:S3やDynamoDBのデータ更新をトリガーにLambdaを起動する

 ・疎結合で障害が起きても影響を極小化できる
  疎結合(アプリ同士の関係性を薄くした独立性の強い結びつけ)の利点です

 ・実行トリガーとなる関数が多い
  SNS、DataDog(監視サービス)とも連携可能です

 ・選択できるプログラミング言語が豊富
  「カスタムオンライン」という機能を使えば、一般的な言語以外も使用可能です

その他の使い道

プログラミング言語の実行以外にも様々な使い方があります。非常に便利な使い方に下記のようなものがあります。

 ・データ処理やファイル連携
 ・認証やアクセス権の実行
 ・ログの抽出
 ・EC2との連携
 「利用料が一定ラインを越えたら停止させる」など

要件に合わせた使い方をすることで、最大限の効果を発揮できます。

まとめ

Lambdaは「サーバーレスの関数置き場」というイメージです。様々な使い道、特徴、メリットがあります。特に、利用料金が安く、障害が起きにくいため、安く安定したアプリケーションを作ることが可能です。Lambdaの使い方を知れば知るほど便利になるサービスなので、是非利用してみてください!