今回の構成は、正直に言うと「選びたくて選んだ」というより「そうせざるを得なかった」に近いです。
業務で使っている既存システムの都合上、DB を SQL Server のまま持ってくる必要があり、VPS 上で Linux + SQL Server という少し変則的な構成になりました。
PostgreSQL など別の DB に移行する案も当然検討しましたが、
・プログラム修正コストが高い
・既存バッチや業務フローへの影響が大きい
・検証期間を十分に取れない
という理由で、今回は「現行踏襲」を選択。
理想より現実、といういつもの判断です。
以前書いた「なぜ業務DBに SQL Server を選び続けているのか」という記事の流れそのままで、今回も SQL Server 継続が一番安全、という結論になりました。
■ 検証・運用している VPS 構成
今回 SQL Server を載せている VPS 構成は以下です。
・VPS:XServer VPS ビジネスプラン
・OS:Ubuntu 24.04
・CPU:6 コア
・メモリ:12GB(8GB + 無料増量)
・ストレージ:約 400GB(NVMe)
実際に検証・運用している環境は Xserver VPS です。
ディスク容量と I/O を重視した結果、この構成に落ち着きました。
このあたりの初期構築は、以前まとめた「Xserver VPS 初期構築ログ」とほぼ同じ流れなので、今回は SQL Server 周りに絞って書いています。
■ なぜ Ubuntu + SQL Server という構成にしたか
Windows Server + SQL Server にする案もありましたが、
・Windows ライセンス
・CAL 管理
・パッチ運用
このあたりを考えると、運用負荷が地味に増えます。
一方、Linux 版 SQL Server は、実務で使ってみると意外と素直。
バックアップ、起動制御、監視など、普段の Linux 運用フローに自然に組み込めます。
「SQL Server は Windows じゃないと怖い」という先入観はありましたが、実際に検証してみると、そこまで構える必要はないと感じました。
■ SQL Server 2022 のインストール概要
Ubuntu 24.04 環境では、当時(2025年2月頃)公式の 24.04 向けリポジトリがなかったため、22.04 用を流用しています。
このあたりはタイミングによって変わるので、必ず公式ドキュメントを確認してください。
リポジトリ登録と依存関係まわりで少しハマりました。
apt update && apt upgrade -y
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list \
| tee /etc/apt/sources.list.d/mssql-server-2022.list
apt update
Ubuntu 24.04 では以下の追加ライブラリも必要でした。
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.11+dfsg-1~exp1ubuntu3_amd64.deb
dpkg -i libldap-2.5-0_2.5.11+dfsg-1~exp1ubuntu3_amd64.deb
apt install -y libcurl4 libssl-dev libgnutls30
ここは環境差が出やすく、エラーメッセージを見ながら地道に潰しました。
本体のインストールは以下。
apt install mssql-server
/opt/mssql/bin/mssql-conf setup
セットアップ時は、
・エディション:Express
・言語:日本語
・管理者パスワード:要件に合う強度
を選択。
起動確認。
systemctl status mssql-server --no-pager
systemctl enable mssql-server
ここまで特にエラーなく進めば、ひとまず安心です。
■ ファイアウォール設定と公開範囲
SQL Server の 1433 ポートを ufw で開放。
sudo ufw allow 1433/tcp
sudo ufw enable
sudo ufw status
ただし、インターネットへの直公開は避け、業務では VPN 経由、もしくは接続元 IP 制限前提で運用しています。
「繋がる」より「守れる」を優先です。
■ バックアップ運用(Windows 側から実行)
バックアップは Windows 端末から sqlcmd を使って実行しています。
sqlcmd -S <VPSのIP>,1433 -U <user> -P <password> ^
-Q "BACKUP DATABASE SampleDB TO DISK = N'/var/opt/mssql/backup/SampleDB.bak' WITH INIT"
出力先は Linux 版 SQL Server 標準の
/var/opt/mssql/backup/
取得は scp。
scp user@vps:/var/opt/mssql/backup/SampleDB.bak D:\backup\
これをバッチ化し、Windows のタスクスケジューラで定期実行しています。
SQL Server 公式の仕組みだけで完結させることで、属人化を防ぎ、引き継ぎや復旧を楽にするのが狙いです。
■ 実際に業務で使って問題なかったか
結論から言うと、かなり安定しています。
・メモリ消費:起動直後で約 600〜700MB
・CPU 使用率:通常時はほぼアイドル
・ディスク I/O:体感的な遅さなし
Express Edition + 中規模業務であれば、VPS でも十分現実的だと感じました。
「VPS で SQL Server は重そう」という不安は、実際に動かしてみたらほぼ消えました。
むしろ Windows Server 運用より楽になった面も多いです。
■ XServer VPS を選んでよかった点(DB用途視点)
DB 用途で一番気にしていたのは、ディスク性能と容量でした。
Xserver VPS のビジネスプランは、
・10Gbps ベストエフォート
・約400GB の NVMe
という構成で、ログ・DB・バックアップをまとめても余裕があります。
実際にクエリ応答やバックアップ速度を見ても、ストレスを感じる場面はほぼありません。
このあたりは、業務用途で長時間安定稼働させる前提では、かなり安心材料になります。
■ 業務運用で意識していること
今回の構成で一番意識したのは、「復旧しやすさ」です。
・SQL Server 公式の仕組みだけを使う
・バックアップは必ずサーバ外にも保管
・構成をシンプルに保つ
トラブル対応を何度もやってきた経験上、
「高機能」より「単純で戻せる」方が、結果的に安全だと感じています。
■ まとめ
Ubuntu 24.04 + SQL Server 2022 という構成でも、業務用途で十分安定して運用できています。
Linux といえど、運用の敷居は思っていたほど高くなく、むしろ管理しやすい面も多いです。
最初は少し構えていましたが、
「普通に動いている」
この一言に尽きます。
この環境の構成まとめ

次の記事



