やたら長いタイトルになってしまいましたが、API Gatewayに関して、これらの関係がややこしくて最初ものすごく混乱したので、思考整理も兼ねて、簡単にまとめておきます。
API Gateway
AWSの提供するAPIを作成・管理などするためのサービス。
API Gatewayにまつわる基本的な事柄は、
- Amazon API Gateway とは何ですか? | aws - デベロッパーガイド
- API Gateway のユースケース | aws - デベロッパーガイド
- Amazon API Gateway の概念 | aws - デベロッパーガイド
あたりを参照。
API Gatewayの種類
API Gatewayには、以下の2カテゴリ3種類あります。
ステートレス
- REST API
- HTTP API
ステートフル
- WebSocket API
補足説明など
図を使ってカテゴライズすると以下のような感じ。
コチラのページなどでREST APIとHTTP APIのみ比較がなされていますが、この2つが同じステートレスのため。
機能重視ならREST API、コスト重視ならHTTP APIといったところでしょうか。
API Gateway V1 および V2 API
公式サイトでは、このページとかに出てくるやつ。
名前からしてややこしいですが、、API Gateway APIは、API Gatewayを操作、すなわち、作成・更新・削除などするためのAPIのこと。
V1(Version1)とV2(Version2)があり、それぞれ以下のような違いがあります。
API Gateway Version 1 API
API Gatewayのうち、REST APIを操作するためのもの
リファレンスは、コチラ
API Gateway Version 2 API
API Gatewayのうち、HTTP API、WebSocket APIを操作するためのもの
リファレンスは、コチラ
補足説明など
Versionによって操作できるAPIの種類が違うというわけですね。
なお、IaCサービスであるCloudFormationやTerraformにおいても、API同様、
- V1(無印): REST APIを操作するためのもの
- V2: HTTP API、WebSocket APIを操作するためのもの
となっています。
API Gateway APIの拡張的なポジションかと思うので、当たり前かもですが、、
まとめ
ここまでの内容を表にまとめると、以下のようになります。
カテゴリ | 用途 | 操作用APIのVersion | |
---|---|---|---|
REST API | ステートレス | 機能重視 | Version 1 |
HTTP API | ステートレス | コスト重視 | Version 2 |
WebSocket API | ステートフル | 双方向通信 | Version 2 |
ここでREST APIに焦点を当てると、Version1 → 古いので非推奨、ではなく、昔からある重鎮といった感じですね。
終わりに
上記の内容ですらややこしいのに、独自の概念も相まって、なかなかとっつきにくい、、
概念に関しては、
が、とてもわかりやすかったので、一度見てみるとよいかと。