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
WebArena Indigoの環境設定

1.スタートアップガイド(WebARENA Indigo) Ubuntu22.04 スタートアップガイド コントロールパネルにログインする(Indigo) SSH鍵を作成する(Indigo) ※private.txtは、必ず保存します。後で使います。 インスタンスを作成する(Indigo) SSH接続でインスタンスにログインする(Indigo) 2.SH接続/ログイン Tera TermでインスタンスへSSH接続/ログインができません。 ※2022年6月時点にて、特定OSの初期状態では Tera Term でログインができない事象を確認しております。これは、OSのSSH サービスにて ssh-rsa がデフォルトで無効にされ、公開鍵認証 を利用した SSH アクセスができない事象となります。 暫定的に ssh-rsa を有効にして、インスタンスへTera TermでSSH接続できるようにする手順を下記にご案内しますので、ご参考ください。なお、下記手順に関する技術的なお問い合わせにつきましては、サポート対象外とさせていただきます。 (※)古い暗号化方式を適用させるため、セキュリティへの影響を検討のうえ本手順を実施してください。 PRETTY_NAME="Ubuntu 22.04 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04 (Jammy Jellyfish)" 2-1.手順 Tera Term 以外の ssh 接続できるクライアント 「Windows の PowerShell」で接続します。 PowerShell の書式 > ssh -i 鍵ファイルのパス OS用の初期ユーザー名@IPアドレス 例 (Ubuntu の場合) > ssh -i C:\Users\hogehoge\Documents\private_key.txt ubuntu@192.168.1.1 The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established. ECDSA key fingerprint is SHA256:gayL1ESEnTe6tOQD5HU6Xtjt8mYI8hz0jvCC7l10Bfk.

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の環境設定を参照