AWS EC2 でPython Django React を構築 2025-12
#プログラミング

created: 2025/12/27, modified: 2025/12/30

標準のサムネイル 2024-06

AWS のアカウントはすでに作ってありましたので、EC2でサーバーを構築し、Python Django React をインストールし、Webページが閲覧できるようにします。

サンプル Django
https://django-5.usual.tools

AWS EC2立ち上げ、下記記事を見てやりました。

EC2インスタンスの作成

  1. マシンイメージとアーキテクチャの選択 →標準ので。Amazon Linux 2023 と 64 bit (x86)
  2. インスタンスタイプの選択 →nano。最安のものを
  3. キーペアの設定 →新規作成
  4. ネットワーク設定 →標準
  5. ストレージ設定 →標準

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しかマウントされてないから違う場所を使うように設定

  1. 必要なパッケージのインストール
  2. pyenvのインストール
  3. .bashrcに設定を追加 & 設定反映 source
  4. Swapの設定
  5. 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

DjangoでWebサイト、初開設

関連