

だいち
2024.03.19
3232
3月のAWS勉強会に向けてAWS(特にCloudFront、S3、Lambdaあたり)をキャッチアップしているところです。
今回はNuxtのプロジェクトをS3にデプロイしてCloudFrontを経由して配信する構成を組んでいきます。
バケット名
→今回はnuxt-app-20240218というバケット名で作成。
オブジェクト所有者
→「ACL有効」に設定
※ACLを無効にすると、バケットのオブジェクトの公開設定ができなくなる。
今回は静的Webホスティングとして公開するため、有効に設定
デフォルトの暗号化
→無効に設定。
作成完了。

作成したバケットを静的webホスティング用に設定していく。
上記のバケット詳細の画面の下の方に「静的webホスティング」のセクションがあるのでそこから編集。
→静的webホスティングを有効に設定
distディレクトリとは
Nuxtのプロジェクトをビルドした際に生成されるファイル群。
.vue形式で記述したファイルが、htmlで作られた Web サイト用のファイルに変換されます。
※distディレクトリごとアップロードしてしまうと、Webページにアクセスした際にindex.htmlがなく403となってしまうので注意!
無事アップデート完了。

次に、https通信を実現するためにSSL証明書を発行していきます。
主な手順としては以下の通りです。
詳細な手順は以下の記事を参考にしましたので参照ください。
Origin domain
→作成したS3バケット名を入力

オリジンへのアクセス制限

オリジンシールドの適用
→オリジンの負荷を最小限に抑え、可用性を向上させてくれる

ビューワーの設定

https通信を実現させるための設定

ディストリビューション作成完了!


S3>バケット>バケット名>バケットポリシーを編集

この設定により、変更前はS3のオブジェクトURIへ直接アクセスしてページを閲覧できていましたが、
変更後はForbiddenで閲覧できなくなりました
レコード名を貼り付けてアクセス

無事、アクセスすることができました。
(今はドメインの更新をしていないのでディストリビューション名のドメインからアクセスしてます。)

今回S3にフロントエンドのプロジェクトをデプロイして
CloudFrontで配信する構成をしてみました。
思ったのは、リリースのたびにS3にアップロードして、キャッシュを削除しないといけないので
少し面倒だということです。
次回はデプロイの一連のワークフローのパイプラインを作っていきたいと思います。