CloudFrontはCDNとして簡単に導入できるAWSの強力なサービスです。
強力なサービスですが、使い方のパターンや設定項目も多く、ネットワーク周りの知見が必要に感じます。
今回は、CloudFrontを前段に設置して、User-agentを確認すると、“Amazon CloudFront”になってしまう問題があり、記録しておきます。
対応方法
結論として、CloudFrontの動作(Behavior)にてWhitelist Headers に User-agentを追加しておくことで、User-agentが引き継がれます。
ただし、この設定をしてしまうと、User-agentごとにキャッシュが別になり、キャッシュ効率が悪くなってしまう為、以下のヘッダーを指定する事が推奨されております。
1 2 3 4 |
CloudFront-Is-Desktop-Viewer CloudFront-Is-Mobile-Viewer CloudFront-Is-SmartTV-Viewer CloudFront-Is-Tablet-Viewer |
通常、webサービス側のCSSでUser-agentの判定を行う事があります。そういった場合の為に、User-agentを全部CloudFrontでスルーしてしまうと、先に述べたようにキャッシュ効率が悪くなるので、上記の準備された4種のヘッダーを使う事で、4種まで絞られて効率化が図れます。
ただし、この4種より詳しく判断したい場合は、User-agentをWhitelist Headersに入れて判定するしかなさそうです。
CloudFrontまとめ記事
以下にまとめました。