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

S3ホスティング設定

Last updated at Posted at 2025-01-19

概要

AWSのS3ホスティング設定を行い、CloudFront経由で接続を行ったので、方法について記録する

構成

CloudFront->S3経由で静的ウェブサイトにアクセスするように設定を行う

参考

手順

S3設定

バケット作成

  • バケットタイプ
    • 汎用
  • バケット名:任意
  • オブジェクト所有者
    • ACL無効
  • パブリックアクセスをすべてブロック:チェックを外す

s3_作成_mask.png

S3ホスティング設定

作成したバケットを選択し、プロパティタブの一番下にある静的ウェブサイトホスティングの編集を選択

スクリーンショット 2025-01-09 23.02.43.png

  • 静的ウェブサイトホスティング
    • 有効にする
  • ホスティングタイプ
    • 静的ウェブサイトをホストする
  • インデックスドキュメント
    • index.html
  • エラードキュメント
    • error.html

スクリーンショット 2025-01-09 23.04.56.png

サンプルファイルをS3にアップロード

index.htmlファイルをS3バケットにアップする

スクリーンショット 2025-01-10 0.05.48.png

バケットポリシー編集

対象のバケットのアクセス許可タブを選択し、バケットボリシーの編集を選択
スクリーンショット 2025-01-10 0.10.48.png

ポリシー欄に以下のJSONを設定して保存

スクリーンショット 2025-01-10 0.11.57.png

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::{S3バケット名}/*"
            ]
        }
    ]
}

ポリシー編集後、以下のURLでindex.htmlが表示される

https://{バケット名}.s3.{リージョン}.amazonaws.com/index.html

表示例
スクリーンショット 2025-01-10 0.13.41.png

CloudFront設定

ディストリビューションを作成

CloudFont>ディストリビューションより、ディストリビューションを作成を選択
スクリーンショット 2025-01-16 0.14.52.png

ディストリビューション作成画面にて情報をセットしていく

  • Origin domain:S3設定で作成したバケットの情報を選択
  • Origin path:指定しない
  • 名前:任意
  • オリジンアクセス:Origin access control settings (recommended)
    • Create new OACボタンを押下してOACを作成

スクリーンショット 2025-01-16 0.18.02.png

Create new OACを選択し、OAC作成画面に遷移

以下を入力後、Createを選択
名前:任意
署名動作:署名リクエスト(推奨)

スクリーンショット 2025-01-15 23.18.53.png

ディストリビューション作成画面の続き

  • Enable Origin Shield:いいえ
  • デフォルトのキャッシュビヘイビア
    • 初期設定の状態のままで進める

スクリーンショット 2025-01-16 0.18.20.png

  • キャッシュキーとオリジンリクエスト
    • `Cache policy and origin request policy (recommend)を選択
  • 関数の関連付け - オプション
    • 関連付けなしで進める

スクリーンショット 2025-01-16 0.18.35.png

  • ウェブアプリケーションファイアウォール (WAF)
    • 今回は動作確認目的のためWAFを使わない
    • セキュリティ保護を有効にしないでくださいにチェック
  • 設定
    • 北米、欧州、アジア、中東、アフリカを使用を選択

スクリーンショット 2025-01-16 0.18.59.png

  • 初期設定の状態のままで進める
  • デフォルトルートオブジェクト
    • /index.htmlを指定

右下のディストリビューションを作成を選択

スクリーンショット 2025-01-16 0.19.26.png

ポリシーのコピー

作成したディストリビューション>オリジンタブを選択
作成したオリジンにチェックして、編集を選択

スクリーンショット 2025-01-16 0.20.01.png

オリジンアクセスの下にあるポリシーをコピーを選択
スクリーンショット 2025-01-18 23.09.15.png

もしくは、ディストリビューション作成後に画面に通知として表示されるので、そちらからコピーする

スクリーンショット 2025-01-19 23.48.56.png

以下のようなポリシーがコピーされる

{
        "Version": "2008-10-17",
        "Id": "PolicyForCloudFrontPrivateContent",
        "Statement": [
            {
                "Sid": "AllowCloudFrontServicePrincipal",
                "Effect": "Allow",
                "Principal": {
                    "Service": "cloudfront.amazonaws.com"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::{バケット名}/*",
                "Condition": {
                    "StringEquals": {
                      "AWS:SourceArn": "arn:aws:cloudfront::{ID}:distribution/{ディストリビューションID}"
                    }
                }
            }
        ]
}

S3のアクセス許可設定

S3のバケットに遷移し、バケットポリシー編集画面を開く
コピーしたポリシーに上書きする

スクリーンショット 2025-01-16 0.20.47.png

CloudFrontのドメインからアクセス

CloudFrontのディストリビューション一覧で対象のIDにあるドメイン名をコピーし、Webブラウザでアクセスする
ドメイン名の後に/index.htmlを追加する

スクリーンショット 2025-01-18 23.32.33.png

ページが表示されたら、CloudFront経由でS3にあるhtmlページ表示までの流れが作成できたことになる

スクリーンショット 2025-01-18 23.35.55.png

最後に

今回はS3ホスティング設定を行い、CloudFontからS3にある静的ウェブサイトを表示させるところまで行なった
ドメインを指定すれば、Route53→CloudFront→S3経由で独自ドメインの静的ウェブサイトも表示できるので、後で設定をしてみたい

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