★悩み★
・AWSでサーバレスを使いたんだけどどうすればいいのかな。
・AWS Lambdaを使ってみたいんだけどどうすればいいのかな。
・そもそもサーバレスって何?
こういった「悩み」に答えます。
★本記事の内容★
(1) サーバレスとは何か?をご紹介
(2) AWSでサーバレスを実現する方法をご紹介
(3) 5ステップでAWSのサーバレスを利用する方法をご紹介
これからご紹介する「AWSでサーバレスを実現する方法」を理解しておくことで、「AWS 認定 ソリューションアーキテクト アソシエイト」の資格に合格しやすくなります。
本記事の前半では「サーバレスとは何か?」を具体的に解説し、本記事の後半では「AWS Lambdaでサーバレスを実現する方法」をご紹介します。
この記事を読み終えることで、「サーバレスとは何か」を把握できるだけでなく、「AWS Lambdaの使い方」も理解した状態になります。
「AWSとは何か?」や「AWSの基礎的なサービスは何か?」を知りたい方は、以下の記事をご覧ください。
サーバレスとは何か?
サーバレスとはどのような技術なのかをご説明します。
★サーバレスとは★
サーバレスとは、サーバレスコンピューティングのことを指します。
サーバレスにより、サーバの管理なしでアプリケーションを実行できます。
サーバレスを利用することで以下の利点を得られます。
★サーバレスの利点★
・利用者がサーバのプロビジョン(準備)をする必要なし
・利用者がサーバのスケールをする必要なし
・利用者がサーバの管理をする必要なし
上記の利点を得られるため、アプリケーション開発者は、アプリケーションの開発に専念することができます。
サーバの管理や設定をしたくない場合、サーバレスを利用することを検討してみましょう。
以上が、「サーバレスとは何か?」になります。
AWSでサーバレスを実現する方法【AWS Lambda】
AWSでサーバレスを実現する方法をご紹介します。
AWS Lambdaとは?
AWSでは、「AWS Lambda」を利用することでサーバレスを実現できます。
★AWS Lambdaとは★
・完全マネージド型のコンピューティングサービス
→ 可用性やスケーリングはLambdaで管理可能
・サーバーを起動することなくプログラムを実行可能
→ Node.js/Java/C#/Python/Rubyをサポート
→ 最大実行時間は15分
AWS Lambdaを利用することで以下の利点を得ることができます。
★AWS Lambdaの利点★
・開発者はアプリケーション開発に集中可能
→ サーバの設定などに時間を割く必要なし
・Lambdaに処理を依頼された場合にコンピューティングリソースを消費
以上が、「AWS Lambdaとは?」となります。
AWS Lambdaのユースケース
AWS Lambdaのユースケースに関してご紹介します。
マイクロサービスなシステムを構築するために一部分でAWS Lambdaを使います。
「マイクロサービスとはどのようなものか」に関しては、以下をご覧ください。
また、AWS Lambdaの別のユースケースとして「Web API」があります。
AWS Lambdaで「Web API」を実装する場合、「Amazon API Gateway」を利用することで簡単に実現できます。
★Amazon API Gatewayとは★
・APIの作成/配布/監視などを簡単に行えるサービス
→ Web APIの作成が可能
・Lambdaと組み合わせることでサーバレスアプリを実装可能
・最大で数10万の同時API呼び出しを処理可能
AWS LambdaとAmazon API Gatewayを利用することで以下のシステムを構築できます。

以上が、「AWS Lambdaのユースケース」となります。
以上のようにAWS Lambdaを使うことで、AWSでサーバレスを実現することは可能です。
5ステップでAWSのサーバレスを利用する方法
5ステップでAWSのサーバレスを利用する方法をご紹介します。
今回は、先ほど紹介した「Lambdaの利用例」を作成しましょう。
★AWSでサーバレスを利用する流れ★
ステップ1:AWSマネジメントコンソールでLambdaを検索
ステップ2:AWS Lambdaで関数を作成
ステップ3:AWSマネジメントコンソールでAPI Gatewayを検索
ステップ4:API GatewayでLambdaと連携するAPIを作成
ステップ5:サーバレス環境の動作確認
AWSでサーバレスを利用するまでに上記5ステップがあります。
以降で、各ステップに関して説明します。
ステップ1:AWSマネジメントコンソールでLambdaを検索
AWSマネジメントコンソールでLambdaを検索する方法をご紹介します。
Webブラウザで下記URLからAWSマネジメントコンソールへアクセスします。
AWSマネジメントコンソール
※上記をクリックすると新規タブが開きます。
「サービスを検索する」直下にあるテキストボックスに「lambda」と入力します(下図の赤枠部分)。

その後、「サーバのことを考えずにコードを実行する」をクリックしましょう。
以上で、「ステップ1:AWSマネジメントコンソールでLambdaを検索」は完了です。
ステップ2:AWS Lambdaで関数を作成
次は、AWS Lambdaで関数を作成しましょう。
左側にある「関数」(下図の青枠)をクリックし、「関数の作成」(下図の垢枠)をクリックしましょう。

以下の情報を入力し、「関数の作成」をクリックします。
・「一から作成」を選択
・関数名:testPythonLambdaと入力
・ランタイム:Python 3.8を選択

「Latest」(下図の赤枠)をクリックします。

「Code」(下図の赤枠)をクリックし、プログラム記述箇所(下図の黄緑枠)に以下を入力します。
import json
def lambda_handler(event, context):
dict = {"name": "hero", "age": 20, "gender": "man"}
return {
'statusCode': 200,
'body': json.dumps(dict)
}
その後、「Deploy as latest」(下図の青枠)をクリックします。

以上で、サーバレスで実行するアプリケーションの作成は完了です。
ステップ3:AWSマネジメントコンソールでAPI Gatewayを検索
続いて、AWSマネジメントコンソールでAPI Gatewayを検索する方法をご紹介します。
Webブラウザで下記URLからAWSマネジメントコンソールへアクセスします。
AWSマネジメントコンソール
※上記をクリックすると新規タブが開きます。
「サービスを検索する」直下にあるテキストボックスに「API Gateway」と入力します(下図の赤枠部分)。

その後、「APIの構築、デプロイ、および管理」をクリックしましょう。
以上で、「ステップ3:AWSマネジメントコンソールでAPI Gatewayを検索」は完了です。
ステップ4:API GatewayでLambdaと連携するAPIを作成
続いて、API GatewayでAPIを作成しましょう。
「APIを作成」(下図の赤枠)をクリックします。

「REST API」の「構築」(下図の赤枠)をクリックします。

以下の情報を入力し、「APIの作成」(下図の赤枠)をクリックします。
・API名:testAPIと入力
・説明:testと入力

「アクション」(下図の青枠)をクリックし、「メソッドの作成」(下図の赤枠)をクリックします。

今回は、Web APIのGETエンドポイントを作成したいため、「GET」(下図の赤枠)をクリックします。

「✔️」(下図の赤枠)をクリックします。

以下の情報を入力し、「保存」(下図の黄緑枠)をクリックします。
・統合タイプ(下図の赤枠):Lmabda関数を選択
・Lambda関数(下図の青枠):testPtythonLambdaと入力

確認画面が表示されますので、「OK」(下図の赤枠)をクリックします。

「アクション」(下図の青枠)をクリックし、「APIのデプロイ」(下図の赤枠)をクリックします。

以下の情報を入力し、「デプロイ」ボタンをクリックします。
・デプロイされるステージ:新しいステージを選択
・ステージ名:testapiと入力
・ステージの説明:testapiと入力
・デプロイメントの説明:testatpiと入力

以上で、「ステップ4:API GatewayでLambdaと連携するAPIを作成」は完了です。
ステップ5:サーバレス環境の動作確認
最後に、作成したサーバレス環境の動作確認をします。
AWSマネジメントコンソールからLambdaを検索し、Lambdaの管理画面を開きましょう。(ステップ1の手順参照)
ステップ2で作成した「testPythonLambda」(下図の赤枠)をクリックします。

「Aliases」をクリックし、「Latest」(下図の赤枠)をクリックしましょう。

「Latest configuration」(下図の青枠)をクリックし、「Triggers」(下図の黄緑枠)をクリックします。
その後、「詳細」配下にある「APIエンドポイント」(下図の赤枠)をクリックします。

クリックすることで、Lambdaによって処理されたJsonが表示されます。

以上で、「ステップ5:サーバレス環境の動作確認」は完了です。
以上の5ステップにより、AWSのサーバレスを利用することができます。
【まとめ】5ステップでサーバレスを利用する方法【AWS Lambda】
今回の記事を通して、「5ステップでサーバレスを利用する方法」をご紹介することで、以下の悩みを解消しました。
★悩み★
・AWSでサーバレスを使いたんだけどどうすればいいのかな。
・AWS Lambdaを使ってみたいんだけどどうすればいいのかな。
・そもそもサーバレスって何?
「AWSでサーバレスを使いたいなぁ」と思い悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント