はじめに
AWS API Gatewayは、APIを作成、管理、保護するためのサービスです。
API Gatewayでは次の4つのタイプが提供されています。
- HTTP API
- REST API
- WebSocket API
- REST APIプライベート
今回はHTTP APIとREST APIを取り上げ、それぞれのAPIタイプの違いと選択基準について説明します。
1. HTTP API
1.1 概要
HTTP APIは、シンプルで低レイテンシなHTTPリクエストの処理に最適化されたAPIタイプです。
主に、迅速な開発と低コストを重視する場合に適しています。
1.2 特徴
- 低コスト: HTTP APIは、従量課金制であり、REST APIよりも一般的にコストが低くなります。
- 低レイテンシ: 高速なレスポンスが期待でき、サーバーレスアーキテクチャに最適です。
- 簡素な設定: APIの作成と管理が簡単で、少ない設定項目で済みます。
- Lambda統合: Lambda関数との統合が簡単に設定できる。
- WebSocketサポート: HTTP APIではWebSocket APIがサポートされています。
1.3 適用例
- シンプルなAPIエンドポイント
- マイクロサービスのエンドポイント
- リアルタイムアプリケーションのバックエンド
2. REST API
2.1 概要
REST APIは、より複雑なAPI管理と機能を提供するAPIタイプです。
詳細な設定オプションや、リソースベースのAPI設計を必要とする場合に最適です。
2.2 特徴
- 高機能: 詳細なキャッシュ設定、バージョニング、リソースポリシーなどの高機能な設定が可能です。
- 認証と承認: IAMポリシー、Cognitoユーザープール、カスタムオーソライザーなど、多様な認証オプションがあります。
- リソースベースの設計: リソースごとのメソッド設定や、詳細なエラーハンドリングが可能です。
- API Gatewayコンソール: 詳細なデバッグ情報やトラフィック分析機能が提供されます。
2.3 適用例
- 複雑なAPIエンドポイント
- 高度な認証や承認が必要なAPI
- リソースやメソッドの詳細な制御が必要な場合
3. 比較まとめ
特徴 | HTTP API | REST API |
---|---|---|
コスト | 低コスト | 高コスト |
レイテンシ | 低レイテンシ | 通常のレイテンシ |
機能 | 基本的な機能 | 高度な機能(キャッシュ、バージョニング等) |
設定の簡便さ | 簡単 | 詳細な設定が必要 |
認証 | Lambda、IAM | Lambda、IAM、Cognito、カスタムオーソライザー |
4. どちらを選ぶべきか?
- シンプルなAPIエンドポイントや低コストを重視する場合は、HTTP APIが適しています。
- 複雑なAPIや詳細な認証設定、リソースごとの管理が必要な場合は、REST APIを選択するのが良いでしょう。
5. まとめ
AWS API Gatewayでは、HTTP APIとREST APIの2つのAPIタイプが提供されており、それぞれ異なる機能と特徴があります。
ニーズに応じて適切なAPIタイプを選ぶことになりますが、簡単に言うと要件が少なくシンプルなものでいいのであればHTTP API、複雑で高度な設定を要するものであればREST APIを選ぶことになると思います。