S3 + CloudFront でサイト構築

サーバー側の処理が不要なら、EC2でサーバーを立てずにS3 + CloudFrontでサイトを構築する。

S3 設定

バケットを作成。

バケット名、リージョンを選択して作成。

作成したバケットの、
アクセス権限 > バケットポリシー > バケットポリシーエディター
に下記を入力して保存。

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

確認用にhtmlファイルでもバケットにアップロードしておく。

CloudFront 設定

Distributionを作成。Webを選択。

Origin Domain Name でS3に作成したバケットを選択。

Default Root Object にアップロードしたhtmlファイルを指定。

作成までに数分かかります。

S3上でファイルを更新してもキャッシュのおかげで、すぐに変更が反映されません。
キャッシュを削除するには対象DistributionのInvalidatinsから削除したいキャッシュのPathを指定して作成。

存在しないパスにアクセスするとAccessDeniedとなるので、ErrorPageを設定する。

403のときに404(Not found)として、適当なファイルにアクセスさせる。

この変更にも時間がかかるので注意。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA