見出し画像

超簡単にサーバーレスを実現できるAWS Lambdaって?

外資系企業でソフトウェアエンジニアをしております、タロイモと言います。今日もよろしくお願いします。 

今回はAWSの中でもサーバーレスを簡単に実現できるLambda(ラムダ)というサービスについてご紹介します。

サーバーレス
一定のサーバー容量に依存することなく、稼働に必要なリソースを動的に設定し、マネージドサービスを利用する事でシステム構築をする運用方法。
参考
サーバーを必要としないという意味でなく、サーバーを運用・準備する必要がないというところがポイント。

1. Lambdaとは

Lambdaとは
Lambdaを使用することで、アプリケーションやバックエンドサービスの管理を不要にします。コードさえアップロードすれば、高可用性を実現しながらコードを実行およびスケーリングするために必要なことは、すべて Lambda により行われます。コードは、他の AWS サービスから自動的にトリガーするよう設定することも、ウェブやモバイルアプリケーションから直接呼び出すよう設定することもできます。
(参考:AWS Lambda)

簡単に言うとラムダは、関数をアップロードするだけで自動的にサーバーを管理し、関数のトリガーまで設定できる機能を提供するサービスです。


Lambdaの仕組み

Lambdaは、以下のような流れで使用できます。

Lambda関数を作成する。
関数が発火するきっかけとなるエンドポイントを作成する。
関数はエンドポイントにアクションがあったときのみに発火する。

スクリーンショット 2020-08-12 21.04.56


2. LambdaでサーバーレスAPIを作る

次はLambdaでサーバーレスAPIを作る流れを確認します。

サーバーレスAPIのユースケースの流れはこのような感じです。

スクリーンショット 2020-08-12 20.32.57

ユーザーがインターネット経由でAPIにアクセスすると、Lambda関数が実行され、結果が返されると言う流れです。

今回は画像とともにサーバーレスAPIの作り方の確認だけします。

スクリーンショット 2020-08-12 21.23.57

Lambdaコンソールに移動し、Lambdaエディタにて、関数を作成します。
handler関数がLambdaが自動で実行してくれるLambda関数です。
引数eventはLambda関数が発火する要因となるイベントが入っています。
今回はAPIなので、eventにHTTPパラメータ、ヘッダ、メソッド、ボディなどの情報が格納されてLambda関数の引き金となります。


次にAmazonAPI GatewayからRESTAPIを作成します。

APIのセットアップで、APIにアクセスすると先ほど作成したLambda関数が実行されるように設定します。

このままAPIをデプロイし、APIのURLを取得したら、CURLコマンドで以下のように打ってください。

$ curl -X POST --header "Content-Type: application/json" -d '{"key1":"value1"}' https://kniiqf3nbc.execute-api.ap-northeast-1.amazonaws.com/APIdeploy
{"statusCode":200,"body":"\"Hello from Lambda!\"","event":{"key1":"value1"}}

APIにアクセスすることで、先ほどのLambda関数から値が返ってくることが分かります。

{"statusCode":200,"body":"\"Hello from Lambda!\"","event":{"key1":"value1"}}


3. 終わりに

今回は手軽にサーバーレスAPIを作ることができるAWS Rambdaをご紹介しました。

手軽にサーバーを立てアプリを作ることができるので、アプリの通知や監視をしたいときに便利ですね。

ご精読ありがとうございました。

いいなと思ったら応援しよう!

Tasting.com 【アプリリリース予定】
よろしければサポートお願いします! サポートは、サービスの開発・改良や、記事を書く際の素材費とさせていただきます。 少しでも有益な情報発信をしていけるよう努めてまいります。 是非とも応援よろしくお願いします!!!🙇‍♂️