本ページは、AWS に関する個人の勉強および勉強会で使用することを目的に、AWS ドキュメントなどを参照し作成しておりますが、記載の誤り等が含まれる場合がございます。
最新の情報については、AWS 公式ドキュメントをご参照ください。
あらゆる規模の REST、HTTP、および WebSocket API を作成、公開、維持、モニタリング、およびセキュア化するための AWS のサービスです。 簡単にいうと、API の管理や実行を容易にしてくれる AWS のフルマネージドサービスです。
API のバージョン管理、レスポンスのモニタリング、認証などの機能が揃っているので、開発工数の大幅な削減が期待できます。
また、AWS Lambda と連携すれば、手軽にサーバーレスでの API が構築可能になります。
【AWS Black Belt Online Seminar】Amazon API Gateway(YouTube)(50:34)
利用する API Gateway の種類で異なります。
HTTP API では API コール数、REST API では API コール数とキャッシュメモリサイズ、WebSocket API では メッセージ転送回数と接続時間で課金されます。
OpenAPI v2.0 および OpenAPI v3.0 定義ファイルをサポートしており、インポートすることで既存の API 定義をそのまま移行したり、新しい API を構築することができます。
Swagger を利用して API の管理を行い、API Gateway にインポートすることもできます。
リクエストやレスポンスに影響する主なクォーターは次の通りです。
それ以外については、ドキュメントを参照してください。
Amazon API Gateway のクォータと重要な注意点
項目 | Quota | 引き上げ |
最大統合タイムアウト | 30 秒 | いいえ |
リクエスト行とヘッダー値の合計サイズ | 10,240 バイト | いいえ |
ペイロードサイズ | 10 MB | いいえ |
項目 | Quota | 引き上げ |
統合のタイムアウト | 50 ミリ秒〜29 秒 | 下限または上限には適用外 |
すべてのヘッダー値の合計サイズ | 10,240 バイト | いいえ |
ペイロードサイズ | 10 MB | いいえ |
項目 | Quota | 引き上げ |
WebSocket API の接続時間 | 2 時間 | いいえ |
アイドル接続のタイムアウト | 10 分 | いいえ |
WebSocket のフレームサイズ | 32 KB | いいえ |
メッセージのペイロードサイズ | 128 KB | いいえ |
REST API は、3 種類のエンドポイントタイプが選択できます。
リージョン
にしておきます。エッジ最適化
を選択していると、自前の CloudFront から、AWS が管理する CloudFront を経由して、API Gateway にアクセスすることになり、不要なレイテンシが発生したり、HTTP ヘッダーが予期しない値となったりするので注意が必要です。CloudFront を経由すると一部のヘッダーを書き換えます。自前の CloudFront はこれを回避することができますが、AWS が管理する CloudFront は設定を行うことが出来ません。 以下のメトリクスを監視することを検討してください。
Latency
= API Gateway のオーバーヘッド + IntegrationLatency
Average
にすると、エラー率になります。つまり、期間内のエラー数を Count メトリクスで割ったものです。その他、API Gateway の種類によって異なるメトリクスを取得できるので、必要に応じて監視を検討します。
X-Ray を使用した REST API へのユーザーリクエストのトレース
「X-Ray トレースの有効化」とするだけで簡単に各サービスへの流れをトレースして可視化することができます。