最小工数でwebサイトを作りたい CloudFront
最小工数でwebサイトを作りたい CloudFront:
最小工数でwebサイトを作りたいの続きになります
実際のサイト
前回書けなかった
-
-
の
ネイルモデルを探すネイリストと無料でネイルを受けたい人をマッチングするサービスです
まず以下のサイトを参考にいい感じのドメインを取得します
Amazon Route 53でドメインを購入する
そして以下のページ途中を参考にCNAMEを作成
S3の特定バケットへのアクセスを特定のCloudFrontからのみ許可する。
基本的に以下のページを参考に
CloudFront + S3 によるCDN (Cache Distribution パターン) 構築手順
前回のバケットポリシーでは直接S3が見えてしまうため、
また以下のサイトを例に
S3の特定バケットへのアクセスを特定のCloudFrontからのみ許可する。
またデプロイコマンドを修正してpublicアクセスを禁止します
これで
これでひとまず繋がるのですが、
URLミスなどをするとめっちゃ味気ないエラーページが返ってきます
S3上にないものを指定すると
そのため以下のように
適当な
ここまでくればひとまずセキュリティ関連のエラーは出ないのでひと安心
インフラ周りができたので
手探りでやっている状態なのでどしどしご指摘をいただけると嬉しいです!
また思い出しながら書いていったので間違った内容があればすみません。。
webサイト作ってみたい!
最小工数でwebサイトを作りたいの続きになります
今回の設計図
実際のサイト前回書けなかった
-
CloudFront
の使用(脱S3 public)-
Cognito
を使ったユーザー登録機能の
CloudFront
周りについて書いていこうと思います。
作っているサイト
私もネイル
ネイルモデルを探すネイリストと無料でネイルを受けたい人をマッチングするサービスです
道のり
-
Route53
にいい感じのドメインでDNSを設定 -
CloudFront
経由のみの接続を許可 - エラーページに関して
Route53でいい感じのドメイン+CDN
まず以下のサイトを参考にいい感じのドメインを取得しますAmazon Route 53でドメインを購入する
そして以下のページ途中を参考にCNAMEを作成
S3の特定バケットへのアクセスを特定のCloudFrontからのみ許可する。
CloudFrontの準備
基本的に以下のページを参考に CloudFront
を作成CloudFront + S3 によるCDN (Cache Distribution パターン) 構築手順
CloudFrontからのみ通信を許可
前回のバケットポリシーでは直接S3が見えてしまうため、また以下のサイトを例に
CloudFront
経由のみで見れるように変更S3の特定バケットへのアクセスを特定のCloudFrontからのみ許可する。
bucket_policy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadForGetBucketObjects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity {{CloudFront ID}}" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::{{BUCKET_NAME}}/*" } ] }
buildspec.yml
version: 0.2 env: variables: AWS_REGION: "ap-northeast-1" phases: build: commands: - aws s3 sync ./frontend/ s3://{{BUCKET_NAME}}/ # --acl public-read
https://{{CNAME}}/index.html
的なURLで接続できるようになりました!
エラーページに関して
これでひとまず繋がるのですが、URLミスなどをするとめっちゃ味気ないエラーページが返ってきます
S3上にないものを指定すると
access denied
になるようですそのため以下のように
CloudFront
側で403の時は error.html
を見るようにしておき、適当な
error.html
を作成しておくことをお勧めします
次はCognito周りについて
ここまでくればひとまずセキュリティ関連のエラーは出ないのでひと安心インフラ周りができたので
Cognito
のログイン周りなどについて書いていこうと思います手探りでやっている状態なのでどしどしご指摘をいただけると嬉しいです!
また思い出しながら書いていったので間違った内容があればすみません。。
コメント
コメントを投稿