背景
CDNを入れるとレスポンスが速くなるのは周知の通りだと思う。
近くのエッジサーバとTCPハンドシェイク/TLSハンドシェイクを行っても、エッジサーバに置ききれない遠方のリソースにアクセス場合はどうなるのか?が気になったのでキャッシュ情報以外はどうなっているのかを調べてみた。
(マルチリージョンにしろは禁句)
AWSのCloudFrontドキュメントを読んでみる
キープアライブタイムアウトのところに記載がある。
キープアライブタイムアウトは、CloudFront がレスポンスの最後のパケットを取得した後にカスタムオリジンへの接続を維持する時間 (秒) です。持続的接続を維持すると、TCP 接続の再構築に必要な時間と後続のリクエストに対する別の TLS ハンドシェイクの実行に必要な時間を節約できます。キープアライブタイムアウトを増やすと、ディストリビューションの接続あたりのリクエストメトリクスの改善に役立ちます。
つまりエッジサーバとオリジンの間でTCPセッションとTLSセッションを貼りっぱなしにできる模様。
設定次第では改善できるということらしい。
なのでクライアント→エッジサーバへは毎回ハンドシェイクが発生するがその後のエッジサーバ→オリジンではそこが再利用されているということみたい。