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?

S3 + CloudFront + Route53 を使ったSSL付きカスタムドメインのWeb配信

Posted at

備忘録のため残します。

ゴール

S3に配置したファイルを、SSL + カスタムドメインでWeb配信する。

構成要素

1. S3(Amazon Simple Storage Service)

ファイルの配置場所。

2. CloudFront(CDN)

  • キャッシュを利用してユーザーのページ表示を高速化し、オリジンサーバーの負荷を軽減。
  • S3に対してディストリビューションを作成し、ACM(AWS Certificate Manager)を使ったSSL証明書を紐づける
  • CloudFrontのACM証明書を使って、ユーザーとの通信をHTTPSにする。

3. Route 53(DNS管理)

  • CloudFrontディストリビューションに対してAレコード(エイリアス)を向ける。
  • これにより、ユーザーは独自ドメイン(例: example.com)でアクセス可能。
  • 既存のドメインがある場合、ACMでSSL証明書を発行し、CNAMEの値をDNS設定に手動で追加(DNS検証)。

方法

【1】S3の静的サイトホスティングを使う方法

このやり方ならCloudFrontじゃなくてもできる。(Cloudflareとか)

S3静的サイトホスティングとは

  • S3にアップロードしたHTMLなどのファイルを、そのままWebサイトとして公開できる機能。
  • HTTPSは非対応
  • S3がWebサーバーのように振る舞う。

手順

  1. S3の静的サイトホスティングを有効化
  2. CloudFrontのディストリビューションを設定
    • オリジンにS3のWebサイト用エンドポイントを指定。
    • SSL証明書の選択。
    • カスタムドメインの設定。
  3. S3のバケットをパブリック化
    • バケットポリシーで全体に許可を付与。

注意点

  • S3がパブリック状態になり、直接URL(http://your-bucket.s3-website-ap-northeast-1.amazonaws.com/)でもアクセス可能。
  • CloudFront ⇔ S3間の通信がHTTP。
  • セキュリティ面で堅牢性が劣る

【2】OAC(Origin Access Control)を使い、CloudFront経由のアクセスのみにする方法

CloudFrontを使う所のメリットはここ。

方法の概要

  • S3の静的サイトホスティングを使わず、バケットも非公開にする。
  • CloudFront + OACを利用してセキュアにアクセス制御

手順

  1. CloudFrontのディストリビューションを設定
    • S3の「バケットエンドポイント」を指定。
    • OAC(Origin Access Control)を新規作成。
    • OACを設定したCloudFrontからのアクセスのみをS3に許可するため、OAC作成時に生成されるバケットポリシーをS3に適用。
    • Default root Objectindex.html を指定。
  2. S3のアクセス許可を更新(CloudFrontのOAC用バケットポリシーを適用)。

注意点

  • S3のバケットエンドポイントを使用する場合の問題点

    • /mypage にアクセスしても index.html を自動補完しない。
    • /mypage/index.html のような構成でなければ 403 Access Denied になる。
    • 解決策:
      • Lambda@Edge を使用。
      • CloudFront Functions でリライト関数を作成し、Viewer Request にアタッチ。
  • **S3のWebサイト用エンドポイント(http://your-bucket.s3-website-ap-northeast-1.amazonaws.com/)は使用不可**。


  • セキュリティとHTTPS対応を重視するなら【2】(OAC + CloudFront)が推奨
  • 手軽に設定したい場合は【1】(S3静的サイトホスティング)も選択肢だが、セキュリティリスクあり

CloudFrontの設定を適切に行い、OACを活用することで、安全に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?