こんにちは。miyoshiです。
今回は、サーバレスアーキテクチャの要となるサービス
Amazon API Gatewayについて、基本から学びます!
✅ API Gatewayとは?
📌 一言でいうと:
外部からのリクエストを受け付けて、AWSのサービスとつなぐ“玄関口”
- REST API や WebSocket API を作れる
- LambdaやEC2、他のAWSサービスと連携可能
- サーバー不要で、スケーラブルなAPIを構築できる!
✅ ざっくり構成図
[ ユーザー ]
↓ HTTPリクエスト
[ API Gateway ]
↓
[ Lambda関数 や 他のサービス ]
ユーザーからのリクエストはすべてAPI Gatewayが受け取り、
バックエンド(Lambda、EC2、DynamoDBなど)に振り分けてくれます。
✅ どんなときに使うの?
- WebアプリやモバイルアプリのAPIエンドポイントを作りたいとき
- フロントエンドからLambdaを呼び出したいとき
- サーバレスでREST APIやWebhookを作りたいとき
✅ API Gatewayでできること
| 機能 | 内容 |
|---|---|
| エンドポイント管理 |
/usersや/ordersなどのURLパスを定義 |
| メソッド制御 | GET / POST / PUT / DELETE などHTTPメソッドを設定 |
| 認証 | IAM / Cognito / APIキー によるアクセス制限 |
| スロットリング | リクエスト数の制限(DoS対策) |
| ログ出力 | CloudWatch Logsに記録可能 |
| キャッシュ | レスポンスキャッシュで高速化 |
✅ 代表的な連携先
| バックエンド | 説明 |
|---|---|
| AWS Lambda | サーバレス関数を呼び出す(もっとも一般的) |
| Amazon EC2 | 従来のWebサーバー |
| AWS Elastic Beanstalk | 管理されたアプリ環境 |
| Amazon DynamoDB | 直接DB操作も可能 |
| 任意のHTTPエンドポイント | 外部APIとも連携できる |
✅ 実行の流れ(例:Lambda連携)
- ユーザーが
/registerにリクエストを送信 - API Gateway が受信し、ルーティングを判断
- Lambda 関数を呼び出して処理を実行
- 結果を API Gateway 経由でユーザーに返す
✅ メリット・デメリット
✅ メリット
- サーバ不要でAPIを構築できる(完全サーバレス)
- 認証・ログ・キャッシュなどAPIに必要な機能が全部入り
- オートスケーリング対応(アクセス集中に強い)
⚠ デメリット
- GUIの設定が複雑になりがち(初心者には少し学習コストあり)
- レスポンス遅延(設定ミスや複雑な処理で)
✅ 料金について(ざっくり)
- リクエスト数 × 料金(無料枠あり)
- データ転送量やキャッシュにも課金される場合あり
✅ よくある構成パターン
[ フロントエンド(React / Vue) ]
↓ APIリクエスト
[ API Gateway ]
↓
[ AWS Lambda ]
↓
[ DynamoDB or S3 ]
この構成で、フロントからデータを保存・取得できるサーバレスアプリが簡単に構築できます。
✅ ポイント
- API GatewayはサーバレスAPIのエントリーポイント
- 認証やスロットリングも設定できる
- Lambda連携がよく出題される
- 「REST API」と「WebSocket API」の2種類を使い分ける
✅ まとめ
| 特徴 | 内容 |
|---|---|
| サーバレスAPIの玄関口 | LambdaやバックエンドとHTTPで連携できる |
| 認証・ログ・キャッシュ対応 | APIに必要な機能がワンストップで提供 |
| 他サービスとの組み合わせがカギ | Lambda、S3、DynamoDBとの組み合わせで真価を発揮 |
この記事が、API Gatewayの基本理解に役立てば幸いです!
疑問・コメント・フィードバックなど大歓迎です🙌