Record / Server Side
AWS EC2 でPython Django React を構築 2025-12
AWS のアカウントはすでに作ってありましたので、EC2でサーバーを構築し、Python Django React をインストールし、Webページが閲覧できるようにします。
サンプル Django
https://django-5.usual.tools
AWS EC2立ち上げ、下記記事を見てやりました。
EC2インスタンスの作成
- マシンイメージとアーキテクチャの選択 →標準ので。Amazon Linux 2023 と 64 bit (x86)
- インスタンスタイプの選択 →nano。最安のものを
- キーペアの設定 →新規作成
- ネットワーク設定 →標準
- ストレージ設定 →標準
ssh 接続
キーペアで作成した秘密鍵をダウンロード。秘密鍵のパーミションを600にして、~/.ssh/configに設定
→接続できました
su にパスワードを設定。sudoするときも
Elastic IP
パブリック IPアドレスだとインスタンスを再起動したときにIPアドレスが変わってしまう。インスタンスに紐づいていればElastic IP料金はかからない
ドメイン設定
DNS設定
下記2つのサブドメインをAWS EC2 の Elastic IP に紐づける。DNSのAレコードにIPアドレスを設定
- django-5.usual.tools
- php-8.usual.tools
サーバー構築
Nginxインストール
すっとできた
将来的に Server Block
このサブドメ django-5.usual.tools だけでDjangoが動くようにNginxのconfファイルを設定
DjangoとReactの統合
Django側でReactビルドファイルを配信する設定
Python インストール
EC2は最安のnanoにしたので、ストレージが8GB、システム総メモリ容量は約0.4G。
メモリが足りないのでSwapを2GBにし、/tmp が200MBしかマウントされてないから違う場所を使うように設定
- 必要なパッケージのインストール
- pyenvのインストール
- .bashrcに設定を追加 & 設定反映 source
- Swapの設定
- Python インストール
Django インストール
インストールできたが、Gunicornのsystemdが起動しない、、
Python インストールのときにずっとsuでやってしまっていた、、
→仮想環境の所有権: venvディレクトリがrootで作成されると、後でec2-userとして操作する際に権限エラーが発生します
- ドキュメントルートの所有権をrootから変更
- venv を消して、作り直し
- pyenv の再インストールと.bashrc設定
- Python もちゃんとインストールできてなかったから、もう1度やり直し
手間はかかったが、pyenvや仮想環境venvの勉強になりました
Node.jsとReactのインストール
すっとできた。Reactのアプリ作成は時間がかかりました。
https (SSL) 設定 Let's Encrypt
Let's Encrypt 公式のcertbotを使用します。3ヶ月ごとの更新もコマンド設定で1発で済みました、以前はcron設定などひと手間あった気がします。
Let's Encryptの証明書取得には2つの認証方法があるそうです。
.well-known ディレクトリーを使用するのは共有レンタルサーバーなど制限がある場合。Nginx/Apacheプラグインを使う方法もあり、今回はそれです。
無事開設
サンプル Django
https://django-5.usual.tools