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 ホストとして複数の小規模サービスをまとめて運用したい
参考
- さくらの VPS:https://vps.sakura.ad.jp
- XServer VPS:https://vps.xserver.ne.jp/
- fail2ban:https://wiki.archlinux.jp/index.php/Fail2ban
- unattended-upgrades:https://wiki.debian.org/PeriodicUpdates
- rsync:https://wiki.archlinux.jp/index.php/Rsync