サーバー側の処理が不要なら、EC2でサーバーを立てずにS3 + CloudFrontでサイトを構築する。
S3 設定
作成したバケットの、
アクセス権限 > バケットポリシー > バケットポリシーエディター
に下記を入力して保存。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::{バケット名}/*"
}
]
}
確認用にhtmlファイルでもバケットにアップロードしておく。
CloudFront 設定
Origin Domain Name でS3に作成したバケットを選択。
Default Root Object にアップロードしたhtmlファイルを指定。
作成までに数分かかります。
S3上でファイルを更新してもキャッシュのおかげで、すぐに変更が反映されません。
キャッシュを削除するには対象DistributionのInvalidatinsから削除したいキャッシュのPathを指定して作成。
存在しないパスにアクセスするとAccessDeniedとなるので、ErrorPageを設定する。
403のときに404(Not found)として、適当なファイルにアクセスさせる。
この変更にも時間がかかるので注意。