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