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?

More than 1 year has passed since last update.

cloud front + s3 で静的webサイトの環境構築

Last updated at Posted at 2022-11-06

*この記事はawsハンズオンビギナーズをやってみて復習として作成しています
*途中手順に含んでいませんがS3ウェブサイトホスティング有効状態で映るか、Route53のエイリアスでS3バケット指定して映るか確認しながらやっていただくと、映らなかった時に問題の切り分けがしやすいかと思います。

1,まずはs3にてバケットを作成

スクリーンショット 2022-11-03 17.10.13.png

~注意点~
・使用したいドメインと同じ名前でバケット名を設定する
・サイトとして公開するのでパブリックアクセスを許可しておく

2,プロパティからウェブサイトホスティングの設定をする

スクリーンショット 2022-11-03 17.27.03.png

~設定項目~
・ウェブサイトホスティングを有効
・ホスティングタイプを「ウェブサイトをホストする」にチェック
・インデックスドキュメントでアクセスした時に最初に表示させるファイルの設定をする

3,バケットポリシーを設定する

アクセス許可という項目からバケットポリシーを選択します。
スクリーンショット 2022-11-03 17.33.26.png

~設定項目~
・resourceの部分で1で作成したバケットの名前を入れる

~注意点~
パブリックアクセスを有効にしただけではアクセスできない

4,cloud9を起動する

名前設定画面
スクリーンショット 2022-11-03 17.44.24.png

~設定項目~
必要があればdiscriptionに使用用途などの説明文を入れておく

スペック設定画面
スクリーンショット 2022-11-03 17.45.02.png

~設定項目~
・インスタンスタイプによっては処理速度が変わったりする。サクサク快適がいいのであればt3smallを選ぶといいと思います

詳細設定部分
スクリーンショット 2022-11-03 17.45.13.png

~設定項目~
・cost saving settingはデバイスの設定でいう自動スリープモードになるまでの時間の設定のようなものです

最後に確認画面になりますので「create environment」をクリックして完了

できました。
スクリーンショット 2022-11-03 17.43.23.png

5,静的サイト用のディレクトリを作成します。

今回はsample_cdnとしました
スクリーンショット 2022-11-03 18.01.21.png

6,html,cssファイルを設置していきます。

今回はs3,cloudfrontを使って配信することが目的ですのでサイト自体は適当です。今回は画像置いただけです。

スクリーンショット 2022-11-03 18.06.22.png

7,cliを使ってsample_cdnディレクトリ配下のファイル群をs3に送る

スクリーンショット 2022-11-03 18.47.03.png

~手順~
1、5番で作ったディレクトリに移動
2 aws コマンドでカレントディレクトリ配下にあるもの全てをs3バケットにコピーする

$ aws s3 cp .  s3://バケット名 --recursive

ドットでディレクトリ配下全てを指定して--recursiveで再起的にファイル群をs3にコピーします。

これだとまだS3に直接アクセスできる、httpでもアクセスできてしまうのでこの辺りの設定を変えていきます

8,CloudFrontを作成します

スクリーンショット 2022-11-06 12.45.51.png

~設定項目~
1,「オリジンドメイン」でS3バケットを選択する
2,S3バケットアクセスを「Legacy access identities」にして「はい、バケットポリシーを自動で更新します」を選択します。

S3の画面から自動でS3のポリシーが変更されていることがわかります
スクリーンショット 2022-11-06 15.38.49.png

3,「ビヘイビア」の「ビューワー」の設定をRedirect HTTP to HTTPSにしてHTTPをHTTPSにリダイレクトする設定にして保存
スクリーンショット 2022-11-04 18.35.06.png

4,「一般」から「設定」を編集の画面で代替ドメインの設定(バケット名と同じ)をします
スクリーンショット 2022-11-04 18.37.50.png

5,その下にあるデフォルトルートオブジェクトでS3のインデックスドキュメントと同じファイルを設定し、「変更を保存」
スクリーンショット 2022-11-06 15.03.55.png

*現状配信されているaws公式のハンズオンだとUIが古いものでこの点の設定をしているようなシーンがなく3,4時間ほど詰まりました、S3でインデックスドキュメントで設定しているのにcloudfrontでも同じような設定をする必要があるみたいです、、

9,Route53でホストゾーンの作成をする

スクリーンショット 2022-11-04 18.47.58.png

設定した代替ドメインと同じAレコードを作成する
スクリーンショット 2022-11-04 18.51.46.png

~設定項目~
1,エイリアスでCloudFrontを選択
2,8で作成したディストリビュージョンを選択します

10,ACMで証明書の作成します

~注意点~
1,バージニア北部リージョンで作成すること(cloudfrontがグローバルサービスのため)

~設定項目~
1,パブリック証明書を選択する
スクリーンショット 2022-11-04 18.27.49.png

2,DNS検証を選択する
スクリーンショット 2022-11-04 18.28.00.png

3,Route53でレコードを作成をクリックしCnameを作成する
スクリーンショット 2022-11-04 18.28.29.png

できました。
スクリーンショット 2022-11-04 18.20.29.png

11,出来上がった証明書をCloudFrontに設置します

CloudFrontの「一般」の「設定」の編集から代替ドメインのしたに証明書の設定項目があります
スクリーンショット 2022-11-04 19.20.35.png

12,S3の設定を変更する

最後にバケットポリシーでパブリックアクセスを無効にする
スクリーンショット 2022-11-04 19.30.43.png

13,お疲れ様でした。

猫の画像がセキュアに配信されています。
スクリーンショット 2022-11-06 15.32.54.png

12番まで追えるとwebサイトホスティングのUPLでは映らず、CloudFrontの代替ドメインでは映るようになっています。またビヘイビアの設定でhttpでアクセスしてもhttpsで映るようになっています。

またchromeの検証のNetworkでCloudFrontから配信されていることがわかります。(x-cacheの部分)
スクリーンショット 2022-11-06 15.47.01.png

ここまでみていただきありがとうございました。

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?