Hero Image
Djangoの開発・本番環境構築

0. 初めに Dockerを利用しPython、Django、PostgreSQL、Gunicorn、Nginxの開発・本番環境の構築します。 Dockerとはコンテナ型の仮想環境を作成・配布・実行できるプラットフォームとのことです。Dockerを使えばWebアプリケーションだけでなくサーバーの設定などのインフラもまとめて管理できて、かつバージョンやOSの差を気にすること無く環境の構築ができるというメリットがあります。 Pythonの仮想環境としばしば比較されることがありますが、Pythonの仮想環境はあくまでPythonの依存関係のみをカプセル化し、DockerはOS全体をカプセル化するという違いがあります。 ※参考サイト1 0-1. 開発環境 OS : Ubuntu 22.04.1 LTS on WSL2 Docker : 20.10.22 Docker Compose : v2.14.1 0-2. VPS環境 WebARENA Indigo : メモリ 4G, ストレージ:SSD 80GB, CPU:2コア OS:Ubuntu 22.04 Docker : 20.10.22 Docker Compose : v2.14.1 VPS-IP : 160.248.11.107 Container : Debian GNU/Linux 11 (bullseye) 0-3. 共通環境 Python : 3.11.1 Django:4.1.4 Nginx:1.23.3 Gunicorn:20.1.0 PostgrSQL:14.0 psycopg2-binary:2.9.3 0-4. Python3.11 Python 3.11はPython 3.10と比べて平均で 25%速くなりました。ワークロードにも寄りますが、10%から60%の速度向上が見込めます。これは「起動時の高速化」と「実行時の高速化」の二つによって達成されています。 起動時の高速化:起動時間が10-15%高速化 実行時の高速化:最大 2~20%の速度向上 SSLモジュール Python 3.

Hero Image
Ubuntu 22.04でPostgres、Nginx、Gunicornを使用してDjangoをセットアップ

1. 初めに Djangoは、PythonアプリケーションやWebサイトを軌道に乗せるのに役立つ強力なWebフレームワークです。Djangoには、コードをローカルでテストするための簡略化された開発サーバーが含まれていますが、本番環境に関連するものでも、より安全で強力なWebサーバーが必要です。 このガイドでは、Djangoアプリケーションをサポートおよび提供するために、Ubuntu22.04にいくつかのコンポーネントをインストールして構成します。デフォルトのSQLiteデータベースを使用する代わりに、PostgreSQLデータベースを設定します。アプリケーションとインターフェイスするように Gunicorn1 アプリケーションサーバーを構成します。次に、GunicornにリバースプロキシするようにNginxを設定し、アプリを提供するためのセキュリティ機能とパフォーマンス機能にアクセスできるようにします。 Digtal Ocean2を参考にWSL上に構築していきます。 2. 前提条件と目標 VPS : Ubuntu22.04 on WebAREANA Indigo フレームワークはDjango DBはPostgreSQL アプリケーションサーバはGunicorn WebサーバはNginx VSCodeからSSH接続環境 VPS-IP : 160.248.11.107 ubuntu : password Djangoは仮想環境内にインストールします。プロジェクトに固有の環境にDjangoをインストールすると、プロジェクトとその要件を個別に処理できるようになります。 データベースとアプリケーションを稼働させたら、Gunicornアプリケーションサーバーをインストールして構成します。これはアプリケーションへのインターフェイスとして機能し、クライアント要求をHTTPからアプリケーションが処理できるPython呼び出しに変換します。次に、Gunicornの前にNginxをセットアップして、高性能の接続処理メカニズムと実装が簡単なセキュリティ機能を利用します。 Python 3.11は、以前の3.10よりも10〜60%高速であると主張し、次の機能を備えています。 3. VPSへのログイン 3-1. OSの初期設定(アップデート、アップグレード) sudo apt update apt list --upgradable (root change) sudo su - 4. 新規ユーザーを追加 以下rootで実行します。 adduser vpsadmin 新しく追加したユーザーにsudo権限を持たせ、sudo権限を持ったユーザーを表示して確認します。 gpasswd -a vpsadmin sudo (確認) cat /etc/group | grep sud sudo❌27:ubuntu,vpsadmin 追加したユーザーのパスワード設定 passwd vpsadmin 5. VSCodeでSSHログイン WebArena Indigoの環境設定を参照