APIセキュリティ入門(3):キャッシュの活用と過度なリクエスト制御

伊東英輝 (アカマイ・テクノロジーズ) 2018年10月19日 06時00分

  • このエントリーをはてなブックマークに追加
  • 印刷

 前回は、APIの認証と認可をスケールする手法について説明した。第3回の本稿では、APIのキャッシュの活用と過度なリクエストを制御する手法について解説しよう。

 エッジでAPIのアクセスを制御するモチベーションの1つがキャッシュであり、特に検索系APIでは有効だ。エッジでAPIキーやJWT(JSON Web Token)を検証し、認可されたリクエストのみがオリジンのAPIサーバにフォワードされるが、毎回オリジンにリクエストが届くと、ユーザー体験が悪くなってしまう。以下に、APIのレスポンスをキャッシュすべき7つの理由を挙げる。

  1. 多くのAPIは読み取りに対するリクエストである
  2. バックエンドのデータベースが変わらなければ応答結果も変わらない
  3. クラウド基盤はIOPSとインスタンスサイズで請求する
  4. ネットワークトラフィックを削減できる
  5. データベースのクエリ/計算コストを削減できる
  6. オリジンのサーバが停止した場合でもキャッシュされたエッジで応答できる
  7. 全体のネットワーク帯域での制約の上限を超えず、正規クライアントからのAPIを拒否しない

 代表的なAPIキャッシュの機能としては次の分類となる。



 上図は、アカマイのAPI GatewayのAPIキャッシュ画面例となる。ドメイン単位だけでなく、リソースパス単位で細かく制御する。画面の設定では、「/add」のリソースパスに対して10分間のキャッシュを行い、オリジンのサーバがダウンしていてもキャッシュからレスポンスを返す。キャッシュキーにはクエリ文字のaとbパラメータが含まれ、内容には正確性を求められるという具合である。

 またドメイン、リソース単位だけでなく、JWTのクレーム(属性情報)の値単位でキャッシュすることもできる。JWTを検証した後、属性に応じて返されるレスポンスがエッジでキャッシュできるとAPIサーバに対するアクセスを削減できる。JWTに関しては認可、キャッシュだけでなく、ルーティングのユースケースもある。クレームの値に応じて、バックエンドのマイクロサービスのルーティングを可変にするようなケースだ。

 なお、仮に全くキャッシュできない動的なコンテンツを返すAPIがあったとしても、Akamaiの場合には「SureRoute」というインターネット網を安定して高速に配信する機能も提供している。

 こうしてエッジでのアクセス制御ができると、キャッシュだけでなくクライアントを意識した流量制御が行える。ある時間軸の中でAPIコンシューマーが作り出すリクエストの量を制限することは、ガバナンスの観点でも重要だ。APIリクエスト数を制御する2つの代表的な方法に「レート制限」と「クォータ管理」がある。両者は似ているが、別の特徴を持つ異なる機能だ。

 レート制御は、想定外のリクエストからインフラを守りながら、通常のクライアントからのAPIリクエストを処理できるようにするのが目的となる。比較的短い時間軸の中で、リクエスト数はカウントされる。一方のクォータ管理は、ビジネス要件からリクエスト数の制約を行い、APIコンシューマーに与えられるリクエスト数をSLAとして定めることに役立つ。比較的長い時間軸の中でリクエスト数はカウントされる。


 上図は、APIに対してクォータとレート制限を公開している例だ。プランに応じて制約が増減する。クォータ管理はビジネス要件のため最上位プランでは無制限にできるが、レート制限はインフラを保護する必要があるため制約は残る。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

  • このエントリーをはてなブックマークに追加

関連ホワイトペーパー

SpecialPR

連載

CIO
月刊 Windows 10移行の心・技・体
ITアナリストが知る日本企業の「ITの盲点」
シェアリングエコノミーの衝撃
デジタル“失敗学”
コンサルティング現場のカラクリ
Rethink Internet:インターネット再考
インシデントをもたらすヒューマンエラー
トランザクションの今昔物語
エリック松永のデジタルIQ道場
研究現場から見たAI
Fintechの正体
米ZDNet編集長Larryの独り言
大木豊成「仕事で使うアップルのトリセツ」
山本雅史「ハードから読み解くITトレンド放談」
田中克己「展望2020年のIT企業」
松岡功「一言もの申す」
松岡功「今週の明言」
内山悟志「IT部門はどこに向かうのか」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
大河原克行「エンプラ徒然」
内製化とユーザー体験の関係
「プロジェクトマネジメント」の解き方
ITは「ひみつ道具」の夢を見る
セキュリティ
セキュリティインシデント対応の現場
エンドポイントセキュリティの4つの「基礎」
企業セキュリティの歩き方
サイバーセキュリティ未来考
ネットワークセキュリティの要諦
セキュリティの論点
スペシャル
エンタープライズAIの隆盛
インシュアテックで変わる保険業界
顧客は勝手に育たない--MAツール導入の心得
「ひとり情シス」の本当のところ
ざっくり解決!SNS担当者お悩み相談室
生産性向上に効くビジネスITツール最前線
ざっくりわかるSNSマーケティング入門
課題解決のためのUI/UX
誰もが開発者になる時代 ~業務システム開発の現場を行く~
「Windows 10」法人導入の手引き
ソフトウェア開発パラダイムの進化
エンタープライズトレンド
10の事情
座談会@ZDNet
Dr.津田のクラウドトップガン対談
Gartner Symposium
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft Inspire
Microsoft Connect()
HPE Discover
Oracle OpenWorld
Dell Technologies World
AWS re:Invent
AWS Summit
PTC LiveWorx
吉田行男「より賢く活用するためのOSS最新動向」
古賀政純「Dockerがもたらすビジネス変革」
中国ビジネス四方山話
ベトナムでビジネス
日本株展望
企業決算
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]