LoginSignup
3
5

More than 5 years have passed since last update.

CloudFront+S3で静的コンテンツ配信するパターンまとめと、そのまま使えるCloudFormationテンプレートスニペット

Posted at

はじめに

表題の件について調べる機会がありましたのでまとめました。
実はCloudFormationの練習が主な目的なので目新しい内容はありませんが、良かったらお付き合いください。

パターン

  • S3Originを使用するパターン
  • S3静的ウェブサイトホスティングを使用するパターン

Pros / Cons / 使いどころ例

共通

Pros

Cons

S3Originを使用するパターン

Pros

  • OAIを用いて、S3へのアクセスをCloudFront経由に限定できる
    • 署名付きURL等を使ってアクセス制限できる
    • アクセスログをCloudFrontのログに集約できる
    • ログに限らずCloudFrontでできることはCloudFrontに任せられる

Cons

使いどころ例

  • SPA
  • ペライチなウェブサイト
  • 特定のユーザのみアクセス可能なコンテンツの配信
  • etc.

S3静的ウェブサイトホスティングを使用するパターン

Pros

  • サブディレクトリ以下のIndexDocumentを設定できる(S3の静的ウェブサイトホスティングにて設定)
    • https://example.com/blog/ でもOKになる

Cons

使いどころ例

  • 階層のあるウェブサイト
  • 平文でパブリック公開されても問題ないコンテンツの配信
  • etc.

CloudFormationテンプレートスニペット

Gistに書きました。
パラメータに使用するカスタムドメインとSSL証明書のARNを入力したら、あとはコピペでGO!

※話を簡単にするため、ACMでのSSL証明書取得(またはインポート)およびカスタムドメインとCloudFront Distributionの紐付けは別途ご対応いただく前提となっております。

S3Originを使用するパターン

CloudFormation template snippet - CloudFront Distribution with a S3 Origin · GitHub

S3静的ウェブサイトホスティングを使用するパターン

CloudFormation template snippet - CloudFront Distribution with a S3 Static Website Hosting · GitHub

おわりに

有名な2パターンについて書きましたが、どちらがベストとは言いづらくケースバイケースで選択する必要がありますね。
AWSにこだわる必要がなければ、要件に応じて文中でも少し書いたGCPや、静的ホスティングに特化したNetlify等のサービスを検討してみてもよいかと思います。
それでは以上です。
CloudFormationの練習に付き合っていただきありがとうございました。

補足:本文で言及した以外の参考文献

3
5
2

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
3
5