1. はじめに(挨拶)
皆さんこんにちは
現在、AWSSAP資格の取得を目指して勉強中なのですが、学習の中で初めて知って衝撃を受けたことがあります。
それは、API Gatewayは、Lambdaを介さなくてもS3やDynamoDB、Kinesisといったサービスと直接接続できるということです。
今回はその内容をまとめていきたいと思います。
2. API Gatewayの概要
「API Gatewayは、一言で言うとマネージド型のAPI管理サービスです。
主な役割としては、以下の通りです:
- APIの公開とエンドポイント管理: 独自のURL(エンドポイント)を発行し、外部のアプリやブラウザからバックエンドの機能を使えるようにする
- 認証・認可: IAMやCognitoと連携して『誰がアクセスできるか』を管理する
- トラフィック管理: リクエストの量を制限(スロットリング)してバックエンドを守る
このように、外部からのリクエストを一手に引き受けて、適切な場所へ受け流す役割を担っています。
3. 本題
よくあるチュートリアルなどでは必ずと言っていいほどバックエンドにAWS Lambdaが設定されています。そのため、『API Gatewayを使うなら、処理ロジックを書くためにLambdaが必須』だと思い込んでいました。
しかし、API Gatewayには『AWSサービス統合』という特定のサービスを直接叩くことができる機能があります。
この機能を使うことでLambdaを挟まずに、直接他のサービスへリダイレクトさせることができるため、「低レイテンシ」「Lambda料金ゼロ」なアーキテクチャが実現可能になります。
4. 各サービスとの連携でできること
① API Gateway × DynamoDB
データの読み書きを最速・最安で行えます。
- できること:
- ユーザーIDをキーにした単純なプロフィール情報の取得。
- IoTデバイスからのセンサーデータの高速な書き込み。
など
② API Gateway × S3
S3をただのストレージではなく、APIのバックエンドとして扱えます。
- できること:
- 特定の認証を通したユーザーへのファイルダウンロード提供。
- バケット名やフォルダ構成を隠蔽したままのファイル公開。
③ API Gateway × Kinesis Data Streams
大量のデータをLambdaを挟まずにストリームへ流し込めます。
- できること:
- 高トラフィックなアプリからの行動ログ収集。
- リアルタイム分析基盤への入り口。
5. まとめ
AWS SAP資格試験の観点からまとめると、複雑な処理や複数テーブルの参照が必要な場合はLambdaを使うのが正解ですが、
ただデータを置きたい、取りたいという単純な用途なら、このAWSサービス統合が選択肢になる可能性が高いと思います。