こんな人におすすめ
PythonアプリをVPSで公開する:前段に何を置くか
2026年8月20日

レン
手元で動いてるPythonのアプリ、VPSでも同じコマンドで起動すればいい?

プロクラ
そこは変えたほうがいいよ。開発用に用意されている起動方法は、公開向けには作られていない。多くの場合、公式の資料にも「本番では使わないこと」と書かれている。
1台の物理サーバーを分割して使う
OS
メモリ
ディスク
OS
メモリ
ディスク
OS
メモリ
ディスク
OS
メモリ
ディスク
CPU・ハードウェア(物理サーバー)
区画は完全に独立。他の利用者から中身は見えない
なぜ開発用のままではいけないのか
開発用のサーバーは、1人が使う前提で作られています。同時に来た要求を順番に捌くため、2人目以降は待たされます。加えて、エラーの詳細が画面に出る設定になっていることが多く、そこにファイルの場所や設定の中身が含まれます。攻撃する側にとっては地図を渡されたのと同じです。
- 同時に来るリクエストを効率よく捌けない
- エラーの詳細を画面に出す設定になっていることがある
- 静的ファイルの配信に向いていない
- 安定して動かし続けることを想定していない

プロクラ
2つめは守りの面で問題だね。エラー画面にファイルの場所や設定が表示されると、それ自体が情報を渡すことになる。本番では必ず無効にしよう。
本番の構成

プロクラ
一般的には、3段構えになるよ。前から順に、役割がはっきり分かれている。
- 前段のWebサーバー: HTTPSの終端、静的ファイルの配信、圧縮
- アプリを動かすサーバー: リクエストを実際に処理する
- アプリ本体
- 前段とアプリの間は、外に公開しない経路で繋ぐ

プロクラ
4つめが守りの要点だよ。アプリ側は 127.0.0.1 で待ち受け、外から直接は繋がらないようにする。入口は前段のWebサーバーだけにまとめる。
常駐させる
- systemdで常駐させるのが素直
- 起動時に自動で立ち上がる設定にする
- 落ちたら再起動する設定と、その回数の上限
- 仮想環境を使っているなら、その中の実行ファイルをフルパスで指定する

プロクラ
4つめでつまずく人が多いよ。手で実行するときは仮想環境を有効にしてから動かすけれど、サービスの起動時にはその手順が入らない。フルパスで指定するのが確実だ。
依存をどう入れるか
システム全体に入れると、他のツールと必要な版がぶつかります。プロジェクトごとに独立した置き場を作れば、片方を更新してもう片方が壊れる、という事故を防げます。入れたものの一覧をファイルに残しておくと、作り直すときにも同じ状態を再現できます。
- 仮想環境を作り、その中に入れる(システム側を汚さない)
- 必要なものを記録したファイルから、同じ状態を再現できるようにする
- 本番でのインストールは、メモリを使うことがある
- 小さいプランでは、別の場所で用意して持ち込む方法もある

レン
開発用のまま公開しない。前段を置いて、アプリは外に出さない。
静的ファイルの扱い

プロクラ
画像やCSSのような静的ファイルは、アプリに処理させず前段のWebサーバーが直接返すほうが速い。設定を分けておこう。
- 静的ファイルを集める処理を、デプロイの手順に含める
- 前段のWebサーバーが、その場所を直接配信する設定にする
- アプリまで届かないので、負荷が下がる
- キャッシュの設定も、前段でまとめて行える

プロクラ
本番では、エラーの詳細を画面に出す設定を必ず無効にしてね。記録はファイルに残し、利用者には簡潔な画面を返す。これが基本の形だよ。
この記事の条件で、実際の料金を見る
あわせて読みたい
- こんな人におすすめEAを24時間動かすVPSの選び方:メモリはEAの本数で決まる取引プラットフォームとEAがどれだけメモリを使うのか、本数が増えたときにどう効くのか。足りないと何が起きるかと、契約前に見るべき項目を整理します。
- こんな人におすすめVPSの設置場所と通信距離:何が言えて、何は言えないか距離が通信時間に影響するのは事実ですが、取引結果への影響は当サイトでは測定していません。何が確かめられて、何が推測に過ぎないかを整理します。
- こんな人におすすめ複数のセルフホストを1台に同居させる1台にまとめる利点と、メモリ以外に詰まる場所。ドメインの振り分け、証明書の扱い、そして分けたほうがよい組み合わせを解説します。
- こんな人におすすめスクレイピング・自動巡回をVPSで動かす前にヘッドレスブラウザが落ちる原因と必要なメモリ、そして技術より先に確認すべき規約と負荷の話。当サイト自身がどう運用しているかも書きます。
サーバーを触る前に押さえておきたいこと
姉妹サイトの、この記事と相性のいいページです。
- Linuxコマンド入門
ls / cd / grep などを疑似ターミナルで試しながら学べる — prodou.net
- シェルスクリプト入門
サーバー作業の自動化スクリプトを基礎から — prodou.net