S3とCloudFrontを使って静的サイトを構築する方法

目次

シンプルな静的サイトを作る場合
S3とCloudFrontを利用すれば容易に環境を作る事ができます。

今回はその手順をまとめさせていただきます。

S3側の設定~ファイルアップロードまで

1.S3でバケット作成

2.バケットのアクセス権限設定

パブリックアクセスを許可するようにし承認するようにします。

3.静的サイトとして設定

作成するとバケットができるので、リンクを選択します。

プロパティタブの「静的ウェブサイトホスティング」を有効にし
「インデックスドキュメント」にindex.htmlを設定する


4.アクセス許可の設定

「アクセス許可」タブを選択

バケットのポリシーを編集

Resourceにはバケット名を設定

5.HTMLファイルのアップロード


アップロードが完了すると

S3への直URLが発行されます。

アクセスしてみると、先ほど上げたファイルの内容が表示されました。


これでS3側の設定がほぼ終わりましたので
ドメイン関係をこれから設定していきます。

1.CloudFront作成

・オリジンドメインには作成したS3を設定
・「新しいOAIを作成」を選択すると自動的にOAIを作成してくれるので選択
・「バケットポリシー」を自動更新でS3アクセス情報を更新してくれるので選択

httpアクセスをhttpsアクセスにリダイレクトするよう設定

代替ドメインなども通常通り設定

作成後デプロイが開始

2.S3のアクセス情報などを更新

CloudFront作成時にバケットポリシーの更新を実施したので
不要なもの(元々設定していたもの)を削除し赤枠部分だけを残すイメージで以下の設定を行う

3.route53でDNSのレコードを作成

エイリアスを利用し「トラフィックのルーティング先」をCloudFrontに設定
「ディストリビューション」には作成したCloudFrontに設定し
レコード作成を行う

以上で作業は終わりとなります。
作成したドメインでindex.html無しのURLでアクセスができるかと思います。
やり方さえ分かれば簡単に作る事ができますね!

更に詳細な情報については、公式ドキュメントをご参考に!
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/getting-started-s3.html