tapitapi’s blog

1日1杯タピオカ!エンジニア

【AWS CloudFront】URLクエリを許可する

CloudFrontでシステム構築の際、URLクエリ(http://example.com/blogs?id=1131 などの?id=1131の部分)を使用するシステムが上手く動かないぞ??ローカルでは上手くいってるのに、、、

 

-> CloudFrontの設定でURLクエリを許可する必要があることが分かったので、やり方を紹介します。

 

以下では、ユーザに、AWSのIAMでCloudFrontの実行権限を割当してある前提で進めます。

 

1. CloudFrontのサービスを選び、[Behaviors (動作)]タブ を選択

Query String Forwarding and Cachingの部分を変更する。

 

 *初期設定は[None(Improves Caching)]

f:id:kayo445:20200529105909p:plain

 

これは、URLクエリを受け付けない設定なので、

http://example.com/blogs?id=1131

http://example.com/blogsとして、CloudFrontに紐付けてあるシステム([Origins and Origins Groupsで指定したシステム])に渡されてしまいます。

 

*[Foward all, cache based on whitelist]を選択

f:id:kayo445:20200529110011p:plain

 

これは、上記の[Query String Whitelist]に記載したクエリのみ受け付けます。

例えば、idをQuery String Whitelistに記載すれば、 

id=XXXのクエリのみCloudFrontに紐付けてあるシステムに渡され、それ以外のクエリは渡されなくなります。

 

*[Foward all, cache based on all]を選択

f:id:kayo445:20200529110026p:plain

 

f:id:kayo445:20200529113610p:plain

全てのクエリがCloudFrontに紐付けてあるシステムに渡されます。

 

 

 公式リファレンス

docs.aws.amazon.com

 

以上ですーーー!!

 

[Foward all, cache based on whitelist]か[Foward all, cache based on all]を使うといいと思います!

負荷を軽くしたいなら、[None(Improves Caching)]にするのがいいみたいです!なので、URLクエリを使わないシステムなら、デフォルトの[None(Improves Caching)]のままでOK~~~

 

おやすみなさいぃぃぃ