1台のレンタルサーバーに複数のアプリを同居させつつ、不動産のデータだけは分ける

1つのレンタルサーバー(Xserver)の契約の中で、複数のアプリを動かしています。ドメイン、PHP、SSL、公開フォルダ、データベースとそのユーザーをアプリごとに分け、ほかのアプリのミスが不動産のデータに及ばないようにした設計です。

「同じサーバー、別のデータベース」の文字と、ドメイン・PHP・SSL・データベースを分ける札

1台のレンタルサーバーに複数のアプリを同居させる時は、同じ契約の中で、ドメイン、PHP、SSL、公開フォルダ、データベースとそのユーザーを、アプリごとにすべて分けました。データベースのユーザーまで分ければ、ほかのアプリの設定が漏れても、大事なデータのデータベースには入れません。

私たちは、1つのレンタルサーバー(Xserver)の契約の中で、いくつかの自社のアプリのサーバーを動かしています。そこに不動産の業務アプリ(Kaitori Base)を加える時、「同じサーバーに置くか、別のサーバーを契約するか」を決める必要がありました。

不動産のアプリは、物件や取引先など、重要な情報を扱います。ほかのアプリの更新やミスの影響は受けたくありません。一方で、サーバーを2つに分けると、管理の手間と費用がほぼ倍になります。私たちが選んだのは、同じサーバーの契約の中で、分けられるものはすべて分ける形でした。完全に別のサーバーにするのは、ほかの会社に売る段階で考えます。

1つのレンタルサーバーの契約の中で、分けたもの

水色の棚に、同じ大きさの四角い仕切りが並んでいる写真
1つの契約の中で、アプリごとに分けたもの(イメージ写真)
分けたもの どう分けたか
ドメイン アプリごとに、専用のサブドメインを使う
PHP のバージョン ドメインごとに設定する
SSL(https の証明書) ドメインごとに設定する
公開フォルダ アプリごとに別のフォルダ。公開フォルダには入口のファイルだけを置く
アプリの本体 公開フォルダの外の、アプリごとのフォルダに置く
データベース アプリごとに別のデータベースと、別のユーザー

データベースのユーザーまで分けたので、たとえ接客のアプリの設定が漏れても、そのユーザーでは不動産のデータベースに入れません。

1つのサーバーの契約の中で、ほかのアプリと不動産のアプリが、それぞれ専用のドメインと SSL、公開フォルダ、データベースとユーザーを持つ図
同じ契約の中で、アプリごとに分けたもの

データベースを共有しなかった理由

最初は、ログインを共通にするために、データベースを1つにまとめる案もありました。設計書では、この案を3つの理由で採りませんでした。

データベースを1つにまとめると起きること。片方の更新や重い処理がもう片方まで止める、解約した会社のデータを消す時にすべての表をまたいで探す、片方だけを別のサーバーへ引っ越せない
ログインを共通にする利点は、ほとんど無かった

ログインを共通にする利点は、ほとんどありませんでした。2つのアプリを毎日両方使うのは、オーナー1人だけだからです。その1人の便利さのために、あとで分けられる道を捨てるのは割に合わない、と判断しました。

完全に別のサーバーにしなかった理由

逆に、最初から別のサーバーを契約する案も採りませんでした。ログインや権限の判定、Google ドライブとのやり取りなど、2つのアプリに共通の部品があります。サーバーを分けると、それらを2か所で管理することになり、いつか必ずずれます。サーバー、証明書、見張り、送り方もすべて2つになり、年間の費用もほぼ倍です。

壁のバーに、フライパンやふたが、それぞれ決まった場所にかけられている写真
同じ台所でも、道具ごとに置き場所を決めておく(イメージ写真)
テスト用と本番用で本体の置き場所を同じにすると、テスト用に送っただけで本番の参照先も入れ替わる。別のフォルダに置くと本番は変わらない、という比較の図
テスト用に送っただけで、本番が入れ替わる

同じサーバーだからこそ起きたこと

同じサーバーに置いたことで、気づきにくい落とし穴にも当たりました。

サーバーで実行
php -v
(サーバーの既定の、古いバージョンが表示される)
php8.4 -v
(Web と同じバージョンが表示される)
ターミナルの再現。php -v ではサーバーの既定の古いバージョンが出て、php8.4 -v では Web と同じバージョンが出る。表示は見本
コマンドの PHP は、バージョンを指定して呼ぶ

完全に分けるのは、外に売る段階で

ほかの会社に売り、その会社のデータを預かる段階になったら、不動産のアプリを専用のサーバーに移すことを考えます。データベースを最初から分けてあるので、その時はアプリとデータベースを持って引っ越すだけで済みます。

ほかの会社に売ってその会社のデータを預かる段階になったら、不動産のアプリを専用のサーバーに移す。データベースを最初から分けてあるので、アプリとデータベースを持って引っ越すだけで済む
最初から分けてあるので、引っ越しは持ち運ぶだけ

まとめ

1台のレンタルサーバーに複数のアプリを同居させつつ、不動産のデータだけは分ける:要点のまとめ。同じサーバーの契約の中で、ドメイン、PHP、SSL、公開フォルダ、データベースとユーザーをアプリごとに分けた
この記事の要点
  • 同じサーバーの契約の中で、ドメイン、PHP、SSL、公開フォルダ、データベースとユーザーをアプリごとに分けた
  • データベースを共有すると、巻き込み、データの削除、引っ越しのすべてで困る
  • 別のサーバーにすると、共通の部品の管理と費用が倍になる。共通の部品は写しで持つ
  • テスト用と本番用の本体の置き場所を分ける。コマンドの PHP のバージョンに気をつける

この記事は、AI(Claude)の支援を受けて作成し、筆者が内容を確認しています。

  • Xserver
  • レンタルサーバー
  • データベース
  • PHP
  • 設計
  • デプロイ

関連する記事

この記事に関連するサービス・アプリ

ブログの一覧へ