0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:CloudFormationでOriginPathを使ってCloudFront配信を絞る方法について

Posted at

はじめに

CloudFormation で CloudFront ディストリビューションを作成する際に、「オリジンパス(OriginPath)」を指定したい場面があります。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

この記事では、S3 オリジンを使う構成で特定のパス(例: /honda-sr-office_20250323)を指定する方法について、個人の備忘録としてまとめました。

書こうと思ったきっかけ

CloudFront を通して配信する対象を S3 バケット内の特定ディレクトリ配下に限定したい要件がありました。

その際、CloudFormation テンプレートで OriginPath を正しく指定する必要があり、設定ミスによるエラーを防ぐために記録しておこうと思いました。

OriginPath とは?

OriginPath は、CloudFront がオリジン(例: S3バケット)にアクセスする際に追加するパスプレフィックスです。

例:

  • DomainName: my-bucket.s3.amazonaws.com
  • OriginPath: /honda-sr-office_20250323

この場合、CloudFront からのリクエストは以下のように変換されます:

https://your-domain.com/index.html
↓
s3://my-bucket/honda-sr-office_20250323/index.html

つまり、ユーザーには /index.html に見えても、実際には CloudFront がオリジンの特定フォルダにマッピングしてくれます。

設定方法

CloudFormation テンプレート内の Origins セクションにあるオリジン定義を以下のように変更します。

修正前

Origins:
  - Id: S3Origin
    DomainName: !GetAtt S3Bucket.RegionalDomainName
    S3OriginConfig:
      OriginAccessIdentity: !Sub "origin-access-identity/cloudfront/${CloudFrontOAI}"

修正後(OriginPath を追加)

Origins:
  - Id: S3Origin
    DomainName: !GetAtt S3Bucket.RegionalDomainName
    OriginPath: /honda-sr-office_20250323
    S3OriginConfig:
      OriginAccessIdentity: !Sub "origin-access-identity/cloudfront/${CloudFrontOAI}"

補足

  • OriginPath に指定するパスは、S3 バケット内のフォルダ構成と一致させる必要があります。
  • この設定により、CloudFront は /honda-sr-office_20250323 配下のオブジェクトのみをルートとして扱います。
  • 例:アクセスパス https://your-domain.com/index.html は、実際には s3://your-bucket/honda-sr-office_20250323/index.html を参照する形になります。

まとめ

  • CloudFormation テンプレートで OriginPath を指定すれば、CloudFront 経由で配信するディレクトリを絞り込める
  • OriginPath は、CloudFront がオリジンに対して内部的に付加するパスの指定
  • 記述位置は DomainName の下、S3OriginConfig の前に追加
  • S3 側の構成と整合性が取れていることを事前に確認すること

運用や環境ごとに切り分けたい場合にも役立つ設定なので、積極的に活用していきたいと思います!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?