Last verified:
Windmillは、スクリプトをWebhook、ワークフロー、cronジョブ、社内向けUIに変えます。RetoolやTemporalのオープンソース代替です。そのVPS選びは多くのセルフホストアプリと勝手が違います。容量がワーカーで測られ、ワーカーはコアで買うものだからです。
この比較をコア数が決める理由
Windmillは、1つのプロセスにメモリを足しても速くなりません。ワーカーのコンテナを増やしたときに速くなり、実用上の上限はおよそvCPU1つにつき標準ワーカー1つ、それぞれ1〜2GBのRAMです。
これは一般的な助言を裏返します。ほとんどのセルフホストアプリではまずRAMを見て、コアは二の次に扱います。ここでは、ワーカーあたりのメモリ比率が同じなら4 vCPUのプランは2 vCPUのプランのおよそ2倍の同時ジョブを捌きます。つまり同じ価格でコアが多いプランは、単純により良いマシンです。
要件を形づくるアーキテクチャ上の事実がもう2つあります。
- キューはPostgreSQLです。 Redisも別のブローカーもないため、データベースはすべてのジョブ配分の経路上にあり、速いディスクを求めます。
- ネイティブワーカーはほぼ無償です。 軽量なジョブを約0.1 CPUと128MBで実行するので、標準構成は追加のコアなしにこれを1つ同梱できます。
Windmillのホスティングにおすすめの主要VPS
| プロバイダー | プラン | vCPU | RAM | ストレージ | 価格 | 並列ワーカー目安 | リンク |
|---|---|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 | 4 | 8GB | 100GB SSD | 5.50 EUR/月(税別) | 約4 | Contabo |
| Hetzner Cloud | CX23 | 2 | 4GB | 40GB NVMe | 5.49 EUR/月(税別) | 約2 | Hetzner |
| DigitalOcean | Basic 4GB | 2 | 4GB | 80GB SSD | 24 USD/月 | 約2 | DigitalOcean |
Contabo Cloud VPS 4 - 同じ金額でワーカーが倍
税別5.50 EURで4 vCPU、8GB RAM、100GB SSDが手に入ります。1セント安いHetznerのCX23と比べると、コアもメモリも倍であり、それはほぼそのまま同時ジョブ処理能力の倍に変わります。短いジョブの積み重ね、つまり定期同期、Webhookの処理、小さなETLといったワークロードでは、1ユーロあたり最も多くの仕事をこなすプランがこれです。
Contaboの弱点として知られている点はそのまま当てはまります。HetznerやDigitalOceanよりサーバーの用意が遅く、ネットワーク性能のばらつきも大きめです。主に自社のシステムと定期的にやり取りするジョブ実行基盤にとって、どちらも致命的な経路ではありません。
Hetzner CX23 - 標準構成には十分
CX23は税別5.49 EURで2 vCPU、4GB RAM、40GB NVMeです。標準のcompose構成、つまりサーバー、標準ワーカー1つ、ネイティブワーカー1つ、インデクサー、Postgresを余裕をもって動かせますし、NVMeはキューを兼ねるPostgresに向いています。制約は並列性です。動かせるワーカーはおよそ2つなので、ジョブが同時に来ると分散されずに順番待ちになります。CX33(4 vCPU、8GB、80GB NVMe)が8.49 EURでこれを解消しますが、Contaboの同等プランより高くつきます。
DigitalOcean Basic 4GB - ツールに対する上乗せ
月24 USDで2 vCPU、4GB、80GB SSD。CX23と同じスペックをおよそ4倍の価格で買うことになります。その対価は、3社で最良のスナップショット運用とドキュメント、そして手を加えずに動く監視です。チームがすでにDigitalOceanで生活していて、管理画面を1つにまとめたいなら妥当な判断でしょう。ジョブ実行基盤単体の選択としては、計算が合いません。
ワークロードに合わせたプラン選び
| ワークロード | 推奨プラン | 理由 |
|---|---|---|
| 小さな定期ジョブが多数 | Contabo Cloud VPS 4 | 並列性はコア数に比例する |
| ジョブは少数、ほとんど待機 | Hetzner CX23 | 標準のワーカー2つ構成が収まる |
| 依存関係の大きい重いPythonジョブ | Contabo Cloud VPS 4またはHetzner CX33 | 依存インストールでメモリが跳ねる |
| 1GBでの評価 | 非推奨 | ネイティブワーカーのみ。依存インストール不可 |
導入時のメモ
- composeファイルは自作せず、プロジェクトの
docker-compose.ymlを使ってください。Redisサービスを足すガイドは誤りです。Windmillのキューは PostgreSQL 上で動きます。 - 配布されている
.envのPostgresパスワードchangemeは初回起動前に変更してください。データベースはその起動時に作成されます。 BASE_URLを設定し、起動前にDNSをサーバーへ向けてください。Caddyが証明書を発行できるようになります。- Postgresのダンプをバックアップし、それを機密として扱ってください。ジョブが他のあらゆるシステムに使う資格情報が入っています。
まとめ
ここでの順位は、1つのアーキテクチャ上の事実から導かれます。Windmillは処理量をコアで買う、という点です。Contabo Cloud VPS 4は税別5.50 EURでおよそ4ワーカー、Hetzner CX23は5.49 EURでおよそ2ワーカー、米国勢は同じ2ワーカーを4倍の価格で提供します。特定のリージョンが要るのでなければ、あるいは特定のプラットフォームに統一しているのでなければ、1ユーロあたりのコア数がこの比較のすべてです。
利用できるVPSの詳細な比較はVPS比較の全体版をご覧ください。
Frequently asked questions
WindmillはVPS上でどれくらいのCPUとRAMを必要としますか?
アプリ単位ではなくワーカー単位でサイジングしてください。標準ワーカーは一度に1つのジョブを実行し、Postgresとサーバープロセスの分に加えて、およそ1 vCPUと1〜2GBのRAMを求めます。ワーカー2つの標準的なcompose構成は2 vCPUと4GBで余裕があり、複数のジョブが同時に走るようになったら4 vCPUと8GBが現実的な目標です。
同じ金額で最もWindmillの処理量を稼げるVPSはどれですか?
税別5.50 EURのContabo Cloud VPS 4です。ここでの処理量はコア数の関数だからです。4 vCPUはおよそ4つの並列ワーカーを支えられ、同じ価格帯の2 vCPUプランは2つです。ワークロードが少数の重いジョブではなく多数の小さなジョブであれば、この比率だけで比較の結論が出ます。
1GBのVPSでWindmillを動かせますか?
デモとしてなら動きます。ネイティブワーカーは軽量なジョブを約0.1 CPUと128MBで処理するので、画面は開きますし単純なジョブも走ります。ただしその容量に標準ワーカーは置けません。つまり依存関係をインストールするPythonやTypeScriptのジョブが一切できなくなり、実際の自動化作業のほとんどがそれに当たります。