概要
初めての本番環境構築。
AWSのfargateで立ち上げようとしたが、本番環境もAWSもほぼ未経験なので途中でつまった。とりあえずEC2で立ち上げることに。
ここで書かれているものは後にstart.shなどに追加しなけれなばならない。
環境
Frontend : Node.js 18-buster-slim Vue.js 3.2.13
Backend : Django 4.1 Python3.10.6
Web server : Nginx 1.23.1
Database : mariaDB 10.8.3
インストール
まずdockerとdocker-composeをインストール
gitをインストールしてからgit cloneする。
インバウンドルールの変更
セキュリティグループ → インバウンドルールで
カスタムTCPでfrontのポート番号を追加する。
webサーバのポート番号も同様に追加。
Frontend (vue)
パーミッションの変更
以下のようなエラーがでたら
Syntax Error: Error: EACCES: permission denied, mkdir '/code/node_modules/.cache'
chmod
でパーミッションを変更する
chmod 700 /code/node_modules
ajax通信
デフォルトでajax通信すると以下のようなエラーが出る
POST http://localhost:8000/api/v1/auth/jwt/create net::ERR_CONNECTION_REFUSED
localhostではなくパブリックIPにする。
(もっといい方法がありそうな気がする?)
src/main.js
axios.defaults.baseURL = "http://3.112.56.45:8000/api/v1/";
Backend (django)
config/settings.py
# 本番環境はFalseにする
DEBUG = False
# 本番では'*'にする
# 運用するサーバーが決まれば、hogehoge.com や '100.100.100.100' などを入力する
ALLOWED_HOSTS = ['*']