17
9

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 3 years have passed since last update.

Cloudfront+S3で最近話題のSPAを構築する(設定項目の解説有)

Last updated at Posted at 2020-05-24

AWSでSPAの構築

久々にSPAの構築を実施しました。すんなりできると思っていたのですが、結構忘れていることが多かったのと、困ったところがたくさんあったので備忘録として記述しておきます。

なお、解説文を付け加えていますが、設定できれば良い人は画像を参照していけばできると思います。

S3バケット作成

まずはweb用のS3のバケットを準備します。

screenshot_09.png

「パブリックアクセスをブロック」にチェックを入れるのを忘れないでください。
ここのチェックを外すように書いてある記事が多いです。しかし、チェックを入れるとこのバケットに直接アクセスできてしまいます。
そうではなく、Cloudfront経由のみでアクセスしてほしいのでチェックを入れないでください。

Cloudfrontの作成

英語で厳しいですが、順番にゆっくり設定していけば怖いことはありません。

まずはCreate Distributionをクリック

screenshot_11.png

Get Startedの方を選択します。

screenshot_27.png

Origin Settings

screenshot_16.png

Origin Domain Name

カーソールを合わせると選択肢が出てきます。先ほど作成したS3のバケットを選択してください。

Restrict Bucket Access

Yesを選択してください。説明の直訳です。

ユーザーが常にAmazon S3のコンテンツにアクセスする際に、Amazon S3のURLではなく、CloudFrontのURLを使用してアクセスすることを要求したい場合は、「はい」をクリックします。これは、署名付きURLや署名付きCookieを使用してコンテンツへのアクセスを制限する場合に便利です。ヘルプでは、「プライベートコンテンツをCloudFrontでサーブする」を参照してください。

Origin Access Identity

Create a New Identityを選択してください。S3にアクセスするためのOriginIDを新規で作成します。

Grant Read Permissions on Bucket: Yes, Update Bucket Policy

Yes, Update Bucket Policyを選択してください。S3バケットにアクセスするためのPolicyを自動で設定してくれます。

Default Cache Behavior Settings

screenshot_19.png

Viewer Protocol Policy

任意設定ではあるのですが、Redirect HTTP to HTTPSに変更しています。これはHTTPのアクセスに関する項目です。
Redirect HTTP to HTTPSにするとHTTPでリクエストが来た際にHTTPSにリダイレクトしてくれます。セキュリティ的にHTTPSの方が強固なのでリダイレクトするようにしました。

Distribution Settings

screenshot_22.png

Default Root Object

ルートパスでアクセスした際にデフォルトで表示するファイル名です。index.htmlを設定しました。

24時間(くらい)待つ

ここが一番重要です。Create Distributionをクリックしたら24時間ほど待ちます。
これは、S3のバケット名がAWS内で共有されるのに最大で24時間かかるからです。そのためすぐにアクセスしてもエラーになる場合があります。
都度、確認してみましょう。

S3の設定を確認

バケットポリシーの確認

Grant Read Permissions on Bucketの項目でYes, Update Bucket Policyを選択しました。
バケットポリシーを追加する項目なので、一応ちゃんと設定されているか確認してみます。

screenshot_23.png

ファイルのアップロード

実際にS3にファイルをアップロードしてください。

WEBページにアクセス

WEBページにアクセスして動作を確認して見ます。ドメイン名はCloudFrontDistributions内、Domain Name列に記載されています。

screenshot_24.png

screenshot_26.png

WEBページが表示されれば設定完了です。

参考

17
9
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
17
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?