はじめに
ソリューションアーキテクトに求められる視点を整理してみました。
今回は、API の使用を制御および制限する方法です。実務や試験で、ご参考にして頂けましたら、幸いです。
アーキテクトに求められる視点
Amazon API Gateway API を作成し、その API を外部の開発チームと共有している。
API は AWS Lambda 関数を使用し、本番ステージにデプロイされている。
API の使用量は特定の時間に急増し、コスト増加の懸念が生じている。
Lambda 関数を作り直すことなく、コストと使用量を制限する必要がある。
ソリューション
API Gateway API キーと使用プランを作成する。使用プランでスロットル制限とクォータを定義する。使用プランを本番ステージと API キーに関連付ける。API キーを外部開発チームと共有する。
API キーと使用プランを作成すると、API の使用を制御および制限できます。使用プランでは、スロットリング制限 (1 秒あたりのリクエスト数) とクォータ (1 日または 1 か月あたりのリクエスト数の合計) を定義できます。使用プランをプロダクション ステージと API キーに関連付けることで、外部開発チームにこれらの制限を適用し、API の使用量が目的の範囲内に収まるようにすることができます。このアプローチは、使用量の急激な増加の懸念に直接対処し、既存の Lambda 関数や全体的なアーキテクチャを変更することなくコストを管理するのに役立ちます。
AWS API GatewayのAPIキーと使用量プランは、APIのアクセス制御とリソースの管理に役立つ機能です。これらを使用することで、APIの利用を制限し、特定のユーザーやアプリケーションに対して異なる使用量制限を設定することができます。
AWS API GatewayのAPIキーと使用量プランを使用することで、APIのアクセス制御、トラフィック管理、コスト管理が可能になります。これにより、APIの利用を効率的に管理し、セキュリティを強化し、リソースの最適化を図ることができます。
APIキー
APIキーは、API GatewayでAPIを呼び出す際に必要となる一意の識別子です。APIキーを使用することで、特定のユーザーやアプリケーションに対してAPIのアクセスを制御できます。
特徴
- アクセス制御 APIキーを使用して、特定のユーザーやアプリケーションに対してAPIのアクセスを制御できます。
- トラフィック管理 APIキーを使用することで、APIの利用状況を監視し、トラフィックを管理できます。
- セキュリティ APIキーを使用することで、APIへの不正アクセスを防ぎ、セキュリティを強化できます。
使用量プラン
使用量プランは、APIの利用に対して制限を設定するための機能です。使用量プランを使用することで、特定のユーザーやアプリケーションに対して異なる使用量制限を設定できます。
特徴
- 使用量制限 使用量プランを使用して、APIの利用に対して制限を設定できます。例えば、1日あたりのリクエスト数や1分あたりのリクエスト数を制限できます。
- トラフィック管理 使用量プランを使用することで、APIの利用状況を監視し、トラフィックを管理できます。
- コスト管理 使用量プランを使用することで、APIの利用に対するコストを管理し、予算内での運用が可能になります。
使用例
1. 開発者向けのAPIアクセス制御
APIを提供する企業が、開発者向けに異なる使用量制限を設定する場合に、APIキーと使用量プランを使用します。例えば、無料プランの開発者には1日あたり1000リクエスト、プレミアムプランの開発者には1日あたり10000リクエストを許可することができます。
2. APIの利用状況の監視と管理
APIの利用状況を監視し、特定のユーザーやアプリケーションが過剰にリクエストを送信していないかを確認するために、APIキーと使用量プランを使用します。これにより、APIのパフォーマンスを維持し、リソースの無駄遣いを防ぐことができます。
3. コスト管理
APIの利用に対するコストを管理するために、使用量プランを使用します。例えば、特定の使用量を超えた場合に追加料金を請求することで、予算内での運用を確保できます。
参考資料 API GatewayのAPIキーと使用量プランについて調べてみた