世界を動かす技術を、日本語で。

VPS「Hetzner」と「Coolify」の初心者ガイド

概要

  • VPS構築手順 の完全チェックリストとガイド
  • HetznerCoolify の選定理由と他社比較
  • セキュアな本番環境 のための設定・運用ノウハウ
  • 各工程の コマンド例・検証・トラブル対応 を網羅
  • 自分用メモ 兼、初学者向けセルフホスティング解説

VPSセルフホスティング完全ガイド & チェックリスト

事前準備チェックリスト

  • VPSプロバイダ選定 (Hetzner推奨、コスパ重視)
  • サーバースペック選定 (最低1GB RAM、20GBストレージ)
  • IPアドレス・root情報の控え
  • ローカルPCにSSHクライアント 準備
  • 強力なパスワードジェネレータ 手配

VPSプロバイダ選定理由

  • Hetzner Cloud: 安価・高速・欧州拠点
  • 比較検討
    • DigitalOcean: UI良・ドキュメント充実・やや高価
    • AWS Lightsail: 小規模向け・AWS依存・初心者には複雑
    • Linode: 信頼性高・コスパはHetznerが上
    • Render/Fly.io: PaaSで簡単だが高コスト・独自仕様多め
  • Hetznerの決め手
    • 同スペックで2〜3倍安価
    • 欧州データセンターで低遅延
    • 明朗会計・サプライズ請求なし

サーバー初期設定チェックリスト

  • 初回ログイン・システム更新

    • rootでSSHログイン
    • apt update && apt upgrade -yでシステム更新
    • uname -acat /etc/os-releaseで情報確認
  • rootアカウントのセキュリティ強化

    • rootパスワード変更(強力なパスワード使用、マネージャ保管)
    • セカンダリユーザー作成(adduser your-username
    • sudo権限付与(usermod -aG sudo your-username
    • ユーザーグループ・sudo動作確認
  • SSH鍵認証の設定

    • ローカルで Ed25519推奨 で鍵生成(ssh-keygen -t ed25519
    • 公開鍵をサーバーの~/.ssh/authorized_keysへ設置・権限設定
    • 鍵認証ログイン動作確認
  • パスワード認証無効化

    • /etc/ssh/sshd_config編集:PasswordAuthentication no
    • cloud-init存在時は/etc/ssh/sshd_config.d/50-cloud-init.confも確認
    • SSH設定テスト・サービス再起動・状態確認
  • rootログイン禁止

    • /etc/ssh/sshd_configPermitRootLogin no設定
    • SSH再起動とrootログイン不可の検証

ファイアウォール設定(UFW)

  • UFWの基本設定

    • 状態確認・デフォルトポリシー(受信全拒否、送信全許可)
    • SSH(またはカスタムポート)、HTTP/HTTPS許可
    • UFW有効化・ルール確認
  • 高度な設定(推奨)

    • SSH接続元IP制限
    • SSHポート変更後のファイアウォール調整

自動アップデート設定

  • unattended-upgradesインストール・有効化
  • セキュリティアップデート自動適用設定
  • メール通知・自動再起動オプション
  • 設定テスト・サービス状態確認

本番アプリケーションデプロイ

  • Node.js本番環境構築

    • Node.js LTSインストール・バージョン確認
    • PM2グローバル導入
    • アプリケーションファイルアップロード・依存インストール・ビルド
    • PM2で本番起動・クラスタ構成・自動起動設定
  • リバースプロキシ(Nginx)設定

    • Nginxインストール
    • サイト設定ファイル作成・有効化
    • 基本的なリバースプロキシ設定例
    • 設定テスト・Nginx再起動

SSL証明書設定(Let's Encrypt)

  • Certbotインストール・nginxプラグイン利用
  • 証明書取得・自動更新テスト
  • SSL評価サイト(SSL Labs)でA/A+確認

監視・メンテナンス

  • 基本監視ツール(htop, iotop, netstat-nat等)導入

  • システムリソース・ログ監視

  • ログローテーションの設定

  • バックアップ戦略

    • シェルスクリプトでアプリ・DBバックアップ
    • cronで自動実行設定

トラブルシューティング

  • SSH接続不可時:ファイアウォール・SSHサービス・ログ確認・他ネットワークからテスト
  • パーミッションエラー:ファイル権限・グループ・sudo設定確認
  • サービス起動失敗:systemdステータス・journalctl・設定ファイル構文チェック
  • 高負荷時:htop・df・netstat・アプリログ調査

最終検証チェックリスト

  • SSH鍵認証のみ有効・パスワード認証無効化確認
  • rootログイン遮断・ファイアウォール稼働確認
  • 自動アップデート稼働・本番アプリ動作確認
  • SSL証明書有効・バックアップ作成確認

パフォーマンステスト

  • Apache Benchで簡易負荷テスト(abコマンド)
  • htop等でリソース監視
  • pm2 logsでアプリエラー確認

よく使うコマンドリファレンス

  • システム情報:htopdf -hfree -huname -a
  • プロセスマネジメント:pm2 statuspm2 restart allpm2 logspm2 monit
  • セキュリティ:ufw statusfail2ban statuslynis audit system
  • サービス:systemctl status nginxsystemctl restart nginxjournalctl -u nginx

総括

  • VPS構築・運用の全工程を網羅 したチェックリスト
  • コスト削減だけでなく、運用・制御・学習効果 の高さを実感
  • Hetzner + Coolify によるセルフホスティングで DevOps力向上
  • VPSに興味があるなら、まずは一歩踏み出すことを推奨

Hackerたちの意見

この2つのCSS設定をオフにしたら、ブログのUI/UXが千倍良くなったよ。

pre { margin: 2rem 0 !important; padding: 1rem !important; }

各コードブロックのパディングとマージンがでかすぎて、ビューポート内で3行しか読めないんだよね。それと、Webmin/Virtualminをインストールするのもおすすめ。新しいサブドメインやユーザーの展開など、いろんな問題を解決してくれるから。

OVHはHetznerと同じくらい信頼できるし、今はかなり安いプランがあるよ。 https://us.ovhcloud.com/vps/configurator/?planCode=vps-2025-... それはさておき、Coolifyにはどのディストリビューションを選ぶ?Ubuntu 24.04とDebian 13で迷ってるんだ。

彼らのデータセンターが燃えない限りはね…

そのリンクは、月15ドルのVPSに繋がるね。Hetznerは月3.60ユーロのVPSがあるよ。

Hetznerのクラウドサーバーは、私の(限られた)経験からすると、OVHのVPSよりもかなりパフォーマンスがいいよ。ただし、あなたの環境によるかもね。(両方の顧客として満足してる)

おお、すごい。OVH VPS - 24 vCPU(またはスレッド)96GB RAMで月53.40ドル。Hetzner VPS [1] - 16vCPU、32GBで月54.90ドル。DO Droplet - 一般計算、通常CPU、16 vCPU、64GB RAMで月504ドル。Linode - 20 vCPU、96GB RAMで月576ドル。Upcloud - 24 vCPU、96GB RAMで月576ドル。OVHがどのCPUを使ってるのかはわからないけど、他はAMD EPYCか新しいIntel Xeonだね。でも、価格差が大きすぎて、たとえIntel E-Core CPUでもかなりお得な感じだよ。[1] Intel vCPUの安いオプションもあるけど、そのハードウェアは古くて、他の顧客がプランをキャンセルしてスロットが空いたときだけ利用できるんだ。だから、新しいAMDオプションだけを比較に使ってる。

これらのCPUはおそらく共有されてるってことは重要だね。そして、どれくらい共有されてるかは教えてくれない。Hetznerには同じコア数のサーバーが2台あるけど、片方は半額なんだ。どこにも書いてないけど、パフォーマンスをテストすると、安いサーバーでは実際に半分の性能しか出ないんだよね。

あなたの近くにあるサーバーが欲しくないの?例えば、serversearcher.comで見ると、4GB/2CPUが約70〜80ドル/年で、例えばclouviderから選べるのは7つのアメリカの都市くらいだよ。

OVHとHetznerが他よりも桁違いに安いのはどうしてなんだろう?VPSの共有が多いから理解できるけど、専用サーバーもすごく安く売ってるし…これって罠なのかな?それにOVHは最近価格を変えた?数年前にチェックしたときはHetznerより高かった気がするんだけど。

これはかなりお得だね。軽い気持ちでクリックしたら、あまり期待してなかったのに…間違ってた!

OVHは前のスタートアップではあんまり良くなかったな。APIサーバーの仮想ネットワークカードが毎晩、予測できない時間に外れちゃってた。OVHのサポートの応答時間もひどくて、数日待たされて、結局数週間後にエスカレーションされた。彼らは解決策を見つけられず、新しいサーバーを立てることを勧めてきた。その時にはもう移行してたけど、初めてインフラを管理するのがちょっと怖かったよ。単なる体験談だけど :) サポートプランがあれば買った方がいいかもね。

最近、FreeBSDサーバーの一つをHetznerに移行したけど、すごくスムーズだったよ。唯一の問題は、請求サイクルが終わるまでメールサーバーをホストできないこと。必要なポートがブロックされてるからね。俺にとっては問題なかったし、理由も分かるけど、最初はちょっと分かりづらかったな。

クレジットカードが期限切れになると、Hetznerは何も警告せずにネットワークを切断しちゃうから、直すまで何もできなくなるよ。問題があるって連絡が来て初めて気づくんだ。どうやって気づいたと思う… :(

初心者の俺には素晴らしいまとめだね!絶対にブックマークするわ。ただ一つ残念なのは、タイトルに書いてあるのに、著者がCoolifyについて言及してないことかな :( 同じテーマの別の記事で、もうブックマークしてるのがあるんだけど、 「ゼロからのプロダクション対応VPSの設定」 https://dreamsofcode.io/blog/setting-up-a-production-ready-v... このトピックについての知識を広げるために、こういう内容を読み終わったら、記事のリンクをコピーしてLLMに入れて、「これが『トピック名/記事タイトル』に関する記事だよ: https://article.link。理解して、分析して、各セクションを自分の知識から拡張してね。関連する追加セクションも加えて」ってプロンプトするんだ。

さらに、Coolifyの初めての設定を手助けしてくれたこの動画チュートリアルを心からおすすめするよ:https://www.youtube.com/watch?v=taJlPG82Ucw もう約1年この設定を運用してて、実際に自分でホスティングしてるのは初めてで、かなり自信を持ってるんだ。

Coolifyについて聞きたくて記事をクリックしたのに、記事のタグやイントロ、締めの文以外では全く触れられてないんだよね。Coolifyについて言及する必要はないと思う。この文章はCoolifyの展開のためのVPSの準備についてだけど、Coolifyの設定には触れてないように思える。

いいガイドだけど、特にHetznerを使う場合、ファイアウォール設定には同意できないな。もしこのシンプルな構成だけが必要なら、彼らのファイアウォールソリューションで十分だし、問題を「アウトソーシング」するのも上手くやってるよ。もうちょっとこだわりたいなら、API経由で設定できるよ。 https://docs.hetzner.cloud/reference/cloud#firewalls Hetznerのファイアウォールソリューションに対して、俺が知らない異論がある人いる?

ガイドには、Hetznerが他のプロバイダーやプラットフォームより選ばれた理由が書いてあって、全体のエコシステムに縛られたくなかったから、これをどこにでも持っていけるようにしたんだって。

SSHを自分のIPに制限する(オプションだけど推奨) それは危険だよね。IPが変わったらどうするの?ロックアウトされちゃうじゃん?

SSHで本当にやるべきことは、パスワードじゃなくてキーを使うことだけ。これでほとんどのケースでは十分安全だよ。さらにもう一層の対策をすると、ログのノイズを減らせるし。サーバーにSSH以外で公開する必要のないものがあれば、VPNとかで制限するのもいいと思う。サーバー上で待ち受けてる他のソフトウェアは、SSHよりも攻撃対象が多い可能性が高いからね。

Hetznerのダッシュボードからいつでもリセットできるよ。でも、動的な家庭用IPに制限するよりは、Tailscaleみたいなものを設定するか、専用の静的IPを持つVPNを使った方がいいね。

そうだね、危険だよね。多くの人が家庭では動的IPを使ってるし。SSHキーを設定してルートログインを無効にしたら、あとは大丈夫だよ。

これをクリックしたのは、Coolifyが今のDocker Composeを使ったセットアップに対抗できるか見たかったから。私のVMでは、プライベートDockerレジストリやTraefikフロントエンドプロキシを使ってるんだけど。Coolifyについての具体的な言及はゼロだし、準備の手順が「ただDocker Composeのベースイメージを使って、いくつか調整するだけ」よりもずっと複雑に見える。今のままでいいや。ホスト間の移行が簡単で、99%はDocker ComposeのYAMLファイルをコピーするだけだからね。

Coolifyや似たようなプロジェクトがストリーミングレプリケーションでDBバックアップをサポートするまで、ただの趣味プロジェクトのままだと思うし、顧客向けには使えないよ。Docker Composeとbashスクリプトがあれば、2つのVMを運用できるし、1時間ごとにS3にバックアップ、WALストリーミングをS3に、PGとRedisのストリーミングレプリケーションを別のVMにするだけで済む。これが生産環境の最低限だね。

Coolifyのインストールにはまだrootが必要だけど、今作業中のrootなしのブランチもあるみたい。だから、sshで入ってcoolify installをやって、必要ならrootログインをオフにすればいいんじゃないかな。もしまたsshで入る必要があったら、サーバーを吹っ飛ばして最初からやり直す覚悟があればだけど。最近、ゼロからcoolifyをデプロイしようとしたら、sshキーのエラーでずっと失敗しちゃった。他のサーバーではうまくいってて、いろんなプロジェクトをデプロイしてるけど、「docker composeを渡すだけ」って方法は今までうまくいったことがないんだよね。

Coolifyは、裏でTraefikとDockerを使っていて、実際にはそのためのUIに過ぎないよ。重要なバックアップ機能が欠けてるし(resticとかで解決できるけど)、UXは…まあまあって感じかな。

数ヶ月前に試してみたけど、複数のコンテナを使ったプロジェクトを作ろうとすると、いろんな問題が出てきたんだ。例えば、どのコンテナを起動したか「忘れちゃう」ことがあって、もう止められなくなったり、Coolifyが1つしか認識してないのに同じサービスのコンテナが2つ動いてたり。Coolifyで各サービスを別々に登録すればまあまあ動くと思うけど、今は君が使ってたのと同じセットアップに切り替えたら、逆にCoolifyよりずっと簡単に動かせるようになったよ。Coolifyみたいなプロジェクトに取り組んでる人たちには本当に感謝してるけど、今のところは真剣に使うにはまだまだ準備が整ってないと思う(個人的にね)。

同じスペックでDO/AWSと比べて2〜3倍安いからって、パフォーマンスが同じとは限らないよ。趣味のクラウドプロバイダーを探してたとき、同じようなスペックのインスタンスをいくつかベンチマークしたんだ。CPU/RAMのオーバーコミットの度合いは、クラウドプロバイダーやインスタンスタイプによって違うから注意してね。VultrがDOよりも一貫して速いことがわかったよ。過去にOVHを使ったことがあるけど、興味はなかった。Hetznerも、あの価格でパフォーマンスを出せるとは思えなかったから考えなかったんだ。その後、Vultrが最も速いっていう他のベンチマークを見たけど、それはかなり前の話で、最近はチェックしてないけど、切り替える理由もないしね。

Hetznerが安い理由は、コンシューマーハードウェアを使ってるからだよ。前に似たような価格のVPSをいくつか比較したとき、Hetznerが圧倒的に速かったけど、その時はVultrを試してなかったんだよね。

ルートパスワードを変更するな。新しいユーザーを作って、sudo権限を与えた方がいい。SSHポートを変更することの有用性は議論の余地があるけど、ログのノイズは減るかもね。それに、SSH接続を特定のIPに制限する代わりに、サーバーをTailscaleの背後に置いて、そのインターフェース経由でのみSSH接続を許可するのも考えてみて:https://tailscale.com/kb/1077/secure-server-ubuntu(これもログの問題を解決するよ)