2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】APIGatewayでLambda関数を呼び出す設定手順【APIGateway】

Last updated at Posted at 2023-12-17

はじめに

簡単な処理を行うWebアプリケーションでは処理をLambda関数に実装してそれをWebアプリケーションから呼び出すいわゆるサーバレスアプリケーションを構築することがあります。
今回の記事ではサーバアレスアプリケーションの基本的な構成であるAmazonAPIGatewayを利用したLambda関数呼び出しの実装例を投稿しました。

[この構成の利用例(署名付きURLを発行する)]

アーキテクチャ図

アーキ図.PNG

構築手順

1.Lambda関数の実装

①Lambda関数を作成します

※特にAPIGateway用の設定等はなく、必要に応じた処理を実装してください
※ここでは呼び出された後でメッセージを返すだけの処理を書いています
Lambda作成1.PNG

2.API Gatewayの設定

①APIタイプを選択

・ここではWebアプリケーションから呼び出される「HTTP API」を選択
APIGateway1.PNG

②「統合を作成して設定」

・1の手順で作成したLambdaを指定
APIGateway2.PNG

③「ルートを設定」

・メソッドはGetやPostを選択できますが、ここではANYを選択
APIGateway3.PNG

④「ステージを設定」

・変数やタグの設定を行う単位になるステージを設定する
APIGateway4.PNG

⑤設定を確認して「作成」

APIGateway5.PNG

⑥Lambdaのコンソール画面でAPIGatewayがトリガーになっていることを確認

Lambda作成2.PNG

3.動作確認

①WebブラウザでAPIのURLを実行してみる
・Lambdaのコンソール画面かAPIGatewayのコンソール画面で作成したAPIのURLが確認できるため、それをWebブラウザのURL欄に入力して動作確認する
動作確認1.PNG

動作確認2.PNG
↑Lambdaから返されるメッセージが表示されたことを確認

追加で設定

・今後の記事で開設予定ですが、APIGatewayの運用にはコスト面やセキュリティの観点からいくつか注意するポイントがあります。ここではコスト面の設定として「使用量プラン」の設定について記載しておきます

使用量プラン

APIのリクエスト(その後続処理で呼び出されるサービスを含む)によりAWSのコストが発生している場合、APIリクエストは必要最低限の回数に絞る必要があります。また、APIが不正アクセスにより大量のリクエストが行われた場合もコスト増につながります。
そのためリクエストを制限するための使用量プランというものがあります。

設定手順

①APIGatewayの左メニューから「使用量プラン」を選択
APIGateway6.PNG
②使用量プランンの詳細の設定
・1秒当たりのリクエスト回数、クライアントの同時リクエスト数、1日当たりのリクエスト回数の制限を設定します
APIGateway8.PNG

さいごに

APIGatewayとLambdaを使用したサーバレスWebアプリケーションは簡単に実装でき、運用の負担も少ないためこのアーキテクチャを採用するケースは多いですが、利用者や利用回数が多い場合のコストや権限制御も考慮すると意外と気にしないといけないことが多いと思います。
場合によってはEC2などに独自のシステムを構築してあげたほうがコストが運用コストが安いこともあるかも・・・サービスの利便性だけでなく、システムがどのように利用されるかも考慮してアーキテクチャを検討していきたいところです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?