LoginSignup
1
1

More than 1 year has passed since last update.

【CloudFront】オリジンパスとパスルールがごっちゃになったのでメモ

Last updated at Posted at 2022-02-18

CloudFrontのオリジンパスとパスルールがごっちゃになったのでメモ

オリジンパスもパスルールも値としてパスを指定するので、
初見だとどっちがどっちかごっちゃになっちゃったので備忘録として

  • 前提:
    • staticというバケット内にphoto1.jpgというアクセスさせたい静的ファイルを配置
    • URLの末尾が /* (デフォルト)の場合 : LBのオリジンに割り振りたい
    • URLの末尾が /images/*の場合 : 静的ファイルを保存したS3バケットのオリジンに割り振りたい

正解

  • パスルールを/images/*に設定して、オリジンパスは空白にする
  • staticバケット内にはimagesというフォルダを作成して、その中にphoto1.jpgファイルを配置する

以下勘違いによる失敗談

オリジンパスがパスルールだと勘違いしていた

オリジンパスを設定したところでアクセス先オリジンを割り振りしてくれるわけではないのに、
パスルールと勘違いしてこっちだけ設定してたパターン

images/*のルールでs3://static/photo1.jpgにアクセスさせたいので、
オリジンパスを/imagesとする

パス自体はhttps://example.com/images/photo1.jpgにはなる
しかし、パスルールが設定されていないので、このリクエストはLBのオリジンに行っちゃうのでNG

移行前で、LB配下のウェブフロント側に同名のディレクトリがあると表示されちゃうから気づきにくいかもしれない

バケット名がURLに入ると勘違いしていた

バケット名がURLに出てくることはないけど、
S3関連はバケット名から指定するものだという偏見があったパターン

images/*のルールでphoto1.jpgにアクセスさせたいので、
imagesというバケットを作ろう!
→S3バケットは一意じゃないといけないのでこんなありふれた名前では作成できないのでNG

パスルールで指定したパスはS3のバケット内の構造と無関係と思っていた

このパターンが一番多いかもしれない

images/* で パスルールを設定しているから、 https://example.com/images/photo1.jpg のアクセスは
s3://static/photo1.jpgに行くはず!
→/images/photo1.jpg と指定した場合、 staticバケット内のimages/photo1.jpgを見に行くので、そんなファイルはないと判断されてNG
→つまり、s3://static/images/photo1.jpgとするのが正解

おわりに

一回理解してしまえばなんでこんな単純なことを勘違いしていたんだろうかと思いますね、、
初めて使うサービスは落ち着いてGettingStartedをやってみるべきですね

1
1
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
1
1