APIGatewayは本当に便利なのか
- 1.APIGatewayとは
- 2.API機能について
- 2-1.機能詳細
- 2-2.メリットデメリット
- 3.APIタイプ
- 4.まとめ
1.APIGatewayとは
APIを一括で管理、作成できてしまうものです。
APIの公開、バージョン管理をまとめて行うことが出来ます。
また、認証やレスポンスのモニタリング等も行うことが出来るので
管理者の負担を激減させることが出来ます。
そもそもAPI(Application Programming Interface)とは、
ソフトウェアもコンポーネントが相互に使用するためのインターフェースを指します。
つまり、人の作ったものを利用して自分のものを楽につくっちゃおうということです。
2.API機能について
2-1.機能詳細
上図で示した通り、LabdaやEC2、アプリケーションを通す前に
APIGatewayは位置しています。
本質は「クライアントからリクエストを受け取ってバックエンドに渡す、
バックエンドからレスポンスを受け取ってクライアントに返す」
ですので、それを意識すれば理解できると思います。
2-2.メリットデメリット
-
セキュリティ管理
一つ一つのリソース(Labda,EC2等)に認証等を行いセキュリティの向上を行うより、APIGatewayで認証を行えば効率がいいと思いませんか?
IAM(AWS Identity and Access Management)とAmazon Cognitoを使用して
APIへのアクセスを制限することがきます。 -
モニタリングによる監視
Amazon CloudWatchと連携し各リソースの監視や、
ログを収集、分析などをすることができます。 -
バージョン管理
APIGatewayは複数のバージョンを管理できます。 -
コスト削減
基本的には受信したAPIコールの分だけ料金が発生します。
※WebSocket APIは転送されたメッセージと接続時間に対して利用料金が発生します。
CloudWatchの利用も含め無料で扱える利用枠も存在するので一度利用してみるのもありでしょう
3.ユースケース
3-1 3つのAPI
AWSが提供しているAPIには3つのタイプがあります。
・REST API
特徴として、データ形式はJSON,通信の処理はHTTPメソッド利用し、
ステートレスな設定となっています。
役割 | 意味 |
---|---|
POST | URIをもとにリソースを作成 |
GET | リソースをもとに詳細情報取得 |
PUT | リソース変更 |
DELETE | リソース消去 |
REST APIをAPI Gatewayを用いて作成する際には2種類さらにわかれています。
パブリック(オープン)APIとプライベートAPIです。
プライベートAPIはパブリックから接続が出来ないAPIです。
他のアカウントから接続できないとは思いこまないようにしてください。
VPIエンドポイントを持っていれば共通して利用することが出来るのです。
使用する際はVPCエンドポイントで絞る等のセキュリティをかけてください。
・HTTP API
HTTP APIはREST APIの後に作成されました。
REST APIの一部の機能だけを使い低レイテンシー且つコスト削減に適しています。
また、呼び出し先がLambdaもしくはHTTPプロキシのみとなっています。
・Websocket API
そもそもWebsocketとはブラウザとウェブサーバ間の双方向の通信を規格化したものです。
リアルタイム通信ともいわれており、高速に通信が必要な場合に使用します。
4.まとめ
API Gatewayはフルマネージド型のサービスであり、
自動でスケールを行い仮想サーバを管理してくれるサービスです。
使用量に応じた料金が課せられますが、管理費用と比べるまでもないでしょう。
またリクエスト/レスポンスなどの構成要素も標準化されており、
認証機能やWAF連携によりセキュリティの向上にも繋がっています。
参考
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/welcome.html
https://docs.aws.amazon.com/apigateway/index.html