▪️はじめに
Webサイトやスマートフォンアプリでは、ユーザーが操作した内容に応じて、サーバー側でデータを取得したり、登録したりする仕組みが必要です。
例えば、次のような処理があります。
- 商品一覧を取得する
- ユーザー情報を登録する
- 注文情報を保存する
- データベースから必要な情報を取得する
こうした処理を外部から利用できるようにする仕組みのひとつが、API(Application Programming Interface) です。
AWSには、APIを作成・公開・管理するためのサービスとして、Amazon API Gateway が用意されています。
API GatewayをLambdaと組み合わせることで、HTTPリクエストを受け付け、プログラムを実行して結果を返す仕組みを構築できます。
この記事では、APIの基本からAPI Gatewayの役割、Lambdaとの連携、HTTP APIとREST APIの違いまで、初心者向けに解説します。
目次
- Amazon API Gatewayとは
- APIとは
- API Gatewayの基本的な仕組み
- API GatewayとLambdaの連携
- HTTP API・REST API・WebSocket API
- API Gatewayで押さえたい用語
- セキュリティとアクセス制御
- 利用する際の注意点
- まとめ
▪️Amazon API Gatewayとは
Amazon API Gatewayは、APIを作成・公開・管理するためのAWSサービスです。
API Gatewayを利用すると、クライアントからのHTTPリクエストを受け付け、Lambda関数やHTTPエンドポイント、対応するAWSサービスなどに連携できます。
例えば、Webアプリから商品情報を取得する場合、次のような構成を考えられます。
Webブラウザ・スマートフォンアプリ
↓
Amazon API Gateway
↓
AWS Lambda
↓
Amazon DynamoDB
この構成では、API Gatewayがリクエストを受け付け、Lambdaが処理を実行し、DynamoDBからデータを取得します。
取得した結果をLambdaがレスポンスとして返し、API Gatewayを通じてクライアントへ返却します。
API Gateway自体がアプリケーションのすべての処理を実行するわけではありません。リクエストを受け付け、適切な処理先へ連携する入口 としての役割が重要です。
♦︎API Gatewayを利用するメリット
主なメリットは次のとおりです。
- HTTP APIなどを公開できる
- Lambdaなどのバックエンドと連携できる
- 認証・認可などのアクセス制御を設定できる
- リクエスト数の制御や監視など、API運用に必要な機能を利用できる
API Gatewayを利用することで、APIの入口とバックエンドの処理を分けて設計できます。
▪️APIとは
APIは、異なるプログラムやシステム同士が、決められた方法で情報をやり取りするためのインターフェースです。
例えば、Webアプリから商品情報を取得するとき、データベースへ直接接続するのではなく、APIを通じて必要な情報を要求する構成が考えられます。
♦︎APIのイメージ
クライアント
↓ リクエスト
API
↓
バックエンドの処理
↓
データベースなど
↓
API
↓ レスポンス
クライアント
クライアントは、APIにリクエストを送信し、その結果をレスポンスとして受け取ります。
Web APIでは、HTTPやHTTPSを使ってリクエストとレスポンスをやり取りする方式が広く利用されています。
♦︎HTTPメソッド
HTTP APIでは、リクエストにHTTPメソッドを指定し、どのような操作を行うかを表すことがあります。
| HTTPメソッド | 代表的な用途 |
|---|---|
| GET | データの取得 |
| POST | データの作成や処理の依頼 |
| PUT | リソース全体の置き換え |
| PATCH | リソースの一部更新 |
| DELETE | データの削除 |
例えば、商品一覧を取得するAPIならGET、注文情報を登録するAPIならPOSTを使用する設計が考えられます。
ただし、実際の動作はAPIの設計によって決まります。HTTPメソッドだけで処理内容が自動的に決まるわけではありません。
▪️API Gatewayの基本的な仕組み
API Gatewayを利用した基本的な処理の流れを確認しましょう。
① クライアントがHTTPリクエストを送信
↓
② API Gatewayがリクエストを受信
↓
③ 設定されたルート・メソッドなどを判定
↓
④ Lambdaなどのバックエンドへ連携
↓
⑤ バックエンドが処理を実行
↓
⑥ API Gatewayを通じてレスポンスを返却
① クライアントがリクエストを送信
Webブラウザやスマートフォンアプリなどが、APIのエンドポイントへリクエストを送信します。
エンドポイントとは、APIを呼び出すための接続先です。
② API Gatewayがリクエストを受信
API Gatewayがリクエストを受け付けます。
必要に応じて、認証・認可やリクエストの検証などを行うように設定できます。
③ ルートやメソッドを判定
リクエストされたパスやHTTPメソッドなどに応じて、どのバックエンドへ連携するかを決定します。
例えば、GET /products というリクエストを商品一覧の取得処理へ連携する構成が考えられます。
④ バックエンドへ連携
設定されたLambda関数やHTTPエンドポイントなどへリクエストを渡します。
⑤ バックエンドが処理を実行
Lambdaなどが、データの取得・登録・更新といった処理を行います。
⑥ レスポンスを返却
バックエンドから返された結果を、API Gatewayを通じてクライアントへ返します。
このように、API Gatewayはクライアントとバックエンドの間に位置し、APIへのアクセスを受け付ける役割を担います。
▪️API GatewayとLambdaの連携
API Gatewayは、Lambdaと組み合わせて利用される代表的なサービスです。
Lambdaは、イベントを受け取ってプログラムを実行するサーバーレスサービスです。
一方、API GatewayはHTTPリクエストを受け付け、Lambdaなどのバックエンドへ連携します。
♦︎連携のイメージ
クライアント
↓ HTTPリクエスト
API Gateway
↓ Lambdaを呼び出す
AWS Lambda
↓ 必要に応じてデータを取得
Amazon DynamoDB
↓ 結果を返す
AWS Lambda
↓ 実行結果を返す
API Gateway
↓ HTTPレスポンス
クライアント
例えば、商品情報を取得するAPIでは、次のような処理が考えられます。
- クライアントが商品情報の取得を要求する
- API Gatewayがリクエストを受け付ける
- Lambdaが商品情報の取得処理を実行する
- LambdaがDynamoDBなどから商品情報を取得する
- API Gatewayを通じて商品情報をクライアントへ返す
この構成なら、クライアントはデータベースへ直接アクセスする必要がありません。
バックエンドの処理をLambdaに分離し、API Gatewayを入口として利用することで、役割を整理しやすくなります。
♦︎Lambda以外との連携
API GatewayはLambdaだけでなく、HTTPエンドポイントや対応するAWSサービスなどとも連携できます。
そのため、バックエンドの構成や要件に応じて、適切な連携方式を選択できます。
▪️HTTP API・REST API・WebSocket API
API Gatewayには、主に次の3種類のAPIがあります。
- HTTP API
- REST API
- WebSocket API
用途や機能が異なるため、要件に応じて使い分けます。
| APIの種類 | 特徴 | 主な用途 |
|---|---|---|
| HTTP API | 比較的シンプルな構成でHTTPリクエストを処理できる | Lambdaと連携するWeb APIなど |
| REST API | より多くのカスタマイズやAPI管理機能を備える | 高度なAPI管理・アクセス制御が必要なAPIなど |
| WebSocket API | クライアントとサーバー間の双方向通信を扱える | チャット・リアルタイム通知など |
♦︎HTTP API
HTTP APIは、比較的シンプルな構成でHTTPリクエストを処理するためのAPIです。
LambdaやHTTPバックエンドと連携する用途などで利用できます。
必要な機能がHTTP APIで満たせる場合は、構成や料金などを比較したうえで選択肢になります。
♦︎REST API
REST APIは、HTTP APIよりも多くのカスタマイズやAPI管理機能を備えています。
例えば、利用状況の制御やAPIキー、リクエスト・レスポンスの変換など、要件によってはREST APIの機能が役立ちます。
ただし、HTTP APIでも利用できる機能や構成はあるため、単純にREST APIのほうが常に優れているというわけではありません。
♦︎WebSocket API
WebSocket APIは、クライアントとサーバー間で双方向の通信を行うためのAPIです。
一般的なHTTP APIでは、クライアントがリクエストを送信し、サーバーがレスポンスを返す方式が基本です。
一方、WebSocketでは接続を維持し、サーバー側からクライアントへメッセージを送るような構成も実現できます。
例えば、チャットアプリやリアルタイムの情報更新などに利用できます。
▪️API Gatewayで押さえたい用語
API Gatewayを理解するために、代表的な用語を確認しましょう。
| 用語 | 意味 |
|---|---|
| エンドポイント | APIを呼び出すための接続先 |
| ルート | リクエストをどの処理へ連携するかを決める設定 |
| 統合(Integration) | API Gatewayとバックエンドを接続する設定 |
| ステージ | APIのデプロイ先を管理する単位 |
| デプロイ | 設定したAPIを利用可能な状態にすること |
| スロットリング | リクエスト数を制御すること |
| CORS | 異なるオリジン間のブラウザ通信を制御する仕組み |
♦︎ルートと統合
ルートは、受信したリクエストをどの処理へ振り分けるかを決める設定です。
例えば、GET /products は商品一覧の取得、POST /orders は注文登録というように設計できます。
統合は、そのルートからLambdaなどのバックエンドへ接続するための設定です。
つまり、ルートが「どのリクエストか」を判定し、統合が「どこへ連携するか」を定義すると考えると理解しやすいでしょう。
♦︎ステージとデプロイ
API Gatewayでは、APIをデプロイして、ステージに関連付けることで利用可能にする構成があります。
ステージには、例えば開発用や本番用といった用途を持たせられます。
ただし、HTTP APIでは自動デプロイを有効にできるため、設定変更が自動的に反映される構成もあります。APIの種類やデプロイ設定によって動作が異なります。
▪️セキュリティとアクセス制御
API Gatewayは、外部からリクエストを受け付ける入口になることがあるため、セキュリティの設計が重要です。
主なポイントを確認しましょう。
① 認証・認可
APIを誰が利用できるのか、どの操作を許可するのかを適切に制御する必要があります。
要件に応じて、IAM認証、JWTを利用するオーソライザー、Lambdaオーソライザーなどの仕組みを利用できます。
APIキーは利用状況の制御などに使えますが、APIキーだけを強固な認証手段として扱うべきではありません。
② HTTPSを利用する
通信内容を保護するため、HTTPSを利用することが重要です。
API GatewayのAPIエンドポイントではHTTPSによるアクセスを利用できます。
③ 必要なアクセスだけを許可する
API GatewayからLambdaなどを呼び出す場合、必要なアクセス許可を設定します。
Lambdaの実行ロールは、Lambdaのプログラムが他のAWSサービスを利用するための権限です。
一方、API GatewayがLambdaを呼び出すための許可は別の観点で設定します。
「Lambdaが実行中に使う権限」と「API GatewayからLambdaを呼び出す権限」は別物 なので、混同しないようにしましょう。
④ リクエスト数を制御する
アクセスが集中すると、バックエンドに大きな負荷がかかる可能性があります。
API Gatewayのスロットリングなどを活用し、リクエスト数を制御することも検討しましょう。
スロットリングはアクセス数を制御する仕組みであり、すべての不正アクセスを防ぐものではありません。認証・認可や監視などと組み合わせて対策することが大切です。
▪️利用する際の注意点
API Gatewayを利用する際は、次の点にも注意しましょう。
① APIの設計を明確にする
どのパスで何の処理を行うのか、どのHTTPメソッドを利用するのかを明確にしましょう。
APIの設計が曖昧だと、利用する側が動作を理解しにくくなります。
② エラー処理を考慮する
Lambdaやバックエンドでエラーが発生した場合、クライアントへ適切なHTTPステータスコードやエラーメッセージを返す必要があります。
成功時だけでなく、入力不正や認証失敗、バックエンドの障害なども考慮して設計しましょう。
③ タイムアウトを考慮する
バックエンドの処理に時間がかかりすぎると、APIリクエストがタイムアウトする場合があります。
API Gatewayの種類や統合方式によってタイムアウトの制約が異なるため、長時間の処理を扱う場合は、非同期処理やキューなどの利用も検討しましょう。
④ 料金を確認する
API Gatewayの料金は、APIの種類やリクエスト数、利用する機能などによって異なります。
利用量が増えることを想定し、料金体系を確認しておくことが重要です。
▪️まとめ
Amazon API Gatewayは、APIを作成・公開・管理するためのAWSサービスです。
今回のポイントを整理します。
- API:プログラムやシステム同士が情報をやり取りするためのインターフェース
- API Gateway:APIへのリクエストを受け付け、バックエンドへ連携する
- Lambdaとの連携:HTTPリクエストをきっかけにプログラムを実行できる
- HTTP API・REST API:必要な機能や要件に応じて使い分ける
- WebSocket API:双方向のリアルタイム通信に利用できる
- セキュリティ:認証・認可、HTTPS、アクセス制御などを適切に設計する
API Gatewayを理解すると、WebアプリケーションなどからAWSのバックエンドサービスを利用する仕組みが見えてきます。
特に、API Gateway・Lambda・DynamoDBを組み合わせた構成は、サーバーレスアプリケーションを理解するうえで重要です。
次の記事では、「AWS Systems Manager」について解説します。
*「AWS Systems Manager」の記事はこちら
→「https://lovelabengineer.com/2026/10/09/aws-systems-managerとは?ec2の運用管理を効率化する仕組みを初/」

No responses yet