1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS DVA対策メモ(API GateWay)

Last updated at Posted at 2025-01-14

AWS API GateWay

AWS DVA対策のために、ChatGTPで聞いたことをメモリます。

AWS API Gateway REST API, WebSocket API, HTTP API 比較

AWS API Gatewayは、アプリケーションやサービス間の通信を管理するための機能を提供します。ここでは、REST APIWebSocket APIHTTP APIの特徴を比較表でまとめます。


AWS API Gatewayの比較表

特徴 REST API WebSocket API HTTP API
目的 リクエスト/レスポンスモデルを使用したRESTful通信 双方向通信、リアルタイムなデータ交換に最適 シンプルで低レイテンシなHTTPベースのAPI
ユースケース - RESTful API設計
- サーバレスアプリケーション
- チャットアプリ
- リアルタイム通知
- CRUDアプリケーション
- シンプルなHTTP通信
プロトコル HTTP 1.1/HTTPS WebSocket HTTP 1.1/HTTPS
認証 - AWS IAM
- APIキー
- Cognitoユーザープール
- AWS IAM
- Cognitoユーザープール
- AWS IAM
- Cognitoユーザープール
バックエンド経由 - Lambda関数
- HTTP経由
- AWSサービス経由
- Lambda関数 - Lambda関数
- HTTP経由
- AWSサービス経由
ステート管理 ステートレス ステートフル ステートレス
スロットリングと割り当て 対応 非対応 対応
キャッシュ レスポンスのキャッシュをサポート 非対応 非対応
料金 高め 中程度 REST APIより安価
開発の柔軟性 高機能(リクエスト/レスポンスの変換など) 双方向通信に特化 シンプルで高速
リアルタイム性 非対応 対応 非対応
対応するAWSリージョン グローバル グローバル グローバル

選び方のポイント

1. REST API

  • 複雑なリクエスト/レスポンスモデルや詳細なカスタマイズが必要な場合に適しています。
  • 料金は高めですが、高機能を提供します。

2. WebSocket API

  • チャットやリアルタイム更新など、双方向通信が必要なアプリケーションに最適です。
  • 通信状態を維持するため、クライアントとサーバー間の接続を続けます。

3. HTTP API

  • シンプルなAPI設計に適し、低レイテンシでコストパフォーマンスが良いです。
  • REST APIの代替として使用可能ですが、一部機能は限定的です(例: キャッシュ非対応)。

REST APIのエンドポイントタイプ

エンドポイントタイプ 特徴 主なユースケース
エッジ最適化 (Edge-Optimized) CloudFrontを使用してグローバルに最適化されたエンドポイントを提供。
低レイテンシ通信が可能。
グローバルなユーザー向けのAPI
リージョン (Regional) 特定のAWSリージョン内で直接アクセス可能。 同一リージョン内のアプリケーションやサービス間通信
プライベート (Private) VPCリンクを使用して、VPC内のリソースにアクセス可能。 セキュアな社内システムやバックエンドの統合

REST APIの定義項目

項目 説明
リソース APIで扱うエンドポイント(例: /users/orders)。
メソッド 各リソースに対して実行可能なHTTPメソッド(例: GET, POST, PUT, DELETE)。
メソッドリクエスト クライアントからの入力を定義し、認証やバリデーションを設定。
統合リクエスト バックエンドと連携するための設定(例: Lambda統合、HTTP統合)。
統合レスポンス バックエンドからのレスポンスを加工し、クライアントに返すレスポンスを定義。
メソッドレスポンス クライアントに返されるレスポンス(ステータスコードやレスポンスヘッダーなど)。
モデル リクエストやレスポンスのペイロードを定義するスキーマ(JSON形式)。
ステージ APIのデプロイメント環境(例: dev(開発環境)、prod(本番環境))。
オーソライザー APIの認証を設定するための機能(例: Lambdaオーソライザー、Cognitoユーザープール)。

WebSoket APIのエンドポイント

エンドポイントタイプ 説明 主なユースケース
リージョン (Regional) 特定のAWSリージョン内でWebSocket接続を提供。 同一リージョン内での低レイテンシ通信が求められる場合
プライベート (Private) VPCリンクを使用して、VPC内のリソースにアクセス可能なセキュアなWebSocket接続を提供。 内部システムやセキュアなネットワーク内での通信

WebSoket APIの設定項目

項目 説明
ルート選択式 クライアントリクエストをどのルートにルーティングするかを決定するための式(例: $request.body.action)。
ルート クライアントのリクエストに基づいて実行されるロジックを定義(例: $connect, $disconnect, $default)。
統合 各ルートとバックエンド(例: Lambda関数、HTTPエンドポイントなど)を統合する設定。
ステージ WebSocket APIのデプロイメント環境(例: dev(開発環境)、prod(本番環境))。

HTTP API設定項目

項目 説明
ルート クライアントリクエストを特定のバックエンドリソースにルーティングするための設定(例: /users, /orders)。
統合 各ルートとバックエンド(例: Lambda関数、HTTPエンドポイント、AWSサービス)を統合する設定。
ステージ HTTP APIのデプロイメント環境(例: dev(開発環境)、prod(本番環境))。

認証方法

認証方法 説明 主なユースケース 利用可能なAPI種類
IAMアクセス権限 AWS IAMポリシーを使用して、リクエストを認証および許可します。 APIをAWSサービスやIAMユーザーで保護する場合 REST API, WebSocket API, HTTP API
Lambdaオーソライザー カスタムロジックをLambda関数で実装し、リクエストを認証および許可します。 特定の認証スキームやカスタムヘッダー認証を使用する場合 REST API, WebSocket API, HTTP API
Cognitoオーソライザー Amazon Cognitoユーザープールを使用して、OAuth2.0やOpenID Connectを利用した認証を提供します。 アプリケーションユーザー向けの認証を簡単に設定する場合 REST API, WebSocket API, HTTP API
JWTオーソライザー JSON Web Token(JWT)を解析し、認証情報を検証します。 外部IDプロバイダーやカスタムトークン認証を使用する場合 HTTP API
相互TLS認証 クライアント証明書を使用してリクエストの認証を行います。 高度にセキュアな通信が求められる場合 REST API, HTTP API
スロットリング 1秒あたりのリクエスト数やリクエストの上限を設定して、過負荷を防ぎます。 APIの可用性とパフォーマンスを維持する場合 REST API, HTTP API

その他API機能

機能 説明 対応API
APIキャッシュ レスポンスをキャッシュしてバックエンドへのリクエスト回数を削減。 REST API のみ
カナリアリリース 新しいバージョンを段階的にリリースしてテスト可能。 REST API, HTTP API
WAF連携 悪意のあるリクエストをフィルタリングしてAPIを保護。 REST API, HTTP API
監視連携 CloudWatchやX-Rayと連携してパフォーマンスと使用状況を監視。 REST API, WebSocket API, HTTP API
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?