CloudFront で接続したパスごとに設定を変えたい場合の実装方法をメモ書きします。
今回はパスごとに接続タイムアウト時間を制御する方法について記載します。
具体的にいうと、www.example.com/post/page1
にアクセスして接続できなかった場合は50秒でタイムアウトし、その他のwww.example.com/post/page2
やwww.example.com/post/page3
などに接続する際は30秒でタイムアウトするといった設定を行います。
手順
AWSのCloudFrontにアクセスして、同じオリジンドメインにアクセスするオリジンを作成します。
今回は黒帯
の方には全パス共通の設定を行い、
青帯
の方には特定のパス(今回は/post/page1)にアクセスした際の設定を行います。
画面右上の「オリジンの作成」からオリジンを作成できます。
オリジン名は任意の名前を設定。
オリジンドメインは共通機器(DNS 名※1)を設定します。
※1 ELB、EC2 などのDNS 名。ELB、EC2を作成すると自動で付与される。
プロトコルやヘッダーの設定を行ったら、ページの一番下にある「追加設定」で「レスポンスタイムアウト」を設定します。
今回は黒帯
(全パス共通)はの方はデフォルトの30秒。青帯
(/post/page1)の方は50秒でタイムアウトするよう設定してみます。(※2)
※2 「レスポンスタイムアウト」はデフォルトでは60秒までしか延長できません。上限を緩和する方法は次の記事にまとめています。【AWS】CloudFront の上限緩和申請を行う方法
オリジンの作成が完了したら、次は「ビヘイビア」の設定を行います。
「ビヘイビアの作成」からビヘイビアの作成を行えます。
まず黒帯
の方から作成します。
こちらは「パスターン」を 「デフォルト (*)」に設定し、「オリジンとオリジングループ 」には先ほど作成した黒帯用のオリジン名を設定します。
「ビューワー」、「キャッシュキーとオリジンリクエスト」には任意の設定を行います。
次に青帯
の方を作成します。
こちらは「パスターン」を 「/post/page1」に設定し、「オリジンとオリジングループ 」には先ほど作成した青帯用のオリジン名を設定します。
「ビューワー」、「キャッシュキーとオリジンリクエスト」には任意の設定を行います。(今回は黒帯のものと同じ設定を行います)
設定を保存すると、上記「ビヘイビア」の画像と同じ状態となりますので、パスターン「/post/page1」の優先順位0がとなっていることを確認します。
これでwww.example.com/post/page1
にアクセスした際の接続タイムアウト時間は50秒となり、www.example.com/post/page2
やwww.example.com/post/page3
に接続した際は30秒でタイムアウトするような設定が行えています。