カテゴリ: AWS Lambda 更新日: 2026/06/24

AWS LambdaとAPI Gatewayの連携方法!初心者でもできるREST APIの構築手順

310
【AWS】LambdaとAPI Gatewayの連携方法!REST APIの構築手順を詳しく解説

先生と生徒の会話形式で理解しよう

生徒

「AWS Lambdaを使ってサーバーレスでAPIを作れるって聞いたんですが、どうやるんですか?」

先生

「AWS LambdaとAPI Gatewayを連携することで、コードを書くだけでREST APIを構築できますよ。」

生徒

「えっ?サーバー構築とかは一切不要なんですか?」

先生

「その通りです。それでは、AWS LambdaとAPI Gatewayを使ったREST APIの構築方法を順に解説していきましょう。」

1. AWS LambdaとAPI Gatewayとは?

1. AWS LambdaとAPI Gatewayとは?
1. AWS LambdaとAPI Gatewayとは?

AWS Lambda(ラムダ)とは、物理的なサーバーの管理を一切行わずに、作成したプログラム(コード)を実行できる「サーバーレス」なコンピューティングサービスです。従来のようにOSのインストールやアップデート、メモリの管理といった複雑な作業をすべてAWS側に任せられるのが最大の特徴です。

一方で、API Gateway(エーピーアイ ゲートウェイ)は、外部(ブラウザやスマホアプリなど)からのリクエストを受け取る「受付窓口」のような役割を果たします。この窓口があることで、インターネット経由でプログラムを呼び出すためのURL(エンドポイント)を簡単に作成できます。

これら2つのサービスを連携させることで、「API Gatewayがリクエストを受け取り、Lambdaが中身の処理を行う」という強力なREST API環境が完成します。インフラ構築の手間が省けるため、プログラミング未経験者や開発コストを抑えたいプロジェクトにとって非常に効率的な組み合わせです。

具体的なイメージで理解しよう

たとえば、「名前を送信すると、挨拶を返してくれるAPI」を作りたい場合、以下のような役割分担になります。

  • API Gateway:「https://example.com/hello」というURLを用意し、外からの訪問者を待つ。
  • AWS Lambda:届いた名前を受け取り、「こんにちは、〇〇さん!」というメッセージを組み立てるJavaプログラム。

未経験の方でも分かりやすいように、Lambdaで動かすJavaのイメージコードを見てみましょう。


public class HelloHandler {
    // API Gatewayから呼び出されるメインの処理
    public String handleRequest(String userName) {
        // 名前が空だった場合の簡単なチェック
        if (userName == null || userName.isEmpty()) {
            return "名前が入力されていません。";
        }
        // 挨拶メッセージを作成して返す
        return "AWS Lambdaへようこそ、" + userName + "さん!";
    }
}

このコードをLambdaに登録しておくだけで、API Gateway経由で誰でもこのプログラムを動かせるようになります。まさに「サーバーの存在を意識しない」開発が可能になります。

2. REST APIとは?LambdaとAPI Gatewayで何ができる?

2. REST APIとは?LambdaとAPI Gatewayで何ができる?
2. REST APIとは?LambdaとAPI Gatewayで何ができる?

REST API(レスト エーピーアイ)は、HTTPメソッド(GET, POST, PUT, DELETEなど)を使って、データのやり取りをする仕組みです。AWS LambdaとAPI Gatewayを使えば、サーバー管理不要で、APIエンドポイントを公開できます。

例えば、/userにPOSTすればユーザーを登録、GETでユーザー情報を取得といった処理を、Lambda内のコードだけで実現できます。

3. Lambda関数の作成手順

3. Lambda関数の作成手順
3. Lambda関数の作成手順

AWS Lambda関数は、以下の手順で作成します。

  1. AWSマネジメントコンソールにログイン
  2. サービス一覧から「Lambda」を選択
  3. 「関数の作成」→「一から作成」を選ぶ
  4. 関数名を入力(例:UserHandler
  5. ランタイム(Java, Python, Node.jsなど)を選択
  6. 「関数を作成」ボタンを押す

作成後、LambdaのコードエディタでAPIの処理内容を書きます。

AWSの基本用語や仕組みを、図解でサクッと理解したい人には、 入門の定番書がこちらです。

AWSの基本が全部わかる教科書をAmazonで見る

※ Amazon広告リンク

4. Lambda関数のコード例(Java)

4. Lambda関数のコード例(Java)
4. Lambda関数のコード例(Java)

Javaで書いたLambda関数の基本構文は次の通りです。


package example;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

public class HelloWorldHandler implements RequestHandler<String, String> {
    @Override
    public String handleRequest(String input, Context context) {
        return "Hello from Lambda! You sent: " + input;
    }
}

5. API Gatewayの設定とLambdaとの統合

5. API Gatewayの設定とLambdaとの統合
5. API Gatewayの設定とLambdaとの統合

次に、API Gatewayでエンドポイントを作成し、Lambda関数と統合します。

  1. サービス一覧から「API Gateway」を選択
  2. 「APIを作成」→「REST API(構築済み)」を選択
  3. API名を入力(例:UserAPI
  4. リソース(パス)を作成(例:/user
  5. HTTPメソッド(例:POST)を追加
  6. 統合タイプで「Lambda関数」を選択
  7. 対象のLambda関数名を入力して保存

最後に「APIのデプロイ」を行うと、URLが発行され、APIが利用可能になります。

6. 実際にREST APIを呼び出す方法

6. 実際にREST APIを呼び出す方法
6. 実際にREST APIを呼び出す方法

デプロイが完了すると、発行されたURLに対してHTTPリクエストを送信できます。例えば、curlコマンドでPOSTする場合は以下のようになります。


curl -X POST https://xxxxx.execute-api.ap-northeast-1.amazonaws.com/prod/user -d "test"

このリクエストがAPI Gatewayを通じてLambdaに届き、先ほどのJavaコードが実行され、レスポンスとして文字列が返されます。

7. CORS設定も忘れずに

7. CORS設定も忘れずに
7. CORS設定も忘れずに

フロントエンドと連携する場合、CORS(クロスオリジンリソース共有)を有効にしておく必要があります。

API Gatewayの「メソッドレスポンス」や「統合レスポンス」で、Access-Control-Allow-Originヘッダーを追加設定しましょう。

8. LambdaとAPI Gateway連携のよくあるエラーと解決法

8. LambdaとAPI Gateway連携のよくあるエラーと解決法
8. LambdaとAPI Gateway連携のよくあるエラーと解決法

初心者がつまずきやすいポイントも押さえておきましょう。

  • Lambda関数名のタイプミス:関数名が正しくないと統合エラーになります。
  • APIのデプロイ忘れ:URLが発行されない原因になります。
  • 権限エラー:Lambda実行ロールにlambda:InvokeFunction権限があるか確認しましょう。

9. REST APIの拡張(パラメータ・パス変数)

9. REST APIの拡張(パラメータ・パス変数)
9. REST APIの拡張(パラメータ・パス変数)

API Gatewayではクエリパラメータやパスパラメータも扱えます。例えば/user/{id}のようなURLで、ユーザーIDを取得してLambdaに渡すことも可能です。

Lambda関数側でIDをパースして処理を分岐させれば、より実用的なAPIになります。

10. サーバーレスアーキテクチャとしてのメリット

10. サーバーレスアーキテクチャとしてのメリット
10. サーバーレスアーキテクチャとしてのメリット

LambdaとAPI Gatewayを組み合わせたサーバーレス構成には、以下のような利点があります。

  • インフラ構築が不要
  • 使った分だけの課金(コスト削減)
  • 自動スケーリング対応
  • セキュリティや認証(IAMやAPIキー)との統合も容易

これらの特徴から、特にスタートアップや個人開発者に人気の高い技術スタックです。

まとめ

まとめ
まとめ

AWS LambdaとAPI Gatewayを組み合わせることで、初心者でもシンプルな構成でREST APIを安全かつ効率的に構築できるしくみを体系的に理解できました。サーバーを用意せずにコードだけで処理を実行できるLambdaは、開発負荷を大きく減らし、運用コストも抑えられる点が大きな魅力です。一方で、API Gatewayは外部からのリクエストを受け取り、適切なメソッドやパスに応じてLambdaへ処理を渡す役割を担います。この2つが連携することで、エンドポイントの作成からHTTPメソッドごとの処理、レスポンス生成までを柔軟に扱えるようになります。とくに初心者が理解しておきたいのは、API Gatewayでリソース(パス)やメソッド(GETやPOSTなど)を作成し、そのメソッドとLambda関数を統合するという流れです。この構造を理解することで、REST APIの全体像がつかめるようになります。 また、Lambdaではランタイム(Java, Python, Node.jsなど)を自由に選択でき、自分の得意な言語で処理を書ける点も学習の助けになります。Javaでの基本構文例にあるように、入力を受け取って文字列を返すだけのシンプルな関数でも、API Gatewayと連携すれば立派なREST APIとしてインターネット上で公開できます。さらに、APIのデプロイを行うことで実際のURLが発行され、curlやブラウザ、フロントエンドアプリケーションから呼び出すことも可能になります。この流れを繰り返し確認することで、API構築の基礎が自然と身につきます。 初心者がつまずきやすいポイントとして、デプロイを忘れて変更が反映されない問題、Lambda関数名の指定ミス、IAMロールの権限不足による実行エラーなどがあります。これらはAWSを扱う上で頻繁に起こるため、原因と対処法をセットで覚えておくことが大切です。また、フロントエンドと連携する際にはCORS設定が欠かせず、API Gateway側で適切なレスポンスヘッダーを追加する必要があります。この設定が誤っているとブラウザ側でブロックされてしまうため、学習段階でしっかり理解しておくべき項目です。 さらに、REST APIの拡張として、API Gatewayではパスパラメータやクエリパラメータの受け渡しも可能であり、実用的なWebアプリケーションを構築するうえで欠かせない機能です。Lambdaでは渡されたパラメータをもとに処理内容を分岐できるため、ユーザー情報の取得や更新、削除といった高度な操作へスムーズに発展できます。サーバーレスアーキテクチャは、スケーリングの自動化やコストの最適化というメリットもあり、小規模サービスから本格的な業務システムまで幅広く利用できることが理解できたのではないでしょうか。 以下に、記事内容を整理するための簡単なサンプルコードを示します。

サンプルプログラム(API呼び出しの基本例)


curl -X GET https://example.execute-api.ap-northeast-1.amazonaws.com/prod/user/123

このように、発行されたURLに対して適切なHTTPメソッドでリクエストを送るだけで、APIを通じてLambdaの処理を呼び出すことができます。サーバー構築の手間もなく、自動スケーリングや高い可用性を備えた環境を短時間で構築できる点は、サーバーレスならではの大きな利点といえます。今回学んだ手順や考え方は、実際の開発でもそのまま活かすことができ、API設計やAWSサービスの理解にも深くつながります。LambdaとAPI Gatewayの組み合わせは、現代のWeb開発において非常に重要な技術スタックであり、基礎を確実に身につけることで応用範囲が一気に広がります。

先生と生徒の振り返り会話

生徒:「Lambdaで書いたコードがAPI経由で簡単に実行できるのはすごく便利ですね。サーバーを立てなくてもいいというのが想像以上でした。」

先生:「その便利さがサーバーレスの魅力です。インフラの管理に時間を使わず、必要な処理に集中できますから開発効率が大きく向上しますよ。」

生徒:「API Gatewayのメソッドやリソースの設定も理解できました。デプロイをしないと反映されないという点も覚えておかないといけませんね。」

先生:「その通りです。デプロイはAPI構築の基本なので、何度も確認しながら慣れていくと良いでしょう。エラーが出たときも、関数名やIAM権限をチェックする癖をつけるとスムーズに解決できます。」

生徒:「パスパラメータでIDを受け取る仕組みも面白かったです。実際のアプリ開発にそのまま応用できそうですね。」

先生:「まさにその通りです。今回の内容を基礎に、より実践的なREST API構築に挑戦してみるといいでしょう。LambdaとAPI Gatewayは可能性が大きいので、学べば学ぶほど便利さを実感できますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

AWS Lambda(ラムダ)とは具体的にどのようなサービスですか?初心者にもわかりやすく教えてください。

AWS Lambda(ラムダ)とは、Amazon Web Servicesが提供する「サーバーレス」なコンピューティングサービスのことです。プログラミング初心者が一番苦労する、物理的なサーバーの準備、OSのインストール、セキュリティパッチの適用、メモリの管理といった「インフラの運用管理」をすべてAWS側が代行してくれます。ユーザーは実行したいプログラム(コード)をアップロードするだけで、必要な時にだけその処理を実行できるのが最大の特徴です。サーバーを自前で立てる必要がないため、開発コストの削減や運用効率の向上に非常に効果的です。
AWS Lambdaの一覧へ
新着記事
Flutter
Flutter Web開発の始め方!環境構築と基本の流れ
Flutter Web開発の始め方を完全ガイド!初心者でもわかる環境構築と基本の流れ
Flutter
FlutterのInheritedWidgetとは?仕組みと活用方法
FlutterのInheritedWidgetとは?仕組みと活用方法を初心者向けにやさしく解説
Flutter
Blocパターンの仕組みと導入方法をわかりやすく解説
FlutterのBlocパターンを完全ガイド!初心者でもわかる状態管理と導入方法
Python
NumPyのdstackの使い方!3次元配列を結合する方法
NumPyのdstackの使い方!3次元配列を結合する方法
人気記事
Flutter
Flutterの開発に必要なもの!パソコン・ツール・OSなど準備まとめ
Flutterの開発に必要なもの!パソコン・ツール・OSなど準備まとめ
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク