2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

インフラエンジニアでなくても頭の片隅に置いておきたい、AWS CloudFrontの設定で要注意なこと

Posted at

この記事で伝えたいこと

会員登録のあるサイトでは、CloudFrontのキャッシュポリシーは「Caching Disabled」にすること。さもないとユーザ間でセッション情報が共有されてしまう可能性がある。この問題が見つかった時に検索してもなかなか情報にたどり着かなかったので書き残しておきます。

※解決された方は筆者ではありません。(筆者はAWSについては全く詳しくないです)

経緯

Laravelによる新規ECサイト開発の中盤で発覚。テスト環境を複数人が操作していた時に、カートの中身がいつの間にか変わっている現象がたまに起こりました。カートの中身だけでなく、マイページで情報を参照したら他人のアカウントでいつの間にかログインしていることになっていました。どうやら複数人で同時にAuthを同じルートで参照することで後にアクセスした人がその前にアクセスした人のユーザ情報を参照してしまうようでした。

解決

結局は最初に書いたようにCloudFrontのキャッシュポリシーの初期設定が「Caching Disabled」になっていなかったことで意図せずユーザ情報をキャッシュしてしまっていたことが原因でした。が、答えにたどり着くまで2週間強もの間、・Authの呼び出し方が悪いのかも ・Routeの設定が悪いのかも とLaravelのロジック側の問題ではないかとも考え既存のコードの修正を何回も行い、またはAWSのセッション管理の設定が悪いのではとRedisに切り替えなどで先輩のエンジニアたちが時間を溶かしました。なぜセッションが共有されてしまうのか、検索しても答えにたどり着かなかったのです。

備忘録としてここに記します。Amazon CloudFront のキャッシュポリシーは「Caching Disabled」にしないと、セッション情報が共有されてしまう場合がある、と。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?