だいち
2024.03.19
1930
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にアップロードして、キャッシュを削除しないといけないので
少し面倒だということです。
次回はデプロイの一連のワークフローのパイプラインを作っていきたいと思います。