メインコンテンツへ移動

Serverless

LambdaとAPI Gatewayを初心者向けに解説

AWS LambdaとAmazon API Gatewayの役割、違い、連携方法、問い合わせフォームAPIでの使い方を初心者向けに解説します。

公開日:2026-06-01/更新日:2026-06-01/著者:AWS Cert Roadmap Lab
#aws#lambda#api-gateway#serverless#backend

結論

Lambdaは処理を実行するサービスです。

API Gatewayは、外部からAPIリクエストを受け取る入口です。

この2つを組み合わせると、サーバーを常時起動せずにAPIを作れます。

このサイトでは、問い合わせフォームの送信処理に使う想定です。

Lambdaとは

AWS Lambdaは、コードを実行するサーバーレスサービスです。

サーバーレスとは、サーバーが存在しないという意味ではありません。

サーバーの管理をAWS側に任せられる、という意味です。

利用者は、EC2のようにOSを管理したり、サーバーを起動し続けたりする必要がありません。

API Gatewayとは

API Gatewayは、HTTPリクエストを受け取る入口です。

フロントエンドから POST /contact のようなリクエストを送ると、API Gatewayがそれを受け取ります。

その後、API GatewayがLambdaを呼び出します。

つまり、API Gatewayは玄関、Lambdaは処理担当です。

役割の違い

サービス役割
API GatewayAPIのURLを公開する
Lambda実際の処理を実行する
DynamoDB処理結果やデータを保存する
CloudWatch Logs実行ログを確認する
IAM RoleLambdaに必要な権限を与える

この役割分担を理解すると、サーバーレスAPIの全体像が分かります。

問い合わせフォームでの使い方

問い合わせフォームの流れは以下です。

順番処理
1ユーザーがフォームを入力する
2フロントエンドで入力チェックする
3API GatewayへPOSTリクエストを送る
4API GatewayがLambdaを呼び出す
5Lambdaが入力値を検証する
6LambdaがDynamoDBへ保存する
7Lambdaが成功レスポンスを返す
8画面に送信完了メッセージを表示する

このように、フォーム送信だけなら大きなバックエンドサーバーは不要です。

Lambdaでやること

Lambdaでは、主に以下を行います。

処理内容
JSONパースリクエスト本文を読み取る
honeypot確認Bot投稿を除外する
バリデーションname、email、subject、messageを検証する
ID生成contactIdを作る
日時生成createdAtを作る
DynamoDB保存問い合わせ内容を保存する
レスポンス作成成功またはエラーを返す

フロントエンドでも入力チェックしますが、それだけでは不十分です。

APIは外部から直接呼び出される可能性があるため、Lambda側でも必ず検証します。

API Gatewayでやること

API Gatewayでは、主に以下を設定します。

設定内容
RoutePOST /contact を作る
IntegrationLambdaと接続する
CORS許可するフロントエンドOriginを制限する
MethodPOST、OPTIONSを扱う
Logs必要な範囲でログを確認する

MVPでは、認証は使いません。

将来ログイン機能を入れる場合は、CognitoとJWT Authorizerを組み合わせます。

CORSとは

CORSは、ブラウザが別のOriginへリクエストするときの制御です。

たとえば、フロントエンドが https://example.com で、APIがAPI GatewayのURLなら、Originが異なります。

そのため、API Gateway側で許可Originを設定します。

本番では * を使わず、本番フロントエンドのURLだけを許可します。

IAMで必要な権限

LambdaがDynamoDBに保存するには、DynamoDBへの権限が必要です。

ただし、何でもできる権限を与えてはいけません。

問い合わせLambdaに必要なのは、ContactsTableへの dynamodb:PutItem です。

読み取りや削除が不要なら、付けません。

この最小権限の考え方は、AWS資格でも実務でも重要です。

CloudWatch Logsで確認すること

Lambdaを実行すると、CloudWatch Logsにログが出ます。

ただし、問い合わせ本文やメールアドレス全文をログに出してはいけません。

ログに出すなら、以下のような情報にします。

出してよいログ理由
contactId追跡に使える
requestId障害調査に使える
バリデーション失敗項目原因確認に使える
DynamoDB保存失敗障害調査に使える

個人情報や秘密情報はログに出しません。

試験で問われるポイント

Cloud Practitionerでは、Lambdaはサーバーレスコンピューティング、API GatewayはAPI公開サービスとして理解します。

SAAでは、サーバーレスAPI、認証、CORS、IAM、ログ、DynamoDB連携まで理解すると強いです。

観点ポイント
コストLambdaは実行回数と実行時間で課金
可用性マネージドサービスを利用する
セキュリティIAM Roleで最小権限
運用CloudWatch Logsで確認
拡張Cognito認証やDynamoDB連携に広げられる

まとめ

LambdaとAPI Gatewayを使うと、サーバーを常時起動せずにAPIを作れます。

問い合わせフォームのような小さな動的処理には、サーバーレス構成が合います。

重要なのは、API Gatewayを入口、Lambdaを処理担当、DynamoDBを保存先として分けて理解することです。

この構成を作れると、AWS資格の知識を実装経験として説明しやすくなります。

次に学ぶ内容

ブログ記事だけでなく、AWS用語集・サービス比較・模擬問題・構成図を組み合わせると、 資格知識と実装イメージをつなげて理解できます。