執筆:株式会社エスロジカル(Webシステム受託開発・インフラ構築・運用改善)
「本番で動かすのは初めて」「小規模だけど止められないシステムを作りたい」という相談を多くいただきます。
本記事では、ユーザー数数百〜数千程度の小規模 Web システムを VPS やクラウドで本番運用する際に、
インフラ設計で押さえるべき要素と実務上の判断基準を整理します。
小規模でも本番環境として最低限必要な要素は次の通りです。
| 要素 |
役割 |
典型的な選択肢 |
| Webサーバー |
HTTP/HTTPS リクエストの受付・返却 |
Nginx、Apache |
| アプリケーションサーバー |
ビジネスロジックの処理 |
Go / Node.js / PHP-FPM / Gunicorn |
| データベース |
データの永続化 |
MySQL、PostgreSQL |
| ストレージ |
ファイル・画像の保存 |
ローカルディスク、AWS S3、OCI Object Storage |
| SSL/TLS 証明書 |
通信の暗号化・ドメイン認証 |
Let's Encrypt、SSL証明書 |
| バックアップ |
障害時のデータ復旧 |
mysqldump + S3、スナップショット |
| 監視 |
異常の早期検知・アラート |
Prometheus + Grafana、UptimeRobot |
| 選択肢 |
メリット |
デメリット・注意点 |
向いているケース |
| クラウド(AWS / OCI / Azure) |
スケール自由、マネージドサービス豊富 |
設定が複雑、コスト変動あり |
将来の拡張を見据えた設計 |
| VPS(さくら・ConoHa 等) |
月額固定・構成シンプル |
スケール上限あり、冗長化が難しい |
低コストで安定稼働が必要な場合 |
| 専用サーバー |
CPU/メモリの独占利用 |
コスト高、初期設定に時間がかかる |
高負荷・セキュリティ要件が厳しい場合 |
実務判断:「将来 5 倍以上にスケールする可能性がある」「マネージド DB を使いたい」なら最初からクラウドを選ぶ。
そうでなければ VPS の方が構成がシンプルで運用コストが低く収まるケースが多いです。
- 1 台構成(Web + DB 同居):月額コスト最小、設定・デプロイがシンプル。
DB とアプリが同じサーバーなので通信遅延ゼロ。
→ 初期フェーズ・ユーザー数 1,000 人未満・予算制約がある場合に有効。
- Web/App サーバー + DB サーバー分離:スケールアウト・バックアップ設計が柔軟になる。
DB は外部からアクセス不可に設定しやすい。
→ DB 容量が増大すると予想される・個人情報保護やセキュリティ要件が厳しい場合に推奨。
- CDN 追加(Cloudflare / CloudFront):静的ファイル(画像・CSS・JS)をオフロードするだけでレスポンスが大きく改善。
→ 画像が多いサイト・海外ユーザーがいる場合に検討。
本番環境では「最小権限の原則」に基づきポートを絞ります。
- 外部に開放するポート:80(HTTP)・443(HTTPS)・22(SSH、接続元 IP を固定する)
- DB ポート(3306 / 5432)は外部に絶対に開放しない
- SSH はパスワード認証を無効化し公開鍵認証のみに(SSH セキュリティ設定の詳細)
- UFW / iptables / セキュリティグループで受信ルールを明示的に管理し、「暗黙の許可」を排除する
本番 Web システムは HTTPS 必須です。
HTTP のみの本番運用はブラウザの警告表示・SEO ペナルティ・通信盗聴リスクがあり、現在では認められません。
- Let's Encrypt(無料 DV):certbot で自動取得・自動更新。個人・スタートアップの初期フェーズに適切。
ただし 2026〜2029 年にかけて有効期間が最大 47 日に短縮される予定で、自動更新の仕組みが必須になります。
- 有料 SSL証明書(DV / OV / EV):企業サイト・EC・個人情報を扱うシステムでは OV 以上を推奨。
共有ホスティングや certbot を動かせない環境でも取得でき、保証(Warranty)も付きます。
SSL証明書の一覧・購入はこちら(RapidSSL 4,356円/年〜) /
DV・OV・EV の違い /
SSL証明書 FAQ
小規模でも「バックアップがない本番」は設計不完全です。次の構成を基本とします。
- DB の日次 dump(mysqldump / pg_dump)→ 圧縮して S3 / オブジェクトストレージへ転送
- アプリケーションコードは Git で管理(デプロイ=git pull か Docker イメージのプル)
- 設定ファイル(Nginx・systemd unit)も Git または S3 に保存
- VPS・クラウドのスナップショット機能を週次で取得
- 最も重要:定期的にリストア手順を実際に試すこと。バックアップが存在していても復元できなければ意味がありません。
本番で何かが起きたとき、「ユーザーから連絡が来て気づく」では遅すぎます。
最低限、外形監視(外部からの HTTP ヘルスチェック)を設定します。
- UptimeRobot(無料プラン)・Better Uptime などで 5 分間隔の HTTP チェック
- ダウン検知時に Slack・メールへアラートを飛ばす
- CPU・メモリ・ディスク使用率は Prometheus + Grafana で可視化(設定方法はこちら)
- SSL 証明書の期限切れも監視に含める(期限 30 日前にアラート)
| 構成要素 |
月額目安 |
備考 |
| VPS 1 台(2GB RAM) |
1,500〜3,000 円 |
さくらVPS・ConoHa・Linode 等 |
| クラウド(OCI Always Free) |
ほぼ 0 円〜 |
無料枠あり。転送量超過に注意 |
| ドメイン |
100〜200 円 |
年額で支払うケースが多い |
| SSL 証明書(DV) |
330 円〜(年額換算) |
Let's Encrypt なら無料 |
| 外形監視(UptimeRobot) |
0 円〜 |
無料プランで十分な場合も多い |
- □ HTTPS(SSL/TLS)を有効化している
- □ SSH はパスワード認証無効・公開鍵認証のみ
- □ DB ポートは外部に公開していない
- □ DB の日次バックアップが動作している
- □ バックアップのリストア手順を 1 回テストした
- □ 死活監視(外形監視)でアラートが届く
- □ デプロイ手順が文書化されている(属人化防止)
- □ SSL証明書の有効期限を把握・監視している
← 技術ドキュメント一覧へ戻る