SureRoute は、エッジ → オリジン間で直接経路と他のエッジを経由する経路を比べ、速い経路を使う機能。
① ユーザー ──GET(キャッシュ不可)──▶ エッジ ──現在の主経路──▶ オリジン
ユーザー ◀──────────── レスポンス ────────────────────────┘
│ 応答を返したあと、裏で race 開始
▼
② エッジ ─┬─ 経路 A ─────────────────────────▶ オリジンの SRTO を取得
├─ 経路 B ─▶ 中継エッジ ────────────▶ 〃
└─ 経路 C ─▶ 中継エッジ ────────────▶ 〃
│ 3 経路に同時にリクエストし、一番速く取れた経路が勝ち
▼
③ 勝った経路を主経路にする(Cache Life for Race Results の間、次の race まで使う)
▼
④ 以降のキャッシュ不可リクエストは主経路でオリジンへ
- 経路の比較(race): キャッシュされないリクエストを処理したあと、エッジが 3 経路で同時に SureRoute Test Object(SRTO)をオリジンから取得し、最も速い経路を採用する
- 結果は
race_stat_ttl(通常 30 分)保持され、その間は勝った経路を使う - SRTO の要件: 同じオリジン上の静的ファイル(8KB 以上)、200 を返す、認証不要、バックエンド処理なし
- キャッシュされるコンテンツはエッジから返るので race は起きない。効くのは動的コンテンツ
参考: https://techdocs.akamai.com/api-acceleration/docs/setup-sureroute-test-object