APIキャッシュ(TTL・無効化)難易度 標準無料
REST APIのステージにAPI Gatewayのキャッシュを有効化した。キャッシュに関する正しい記述を2つ選べ。
- AステージキャッシュのTTLは0〜3600秒の範囲で設定でき、0に設定すると実質的にキャッシュを無効化できる
- Bキャッシュのサイズ(容量)に関わらず追加コストは一切発生せず、ステージのキャッシュ有効化は常に無料である
- C権限のあるクライアントは
Cache-Control: max-age=0ヘッダーを送ることで、そのリクエストに限りキャッシュをバイパスして最新のレスポンスを取得できる - DキャッシュはAPI全体で1つのTTLしか設定できず、メソッドごとに異なるTTLや無効化タイミングを指定することはできない
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
API Gatewayのステージキャッシュは、バックエンド(Lambda等)への呼び出し回数を減らし、レイテンシとコストを削減する機能である。
- キャッシュはステージ単位で有効化し、TTL(0〜3600秒、既定300秒)を設定できる。TTLを0にするとキャッシュを一時的に無効化(保存はするが即時失効)できる。
- キャッシュキーには、メソッド/統合リクエストのパラメータ(URLパス・クエリ文字列・カスタムヘッダー)のうち、明示的に指定したものだけが含まれる。 クエリ文字列やヘッダーは既定ではキャッシュキーに入らない(リソースにキャッシュを設定する際はキャッシュキーが必須で、最低1つを指定する)。 指定しなかったパラメータは区別されないため、条件の違うリクエストへ同じレスポンスが返る点に注意。
- クライアントは
Cache-Control: max-age=0ヘッダーを送ることでキャッシュをバイパスして最新データを取得できる(ただし呼び出し元にキャッシュ無効化権限=IAMポリシーの許可が必要な場合がある)。 - コンソール/APIから明示的にキャッシュ全体をフラッシュ(invalidate)することも可能。
- キャッシュはリージョンエンドポイントの場合API Gateway自体が管理し、キャッシュサイズ(0.5GB〜237GB)に応じて追加コストが発生する。
- B誤り。キャッシュは選択したキャッシュクラスターのサイズ(0.5GB〜237GB)に応じた時間課金が発生する。
- D誤り。メソッド単位でキャッシュのTTLを上書きしたり、キャッシュキーに含めるパラメータを個別設定することができる。
ひっかけ: 「キャッシュは無料機能でコストが発生しない」という誤解に注意。キャッシュサイズに応じた時間課金が発生する。
また「TTLは最大でも300秒固定」という誤解もあるが、実際は最大3600秒まで設定可能(既定値が300秒なだけ)である。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)