1日1%成長する ~Amazon API Gateway~

AWSの学習メモ

AWS API Gateway

API=Application Programming Interface
    => AWS APIGateway = Web API

2005年からWebApiを作成するトレンドは好調
    => なぜ?
    => 集中型から分散コンピューティングの流れがあるのかもしれない

ポイント
    - インフラ管理(可用性やスケーラビリティ)
    - APIの管理(設定やデプロイの制御)
    - 認証と認可(アクセスの制御)
    - 流量制御と保護(スロットリング)-ddosを防ぐとか

全体像
    API Gatewayは玄関口にあたる
    - インターネット
    - 自社企業・企業グループ内でのプライベートなWebAPI
    - AWSサービス例(Amazon DynamoDB等)を独自のWeb API化
    - サーバレスアーキテクチャを実現する手段

    自動スケール、管理不要、従量課金

扱うAPI
    - REST
        - ステートレス
        - 単一HTTPメッセージで1つの操作に関する情報を含む
        - 扱う情報をURIで表現する「リソース」として定義
    - WebSocket
        - ステートフル
        - HTTPの上でクライアントとサーバの間の双方向通信を実現する
        - 1つのコネクションで継続的なデータ送受信が可能
        - URIスキームはセキュアWebSocket用のwss://

RESTのエンドポイント
    - エッジ最適化
        - 一旦エッジロケーションにルーティング
    - リージョン
        - リージョンに直接ルーティング
        - リクエスト元が同一リージョンの場合はレイテンシ削減
        - CloudFrontと組み合わせ可
    - プライベート
        - publicからのアクセスはできず、
         VPC内からAWS PrivateLink = VPCエンドポイント経由でアクセス

ステージ:個別の環境セット
    エンドポイントのURLが異なる
    prod:https://~.execute-api..amazonaws.com/prod/xxxx
    staging:~staging/xxx
    dev:~dev/xxx

API作成
    「既存APIのクローン」or「Swagger(OpenAPI)ファイルインポート」
    Swaggerに関してx-amazon-apigateway-*でAPIgatewayの設定が指定可能
        => エクスポートも可能