概要
- VPS構築手順 の完全チェックリストとガイド
- Hetzner と Coolify の選定理由と他社比較
- セキュアな本番環境 のための設定・運用ノウハウ
- 各工程の コマンド例・検証・トラブル対応 を網羅
- 自分用メモ 兼、初学者向けセルフホスティング解説
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 -aやcat /etc/os-releaseで情報確認
-
rootアカウントのセキュリティ強化
- rootパスワード変更(強力なパスワード使用、マネージャ保管)
- セカンダリユーザー作成(
adduser your-username) - sudo権限付与(
usermod -aG sudo your-username) - ユーザーグループ・sudo動作確認
-
SSH鍵認証の設定
- ローカルで Ed25519推奨 で鍵生成(
ssh-keygen -t ed25519) - 公開鍵をサーバーの
~/.ssh/authorized_keysへ設置・権限設定 - 鍵認証ログイン動作確認
- ローカルで Ed25519推奨 で鍵生成(
-
パスワード認証無効化
/etc/ssh/sshd_config編集:PasswordAuthentication no- cloud-init存在時は
/etc/ssh/sshd_config.d/50-cloud-init.confも確認 - SSH設定テスト・サービス再起動・状態確認
-
rootログイン禁止
/etc/ssh/sshd_configでPermitRootLogin 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でアプリエラー確認
よく使うコマンドリファレンス
- システム情報:
htop、df -h、free -h、uname -a - プロセスマネジメント:
pm2 status、pm2 restart all、pm2 logs、pm2 monit - セキュリティ:
ufw status、fail2ban status、lynis audit system - サービス:
systemctl status nginx、systemctl restart nginx、journalctl -u nginx
総括
- VPS構築・運用の全工程を網羅 したチェックリスト
- コスト削減だけでなく、運用・制御・学習効果 の高さを実感
- Hetzner + Coolify によるセルフホスティングで DevOps力向上
- VPSに興味があるなら、まずは一歩踏み出すことを推奨