0
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取得に向けた勉強の一環です。
新たな学びがあったら随時追記していきます。

正確性は保証しませんので参考程度に見てください。

概要

  • Webアプリで使われるインターフェースサービス
  • APIの作成、保護、公開、モニタリングを簡単に行える
  • REST API・HTTP API・WebSocket APIをサポート

APIの種類

  • HTTP API
    • APIプロキシ機能のみを必要とするAPIの構築に最適
  • REST API
    • HTTP APIに加えて、管理機能も使用したい時に使用する
  • REST API(プライベート)
    • VPC内からのみアクセス可能
  • WebSocket API
    • バックエンドサービスとクライアント間で永続的な接続を維持する
    • リアルタイム双方向通信アプリケーションに使用される

エンドポイント

  • 環境ごとに作成される(prod, devなど)
  • タイプ
    • エッジ最適化:エッジロケーションを使用
    • リージョン別
    • プライベート:特定VPCから使用する場合

リクエスト・レスポンス処理

  • 指標
    • リクエスト数:単位時間当たりのリクエスト数
    • スロットリング:最大秒間リクエスト数、超えるとスロットル(リクエストを制御すること)、デフォルトで1万回/秒
    • クォータ:APIキーごとのリクエスト上限
  • リクエスト/レスポンスの変換(マッピングテンプレート)
    • バックエンドとクライアントがそれぞれ処理できる形に変換する
  • 指数バックオフ Exponential backoff
    • スロットリングエラーや5xxエラー発生時の再試行ロジック
    • エラー後の再試行までの待機時間を指数関数的に増やしていく
    • 不必要なリクエストを減らす目的

統合(バックエンドとの接続)

  • Lambda統合
    • Lambda関数がリクエストを処理
    • Lambdaプロキシ統合
      • よりシンプルな方法
      • API Gatewayの役割が少ない
      • リクエストの解析やレスポンスの生成をLambda側で行う
  • HTTP統合
    • HTTPベースのバックエンドがある場合に使用(EC2など)
  • プライベート統合
    • VPC内にあるリソースをにリクエストを渡す
    • VPCリンクを使用する
  • Mock
    • バックエンドと統合せずに固定のレスポンスを返す
    • 主にテスト用
  • AWSサービス統合
    • DynamoDB、S3など

その他の機能

  • 使用量プラン
    • APIキーごとにリクエスト数やスロットリングを制限できる
    • 無料プラン・有料プランのユーザーによって使用量を変えられる
  • キャッシング

セキュリティ

  • クライアント証明書の作成・検証が可能
  • 認証
    • IAM認証
    • Cognitoオーソライザー(ユーザープール認証)
    • カスタムオーソライザー(Lambdaオーソライザー)
  • CORS(Cross-Origin Resource Sharing)の設定
  • WAF(Web Application Firewall)との連携

課金体系

  • リクエスト料金とデータ転送料金
  • キャッシュ利用時にも課金される
0
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
0
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?