Independent testing Updated August 2026 387 self-hosting guides 5 VPS providers tested

guide

WindmillのVPS要件:RAM・CPU・ストレージの目安

Windmillはアプリ単位ではなくワーカー単位でサイジングします。ワーカーあたり約1 vCPUと1〜2GB。実際のcompose構成が必要とするリソースと適合プランを解説します。

Windmillは、スクリプトをWebhook、ワークフロー、cronジョブ、社内向けUIに変えるオープンソースの開発者向けプラットフォームです。静的サイトのホスティングではなく、RetoolやTemporalの対抗として位置づけられています。コミュニティ版のライセンスはAGPL-3.0で、エンタープライズ版はライセンスキーの先にあります。

サイジングの考え方は一般的なWebアプリとは異なります。容量の単位がアプリケーションではなくワーカーだからです。

スペックを決めるアーキテクチャ

公式のdocker-compose.ymlは7つのサービスを起動します。

サービスイメージ役割
dbpostgres:16データベース兼ジョブキュー
windmill_serverghcr.io/windmill-labs/windmill:mainAPIとWeb UI、ポート8000
windmill_worker同じイメージ、MODE=workerジョブを実行する
windmill_worker_native同じイメージ、NATIVE_MODE=true軽量ジョブ専用
windmill_indexer同じイメージ、MODE=indexerジョブの全文検索
windmill_extraghcr.io/windmill-labs/windmill-extra:latestエディタ用の言語サーバー
caddyghcr.io/windmill-labs/caddy-l4:2.11.4-1ポート80のリバースプロキシ

この表のなかで、特に重要な点が2つあります。

Redisはありません。 WindmillはPostgreSQLをキューとして使います。第三者のガイドの多くがRedisコンテナとREDIS_URLを足していますが、公式のcomposeファイルにはどちらも存在せず、そうしたガイドを写すとWindmillが一度も接続しないサービスを動かし続けることになります。

コストの中心はワーカーです。 サーバー本体は比較的暇です。実際にお金を払っている対象はワーカーの処理能力です。

RAMとCPU:ワーカー単位で決める

実務上の目安はvCPU1つにつきワーカー1つ、それぞれに1〜2GBのRAM、加えてPostgresとサーバーの分の余裕です。

構成vCPU / RAM得られるもの
試用、ワーカー1つ2 / 2GB動くが同時に1ジョブのみ。重い依存関係のインストールには余裕がない
標準構成、ワーカー1〜22〜4 / 4GB実用上の下限
複数ジョブを同時実行4 / 8GB少人数チームにとって快適な目標値

ネイティブワーカーは知っておく価値のある例外です。軽量なジョブを約0.1 CPUと128MBで実行するため、標準構成は追加のコアを求めずに標準ワーカーの隣へ1つ置けます。

誰も予測できない変動要因が依存関係のインストールです。pandasを取り込むPythonジョブや、ロックファイルの大きいTypeScriptジョブは、定常状態の数値をかなり上回るメモリを一時的に使います。初回の実行だけ失敗して次から成功するなら、RAMが足りないなかで依存キャッシュが構築されている場面を見ているわけです。

ストレージ:増えるのは依存キャッシュ

データベースは長いあいだ小さいままです。ジョブのメタデータ、スクリプト、フロー、ログはいずれもテキストです。増えていくのはworker_dependency_cacheで、ジョブが取り込んだPythonのwheelやnpmパッケージが、次回の実行でインストールを省くために保存されます。

40GBから始めてください。リサイズの判断はデータベースではなくキャッシュのボリュームを見て行い、NVMeまたはSSDを選びます。Postgresはここでストレージ役だけでなくキュー役も担うため、I/Oのレイテンシに敏感です。

この要件を満たすVPSプラン

プロバイダープランvCPU / RAM / ディスク価格評価リンク
ContaboCloud VPS 44 / 8GB / 100GB SSD5.50 EUR/月(税別)エントリープランの価格でワーカー4つ分の余裕Contabo
Hetzner CloudCX232 / 4GB / 40GB NVMe5.49 EUR/月(税別)標準のワーカー2つ構成に適するHetzner
DigitalOceanBasic 4GB2 / 4GB / 80GB SSD24 USD/月CX23と同スペックで価格は4倍DigitalOcean
VultrRegular 4GB2 / 4GB / 80GB SSD20 USD/月リージョンの選択肢が最も広いVultr
LinodeLinode 4GB2 / 4GB / 80GB SSD24 USD/月性能が安定し、APIが強力Linode

Windmillは、1GBのプランが自動的に失格にならない数少ないセルフホストアプリの1つです。ネイティブワーカー1つなら実際に収まります。ただしそこに標準ワーカーは置けないため、依存関係を伴うPythonやTypeScriptのジョブは動かせません。つまり運用ではなくデモの位置づけになります。

スケールさせる

Windmillは1つのプロセスを大きくするのではなく、ワーカーのコンテナを増やして水平にスケールします。処理量を倍にしたいなら、同じDATABASE_URLを指す2つ目のwindmill_workerサービスを追加し、サーバーにもう1コア与えてください。

これはVPS選びに実際的な結論をもたらします。ここでは速いコアより多いコアが勝ちます。Contaboの税別5.50 EURの4 vCPUはワーカー4つ分の並列性を買え、HetznerのCX23はほぼ同じ価格で2つ分です。ワークロードが少数の重いジョブではなく多数の小さなジョブなら、この比率が判断のすべてになります。

各社のプランをより広く見比べたい場合は、VPS比較の全体版をご覧ください。

Frequently asked questions

セルフホストしたWindmillにはどれくらいのRAMが必要ですか?

アプリ単位ではなくワーカー単位で考えてください。目安はvCPU1つにつきワーカー1つ、それぞれに1〜2GBのRAM、加えてPostgresとサーバープロセスの分です。ワーカー1つの構成なら2GBで動き、ワーカー2つの標準的なcompose構成は4GBで余裕があり、複数のジョブを同時に走らせるようになったら4 vCPUと8GBが現実的な目標になります。

WindmillにはCPUコアをいくつ割り当てるべきですか?

2 vCPUから始め、ワーカーを増やすのに合わせてコアを足してください。標準ワーカーは一度に1つのジョブしか実行せず、実質的に1コアを占有するためです。ネイティブワーカーは例外で、軽量なジョブを約0.1 CPUと128MBで処理します。標準構成が追加のコアなしにネイティブワーカーを1つ同梱できるのはこのためです。

WindmillにRedisや他のメッセージブローカーは必要ですか?

必要ありません。WindmillはPostgreSQLをデータベースとジョブキューの両方として使います。これは珍しい設計で、知っておく価値があります。第三者のガイドの多くが、公式のcomposeファイルには存在しないRedisサービスを追加しているからです。必要なデータストアはPostgreSQL 14以降だけで、Redisを足しても無駄なコンテナが増えるだけです。