plan-4ging

2026/03/25

VPS(Virtual Private Server)とは

1台の物理サーバーを複数の仮想サーバーに分割し、それぞれを独立したサーバーとして提供するサービス

「プライベート(Private)」という名の通り、他のユーザーとOS・ミドルウェア・設定を共有しない点が共有ホスティングとの最大の違い
root 権限を持ち、OS レベルから自由にカスタマイズできる

物理サーバー(1台)
 ├ ハイパーバイザー(KVM / Xen / VMware 等)
 │
 ├ 仮想サーバー A(自分の VPS)
 │   └ 独自の OS・CPU・メモリ・ストレージ
 │       root 権限あり・完全に独立した環境
 │
 ├ 仮想サーバー B(他のユーザー)
 │   └ 独自の OS・リソース
 │
 └ 仮想サーバー C(他のユーザー)
     └ 独自の OS・リソース

各サーバー形態の違い

共有ホスティングVPSクラウド(AWS/GCP等)専用サーバーオンプレミス
コスト月数百円〜月数百円〜数千円従量課金高額初期費用大
root 権限なしありありありあり
リソース専有共有(仮想的)専有専有完全専有完全専有
スケーラビリティ×△(手動)◎(自動)××
自由度低い高い高い最高最高
管理コスト低い中程度中程度高い高い
可用性・SLA自前管理
対象規模小・個人小〜中中〜大大・規制業種

使い分けイメージ

共有ホスティング
 → 個人ブログ・名刺代わりのサイトなど

VPS
 → 開発・検証環境・小規模 Web サービス・個人プロジェクト
 → 低コストで root 権限が欲しい場合

クラウド(AWS/GCP/Azure)
 → スケールが必要な本番サービス・マイクロサービス
 → マネージドサービス(RDS・S3・Lambda 等)を活用したい場合

専用サーバー
 → 高いリソースが必要・他ユーザーとの完全隔離が必要

オンプレミス
 → 金融・医療など規制業種・データを外部に出せない要件

ユースケース

向いている場面

  • 開発・ステージング環境
    • 本番はクラウドでも、開発環境は低コストの VPS で十分
    • Docker を入れて複数サービスをまとめて動かす
  • 小規模 Web サービス・API サーバー
    • トラフィックが少ない・安定している場合
    • 月数千円以下で運用できる
  • 個人開発・ポートフォリオ
    • 低コストで本格的な環境を持てる
  • VPN サーバー・踏み台サーバー
    • 自前 VPN(WireGuard・OpenVPN)の構築
    • セキュアな SSH 踏み台として活用
  • CI/CD の自前ランナー
    • GitHub Actions の self-hosted runner
  • ゲームサーバー・Bot サーバー
    • Minecraft・Discord Bot などの常時起動サービス

向いていない場面

  • 急激なトラフィック増加が想定されるサービス
    • VPS はスケールアウトに向かない
  • 高可用性(SLA 99.99%以上)が必要な本番環境
    • クラウドのマネージドサービスの方が堅牢
  • DB・ストレージの大規模運用
    • RDS・S3 などマネージドサービスの方が運用コストが低い

主要 VPS サービス

国内

サービスnote
さくらの VPS
ConoHa VPS
Xserver VPS
KAGOYA CLOUD VPS
カゴヤVPS

海外

サービスnote
Vultr
DigitalOcean
Linode(Akamai)
Hetzner

運用の注意点(セキュリティ)

初期セットアップ

VPS は root 権限を持つサーバーを公開する形になるため、初期セットアップのセキュリティ設定が非常に重要

# 一般ユーザーの作成(root での作業を避ける)
adduser deployer
usermod -aG sudo deployer

# SSH の公開鍵認証設定
mkdir -p /home/deployer/.ssh
chmod 700 /home/deployer/.ssh

# ローカルで生成した公開鍵を authorized_keys に追記する
echo "ssh-ed25519 AAAA..." >> /home/deployer/.ssh/authorized_keys
chmod 600 /home/deployer/.ssh/authorized_keys
chown -R deployer:deployer /home/deployer/.ssh

# sshd_config セキュリティ設定
sudo vim /etc/ssh/sshd_config

# 設定(/etc/ssh/sshd_config)
PermitRootLogin        no          # root ログインを禁止
PasswordAuthentication no          # パスワード認証を無効化
PubkeyAuthentication   yes         # 公開鍵認証のみ許可
Port                   2222        # デフォルトポートから変更(任意)
MaxAuthTries           3           # 認証試行回数の制限
X11Forwarding          no          # 不要な機能を無効化
AllowUsers             deployer    # 許可ユーザーを限定する

# sshd 再起動
sudo systemctl restart sshd

ファイアウォール設定

# ufw でポートを最小限に絞る
sudo ufw default deny incoming   # すべての受信をデフォルト拒否
sudo ufw default allow outgoing  # 送信は許可

# 必要なポートのみ開放する
sudo ufw allow 2222/tcp          # SSH(変更後のポート)
sudo ufw allow 80/tcp            # HTTP
sudo ufw allow 443/tcp           # HTTPS

# SSH は特定 IP からのみ許可するとより安全
sudo ufw allow from 203.0.113.10 to any port 2222

sudo ufw enable
sudo ufw status verbose

ブルートフォース対策(fail2ban)

# fail2ban インストール
sudo apt install fail2ban

# /etc/fail2ban/jail.local
[DEFAULT]
bantime  = 3600    # 1時間ブロック
findtime = 600     # 10分以内に
maxretry = 3       # 3回失敗でブロック

[sshd]
enabled  = true
port     = 2222    # 変更後の SSH ポートを指定
logpath  = /var/log/auth.log

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

定期アップデート自動化

# unattended-upgrades でセキュリティアップデート自動適用
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

# /etc/apt/apt.conf.d/50unattended-upgrades
# セキュリティアップデートのみ自動適用する設定
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "false";  # 再起動は手動にする

バックアップ設計

VPS はクラウドと異なりスナップショットが自動化されていないケースが多い
バックアップを自前で設計する必要がある

# rsync を使ったリモートバックアップスクリプト
#!/bin/bash
BACKUP_DIR="/backup/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR

# アプリケーションバックアップ
rsync -avz /var/www/myapp/ $BACKUP_DIR/app/

# DB バックアップ(PostgreSQL の例)
pg_dump myapp_production | gzip > $BACKUP_DIR/db_$(date +%H%M).sql.gz

# 30日以上前のバックアップ削除
find /backup/ -mtime +30 -type d -exec rm -rf {} +

# cron 登録(毎日深夜 2時に実行)
# 0 2 * * * /usr/local/bin/backup.sh

活用例

開発・検証環境

本番はスケール重視、開発は低コスト重視で使い分け

本番:クラウド(AWS/GCP)
開発・ステージング:VPS

Docker ホスト

VPS 1台に Docker + docker-compose で複数サービスを同居させる

  • 小規模サービス複数を1台にまとめてコスト削減
  • Nginx / Caddy をリバースプロキシとして前段に置く

踏み台・VPN サーバー

開発者が本番 DB に接続する際の SSH 踏み台として運用
WireGuard で自前 VPN を構築してセキュアなアクセスを実現

CI/CD の self-hosted runner

GitHub Actions の self-hosted runner を VPS 上で動かす

  • 月額固定コストで大量のビルドをこなせる

結論

下記が VPS を選ぶ典型的なケースとなる

・個人開発・小規模サービスで月のサーバーコストを定額かつ低く抑えたい
・開発・検証環境として気軽に使い捨てできる環境が欲しい
・root 権限が必要だが専用サーバーは高すぎる
・Docker ホストとして複数の小規模サービスをまとめて運用したい

参考