Django + MySQL を超簡単にホスティングできるサービス Railway を見つけた
2026/05/24, 2026/05/24 - ~
国内のレンタルサーバで Django は動かせるのか
Django をホスティングしたいと思ったとき、まず考えるのは国内のレンタルサーバだろう。しかし、結論から言うと 日本のレンタルサーバで Django を動かすのは非常に難しい。
理由は単純で、Django のようなフレームワークを動かすには WSGI や ASGI といったインターフェースに対応している必要があるが、国内の一般的なレンタルサーバはこれに対応していない。PHP は .htaccess ひとつで動くが、Python の Web アプリはそうはいかない。
そのため、通常は VPS やクラウド(AWS、GCP など)でサーバを借りて、nginx や Apache と uwsgi / gunicorn を自分でセットアップしてホスティングすることになる。これはこれで確実な方法だが、サーバの構築・管理・セキュリティパッチの適用など、アプリ開発以外の運用負荷がかなり大きい。
Railway という選択肢
そんな中、米国のサービスで Railway というユニークな PaaS を見つけた。
Railway はコンテナ単位でサービスを立ち上げることができるプラットフォームだ。類似の PaaS(Heroku、Render など)は他にもあるが、MySQL がネイティブにサポートされているのは Railway ならではの特徴だと感じた。
GitHub リポジトリを指定するだけでデプロイ
Railway の最大の魅力は、GitHub のリポジトリを指定するだけで自動的にビルド・デプロイしてくれることだ。
具体的には、リポジトリに requirements.txt があれば Python プロジェクトと判断し、コンテナとしてビルドしてデプロイする。Dockerfile があれば Docker イメージをビルドするし、go.mod があれば Go、他にも Rust、PHP、C/C++ なども自動検知してビルドしてくれる。
これは画期的だと思った。
nginx / Apache のセットアップが不要になる
Django を Railway にデプロイする場合、静的ファイルの配信は
WhiteNoise
経由にする必要がある。WhiteNoise は通常 nginx / Apache が担う静的ファイルの配信を Django(Gunicorn)単体でこなせるようにする Python ライブラリで、pip install whitenoise して MIDDLEWARE に追加するだけなので導入コストは小さい。それさえ対応すれば nginx や Apache のセットアップが一切不要 になる。
なお、デプロイ前に collectstatic を実行して静的ファイルを集約しておく必要がある。「Python 経由だと遅くなるのでは?」と思うかもしれないが、WhiteNoise は長期キャッシュヘッダーを付与するため、一度取得したファイルはブラウザ側でキャッシュされ、そもそもサーバへのリクエスト自体が減る。一般的な規模のアプリであれば nginx / Apache との速度差はほぼ体感できないレベルだ。
VPS で Django を運用した経験がある人なら分かると思うが、nginx の設定ファイルを書いて、gunicorn と連携させて、SSL 証明書を設定して…という手間がまるごとなくなるのは大きい。
データベースのサポート
Railway では以下のデータベースがサポートされている。
- MySQL
- PostgreSQL
- Redis
- MongoDB
また、Docker イメージを指定できるので、原理的には何でも対応できるはずだ。
MySQL を選んだ場合、Docker で環境変数を指定するような感覚で、Django コンテナに MySQL サービスの接続情報を渡すことができる。DATABASE_URL や個別の MYSQL_HOST、MYSQL_PORT などの環境変数を、例えば、MYSQL_HOST="${{MySQL.MYSQLHOST}}" のような形式で Railway の管理画面で設定するだけだ。
Git push でデプロイ完了
アプリサーバのソースコードを GitHub に commit すると、Railway が自動的にコンテナをビルドして起動してくれる。つまり、開発のワークフローは以下のようになる。
- ローカルで開発・テスト
git pushする- Railway が自動ビルド・デプロイ
- 数分後に本番環境に反映
CI/CD のパイプラインを別途構築する必要もない。
manage.py コマンドも実行できる
python manage.py shell はできるものなのか、と最初は思ったが、できる。Railway の CLI ツールを使えばコンテナに対して SSH 接続を実行できるためだ。当然、dumpdata したデータを標準入力からリダイレクトして loaddata することもできる。
MySQL データベースに直接接続することもできる
MySQL データベースを直接見ることはできるのか、と思ったがこれもできる。MySQL サービスの Public Networking で proxy を有効にしておく必要があるが(MySQL サービス作成直後はデフォルトで有効になっている)、CLI ツールで接続先を MySQL サービスに指定すれば、払い出された Public IP アドレスとポート上に MySQL サーバが見える。mysql クライアントだけでなく、GUI クライアント(A5M2 など)からも同じ接続情報で繋ぐことができる。
アプリを他のユーザーに引き渡すこともできる
作ったアプリを他の人に渡すことはできるのか?できるらしい。プロジェクト単位で Transfer Ownership することができ、別の Railway アカウントにプロジェクトごと移譲できる。
例えば、顧客向けのアプリケーションを代行して開発・構築しておき、本番運用に入ったタイミングで顧客の Railway アカウントに移譲すれば、以降の利用料金は顧客に直接請求されるようにできる。
料金体系
料金は従量課金ベースで、Hobby・Pro・Custom といったプランがある。プランごとに月額の最低料金が設定されており、CPU・メモリ・ネットワークなどのリソース消費量に応じて上乗せされる仕組みだ。小規模なアプリであれば最低料金の範囲に収まることも多い。
Django 以外でも使える
Django のホスティング先として見つけた Railway だが、前述の通り Python に限らず、Go、Rust、PHP、Node.js、Docker イメージなど、何でも対応できる。
Terraform や CloudFormation のような IaC ツールを使いこなして一気に環境構築できたり、Kubernetes を活用できるようなチームには物足りないかもしれない。しかし、インフラをもっと簡単に扱いたい、インフラ人材を用意し続けるのが不安、という状況にはよくマッチしていると思う。
個人開発のサービスや、小規模なプロジェクトのホスティング先としてかなり優秀だと思う。
興味がある方は Railway から試してみてほしい。