PR

【簡単9ステップ】VPS上にPythonの実行環境を構築する方法

IT-Skills

VPS上にPythonの実行環境を構築し、自分で自由にコーディングできるようにする方法を初心者向けに5分で解説します。

参考 vpsとは?

単なる手順だけではなく、学習の意味を込めて「なぜこのような作業をするのか?」といった観点も含めて説明していきますので、より実践的にPythonの環境構築を行えるような内容になっています。

具体的には以下のようなロードマップでVPS上に簡易的なPython実行環境を作成していきます。1つ1つ順を追って解説していきますので、是非最後までご覧ください。

VPS上にPython実行環境を構築するステップ
  • ステップ1:vpsの契約 / OSインストール
  • ステップ2:SSH接続
  • ステップ3:Pythonのインストール
  • ステップ4:仮想環境の作成
  • ステップ5:仮想環境の有効化
  • ステップ6:必要なライブラリのインストール
  • ステップ7:Webアプリケーションの作成
  • ステップ8:Webアプリケーションの実行
  • ステップ9:Webアプリケーションへのアクセス

これからPythonを勉強しようとする方(実際にプログラマー転職や副業プログラマーを目指す方)であれば、実績を作るという意味でも実行環境の構築は必須。是非最後までご覧ください。

スポンサーリンク

Pythonの実行環境を構築するメリット

Python初心者にとって、VPS上でPython実行環境を構築することにはどのようなメリットがあるか?

今後のモチベーション向上の意味も込めて、いくつかメリットを挙げてみたいと思います。

VPS上での実行環境構築のメリット

ポートフォリオの構築:VPS上で開発したWebアプリケーションやプロジェクトは、インターネット経由でアクセスできるため、簡単にポートフォリオとして公開できます。自分のスキルをアピールする素材として活用できます。

実践的なスキルの習得:VPSを利用することで、実際のサーバー環境での開発や運用に関する知識やスキルを身につけることができます。これにより、将来的にプロジェクトや就職活動に役立つ実践的な経験が得られます。

リモート開発の学習:VPS上での開発には、SSH接続やファイル転送などのリモート開発に関するスキルが必要です。これらのスキルは、現代の開発環境では一般的であり、初心者にとっても重要なスキルとなります。

本番環境への移行の容易さ:VPS上で開発したプロジェクトは、本番環境への移行が容易です。VPSは本番環境に近い条件で開発ができるため、本番環境での問題発生のリスクを軽減できます。

グローバルなアクセス:VPSはインターネット経由でアクセスできるため、世界中から利用できます。これにより、リモートでの開発やチームでの共同作業が容易になります。

ただし、VPSを使用する際には、サーバー管理やセキュリティ対策などの知識が必要。また、VPSは月額料金がかかることが一般的です。

が、せっかくPythonの勉強をするなら中途半端な環境ではなく、実践的な環境で勉強するのがおすすめです。

特に、Pythonエンジニアを目指す方は、Pythonのコーディングスキルだけではなく、最低限のネットワーク知識やLinuxなどのインフラ知識も必要になります。これらの必須知識を漏れなく実践的に学ぶためにもまずは自力でPythonの環境構築を行っていきましょう!

参考 Pythonの特徴(できることや難しいこと)

さっそく、Pythonの実行環境の構築を始めていきましょう!

ステップ1:VPSの契約

まずは、VPSの申し込みを行いましょう。

VPS(Virtual Private Server)とは、インターネット上で自分だけの専用サーバーのように使えるサーバーのことです。

物理的なサーバーを1つの大きな箱と考えると、その中に仮想的な小さな箱をたくさん作って、それぞれの小さな箱を1人1つずつ使えるようにしたものがVPSです。

VPSとは わかりやすく
図1:VPSのイメージ

自分が利用してみたいVPSが特にないという方は、性能やサポート体制の面で有利なXserver VPSを利用してみましょう。

#VPSサービス名初期費用価格(月額)OSCPURAMストレージ稼働率サポート対応
1Xserver VPS
0円830円~Unix系
Windows系
3コア~2GB~50GB~
NVMe SSD
-電話/メール/チャット
2ConoHa VPSblank
0円751円~Unix系
Windows系
1コア~512MB~30GB~
(SSD)
99.99%以上電話/メール/チャット
3さくらのVPS
0円~643円~Unix系
Windows系
1コア~512MB~25GB~
(SSD)
-電話/メール
4ABLENET(エイブルネット)blank
0円~712円~Unix系
Windows系
1コア~512MB~30GB~
(SSD/HDD)
-メール
5ミライサーバーblank
0円~715円~Unix系
Windows系
2コア~1GB~70GB~
(SSD)
-電話/メール
6GMO クラウドVPS
0円665円~Unix系
Windows系
1コア~512MB~20GB~
(SSD)
99.99%以上電話/メール
7Winserver(ウィンサーバー)blank
0円990円~Windows系のみ3コア~1GB~70GB~
(SSD/HDD)
-電話/メール

参考 VPSの選び方

各VPSの案内にしたがってOSのインストールまでを行います。Linux系であればどれでもOKで、今回は例としてCentOSを利用していきたいと思います。

ステップ2:SSH接続

SSH(Secure Shell)とは、インターネットを通じてリモートコンピュータと安全に通信するためのプロトコルです。

参考 SSH接続とは?

VPS(サーバ)上で直接Pythonのインストールを行うことも可能ですが、基本的にはローカルの端末からSSH接続をしてサーバ操作を行うことが実際の現場での常識です。勉強の意味を込めてSSH接続を行えるようにしておきましょう。

図2:SSH接続

パスワード認証を使用したSSH接続

ユーザー名とパスワードを使用してSSH接続を行う方法です。
この方法では、接続時にパスワードを入力する必要があります。

ssh ユーザ名@VPSのIPアドレス
例)ssh root@192.168.0.10

公開鍵認証を使用したSSH接続

公開鍵と秘密鍵のペアを使用してSSH接続を行う方法です。
この方法では、接続時に秘密鍵を使用して認証します。
まず、公開鍵と秘密鍵のペアを生成し、公開鍵をサーバーに登録します。


①ローカル環境で鍵ペアを生成:
ssh-keygen

②公開鍵をサーバーにコピー:
ssh-copy-id ユーザー名@サーバーのIPアドレス
例)ssh-copy-id root@192.168.0.10

③公開鍵認証を使用してSSH接続:
ssh ユーザー名@サーバーのIPアドレス
例)ssh root@192.168.0.10

④指定した秘密鍵でSSH接続:
ssh -i 秘密鍵のパス ユーザー名@サーバーのIPアドレス
例)ssh -i ~/.ssh/id_rsa_custom_key root@192.168.0.10

④代替ポートでSSH接続:
※SSH接続時に代替のポート番号を指定する方法です。-pオプションを使用してポート番号を指定します。
ssh -p ポート番号 ユーザー名@サーバーのIPアドレス
例)ssh -p 2222 root@192.168.0.10

SSH接続には、VPSのIPアドレス、ユーザ名、パスワード(またはSSHキー)が必要です。例えば、LinuxやMacの場合、ターミナルを開いて上記のコマンドを実行します。

SSH接続がうまく行かない・・・!という方は以下の記事を参考にしてみてください。

ステップ3:環境の更新とアップグレード

SSH接続が完了したら環境の更新とアップグレードを行っておきます。

基本的には契約時点で最新の資源が適用されているはずですが、今後の運用を見据えてここで環境の更新方法を覚えておきましょう。

環境の更新とアップグレードの方法は、OSの種類によって異なります。以下に主要なLinuxディストリビューションでのサンプルを示します。

CentOS:
  CentOS 7の場合
    sudo yum update

  CentOS 8の場合
    sudo dnf update

Ubuntu / Debian:
  パッケージリストの更新:
    sudo apt-get update
  インストール済みパッケージのアップグレード:
    sudo apt-get upgrade
  依存関係も含めたパッケージのアップグレード:
    sudo apt-get dist-upgrade

Fedora:
  sudo dnf update

Arch Linux:
  sudo pacman -Syu

これらのコマンドを使用して、それぞれのOSに合わせた環境の更新とアップグレードが行えます。定期的にシステムを更新することで、セキュリティやパフォーマンスの向上、新機能の追加などが得られます。

環境の更新とアップグレードの目的

#目的説明
1セキュリティの向上セキュリティ上の問題や脆弱性を修正し、システムをより安全にします。
2バグ修正ソフトウェアの不具合やシステムの不安定さを改善し、正常な動作を実現します。
3パフォーマンスの向上ソフトウェアの最適化により、処理速度が向上し、リソースの消費が抑えられます。
4新機能の追加開発者が追加した新機能を利用できるようになり、さらなる機能性を享受できます。
5互換性の維持他のソフトウェアとの互換性が維持され、スムーズな連携が可能になります。

初心者向けに言い換えると、環境の更新とアップグレードは、自動車の定期点検やオイル交換に似ています。定期的にメンテナンスを行うことで、システムが安全で快適に動作し続け、さまざまな問題を未然に防ぐことができます。

ステップ3:Pythonのインストール

Pythonをインストールします。

初心者向けに言い換えると、Pythonのインストールは、コンピューターに新しいツールを追加して、Python言語で書かれたプログラムを実行できるようにする作業です。これにより、Pythonプログラムを作成・実行し、さまざまなタスクを効率的にこなせるようになります。

VPSへPythonをインストール
図3:VPSへPythonをインストール

デフォルトでPythonがインストールされている場合もありますが、最新バージョンをインストールすることをお勧めします。

sudo yum install python3 python3-pip

ステップ4:仮想環境の作成

仮想環境の作成とは、Pythonプロジェクトごとに独立した環境を作成することです。

VPS 仮想環境
図4:VPS「仮想環境」

この独立した環境は、プロジェクトで使用するPythonのバージョンや、インストールされているパッケージ(ライブラリ)に関する情報を含みます。仮想環境を使用することで、異なるプロジェクト間でPythonのバージョンやパッケージの競合を防ぐことができます。

Pythonの仮想環境の作成には、venvモジュールを使用します。このコマンドで、my_project_envという名前の仮想環境が作成されます。

python3 -m venv my_project_env

ここで、 my_project_env は作成する仮想環境の名前なので自分が適切だと思う名前を選んでください。

このコマンドを実行すると、現在のディレクトリに my_project_env という名前の新しいディレクトリが作成され、その中には新しい仮想環境がセットアップされます。

図5:仮想環境のディレクトリ

仮想環境を使用することのメリットは以下の通りです。

仮想環境を使用するメリット

メリット1 プロジェクト間の依存関係の分離

仮想環境は、それぞれのプロジェクトに対して独立したPython環境を提供します。これにより、プロジェクトごとに異なるバージョンのパッケージを使用することができます。

メリット2 システムの整合性維持

仮想環境を使用することで、システム全体のPython環境を変更することなく、プロジェクトごとに異なる設定を適用できます。これにより、システム全体の整合性が維持されます。

メリット3 簡単な環境の再現・移植

仮想環境を使用すると、プロジェクトごとに独立した環境が作成されるため、他の開発者や別のマシンに環境を移植する際に、環境設定が簡単に再現できます。

ステップ5:仮想環境の有効化

仮想環境の有効化とは、作成した仮想環境を現在の作業環境として選択し、アクティブにする作業です。有効化された仮想環境は、プロジェクトで使用するPythonのバージョンやパッケージ(ライブラリ)のインストール先として機能します。

仮想環境の有効化
図6:仮想環境の有効化

仮想環境の有効化は、OSによって異なるコマンドを使用します。

Windowsの場合

my_project_env\Scripts\activate

Linuxの場合

source my_project_env/bin/activate

-- これで仮想環境が有効になり、プロンプトの左側に仮想環境の名前が表示されるはずです。
-- 例)(my_project_env) [root@xxx-xxx-xxx-xxx ~]#
-- この状態でPythonやpipを使用すると、その操作は仮想環境内でのみ影響を及ぼします。

これらのコマンドを実行することで、作成した仮想環境がアクティブになります。

仮想環境がアクティブになると、コマンドプロンプトやターミナルに仮想環境の名前が表示され、現在どの仮想環境がアクティブかがわかります。

ステップ6:必要なライブラリのインストール

必要なライブラリのインストールとは、Pythonプロジェクトで使用する外部パッケージ(ライブラリ)をプロジェクト環境に追加することです。

参考 Python:ライブラリとは?

ライブラリは、特定の機能を提供するプログラムのコレクションで、プロジェクトでその機能を利用することができます。これにより、すでに開発されたコードを再利用することで、開発時間を短縮し、より効率的にプロジェクトを進めることができます。

Pythonのライブラリは、Python Package Index (PyPI)というパッケージリポジトリからインストールすることができます。

ライブラリのインストールには、pipというパッケージ管理ツールを使用します。pipは、Pythonの標準パッケージに含まれており、Pythonをインストールすれば使用することができます。ライブラリのインストールは以下の手順で行います。

pip install ライブラリ名

インストールが完了したら、Pythonのコード内でimportを使ってライブラリをインポートし、その機能を使用できるようになります。

参考 import文の使い方

Djangoフレームワークを利用する場合

Djangoを利用する場合、まずDjangoライブラリをインストールし、新しいDjangoプロジェクトを作成し、アプリケーションを開発していくことになります。以下に、Djangoを利用するための手順を示します。

仮想環境がアクティブな状態で、以下のコマンドを実行してDjangoライブラリをインストールします。

pip install django

Djangoライブラリがインストールされたら、正しくインストールされたことを確認するために以下のコマンドを実行します。

python -m django --version
-- これにより、インストールされたDjangoのバージョンが表示されます。

作られる環境は以下のようなイメージ。

djangoのインストール
図7:djangoのインストール

ステップ7:Webアプリケーションの作成

インストール結果の確認が完了したら、新しいDjangoプロジェクトを作成します。以下のコマンドを実行してプロジェクトを作成します。

django-admin startproject myproject

-- ここで "myproject" は新しいプロジェクトの名前です。
-- 名前を選ぶ際には自身のプロジェクトに適したものを選んでください。

新しいプロジェクトが作成されると、その名前のディレクトリが作成され、その中にはDjangoプロジェクトに必要なファイルが全て格納されます。

プロジェクトは複数のアプリケーションで構成されます。以下のコマンドを実行することで新しいアプリケーションを作成することができます。

cd myproject
python manage.py startapp myapp

-- myapp はあなたが作成したいアプリケーションの名前に置き換えてください。

ステップ8:Webアプリケーションの実行

アプリケーションの作成が完了した後に開発サーバを起動すると、ブラウザを通じてあなたのWebアプリケーションを確認することができます。以下のコマンドを実行して開発サーバを起動してください。

python manage.py runserver 0.0.0.0:8000

0.0.0.0:8000 は開発サーバーを外部からアクセス可能にするための設定です。デフォルトではDjangoの開発サーバーはlocalhost(つまり同じマシン)からの接続のみを許可しますが、この設定により外部からも接続可能になります。

ブラウザからVPSにアクセスします。

ブラウザのアドレスバーに http://<your-vps-ip-address>:8000 を入力します。 <your-vps-ip-address> はVPSのIPアドレスに置き換えてください。

VPSのネットワーク設定やファイアウォールの設定によっては、8000番ポートへのアクセスが制限されている可能性もあります。その場合は、それらの設定を変更するか、適切なポートを開放する必要があります。

参考 ファイアウォールとは?

ただし、この手順ではセキュリティ面での注意が必要です。

開発サーバーはセキュリティ機能が全く提供されていないため、公開インターネットに直接公開することは推奨されません。実際の運用環境では、ApacheやNginxなどの本番環境向けのWebサーバーを使用してDjangoアプリケーションを公開することが一般的です。

参考 Webサーバとは?

Nginxを利用してDjangoアプリケーションを開く

Djangoアプリケーションを本番環境で公開するためには、Webサーバとして Apache や Nginx を使用し、それらとDjangoを接続するための WSGI(HTTPとアプリケーションの間の通信を取り扱うインターフェース)サーバーとして Gunicorn や uWSGI を使用します。以下に、Nginx と Gunicorn を使用して Django アプリケーションを公開する手順を説明します。

Gunicornは、PythonのWebアプリケーションを動かすためのサーバーソフトウェアの一つです。正式名称は「Green Unicorn」。

名前の由来は、RubyのWebサーバーであるUnicornから取られています。GunicornはUnicornのPythonバージョンという位置付けです。

ステップ1 Gunicorn のインストール

Gunicorn は pip を使ってインストールすることができます。

pip install gunicorn

インストールが完了すると、以下のようなディレクトリが追加されます。

図8:gunicorn

ステップ2 Gunicorn を使った Django アプリケーションの起動

Gunicorn を使って Django アプリケーションを起動します。以下のコマンドは myproject をあなたのプロジェクト名に置き換えてください。

gunicorn myproject.wsgi

Gunicorn はデフォルトで 8000 番ポートを使います。別のポートを使いたい場合には、 -b オプションを使って指定します。

gunicorn myproject.wsgi -b 0.0.0.0:8000

ステップ3 Nginx のインストール

以下のコマンドで Nginx をインストールします。

sudo yum install nginx

ステップ4 Nginx の設定

以下のような設定で Nginx を Django と Gunicorn にリバースプロキシとして設定します。/etc/nginx/conf.d/ ディレクトリ内に新しい設定ファイル(例えば django.conf)を作成し、以下の内容を記述します。

server {
    listen 80;
    server_name your_server_domain_or_IP;

    location / {
        proxy_pass http://0.0.0.0:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

-----------
your_server_domain_or_IPをあなたのサーバのドメイン名またはIPアドレスに置き換えてください。
この設定では、Nginxが80番ポートをリッスンし、
そのリクエストを0.0.0.0:8000(Gunicornが実行されているアドレス)にプロキシしています。

これにより、Nginx はポート 80 からのリクエストを Gunicorn が動いているポート(この例では 8000 番)にプロキシします。

ステップ5 Nginx の再起動

設定を反映するために Nginx を再起動します。

sudo systemctl restart nginx

以上で、Gunicorn と Nginx を使って Django アプリケーションを公開する設定が完了しました。これで、あなたの VPS のドメイン名または IP アドレスにブラウザからアクセスすると Django アプリケーションが表示されるはずです。

django,gunicorn,nginx
図9:django-gunicorn-nginx

なお、これらの設定は最も基本的なもので、実際の運用にはさらなる設定(静的ファイルの配信設定、HTTPS の設定、データベースの設定等)が必要です。また、Gunicorn はデフォルトでバックグラウンドで実行されないので、実際の運用時にはバックグラウンドで実行されるように設定するか、Systemd や Supervisor 等を用いてプロセス管理を行う必要があります。

ステップ9:Webアプリケーションへのアクセス

これですべての構築が完了しました。

Djangoには、インストール後にデフォルトで表示される初期画面があります。

blank
図2:Djangoの初期画面

Djangoをインストールし、作成したプロジェクトを開くと、デフォルトのWelcomeページ(初期画面)が表示されます。

このWelcomeページは、新しいDjangoプロジェクトのセットアップが正常に完了したことを確認するためのものです。

デフォルトのWelcomeページには、「The install worked successfully! Congratulations!」というメッセージが表示されます。このページは、Djangoプロジェクトが正常に動作していることを確認するために表示されるものであり、実際のアプリケーションの画面ではありません。

ここから、このWelcomeページをカスタマイズするか、自分のアプリケーションのビューとテンプレートを作成して表示内容を変更することができます。

これにて、VPS上にpythonの実行環境を構築する方法は以上です。

タイトルとURLをコピーしました