質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

Q&A

2回答

1702閲覧

ウェブサービス公開の際のサーバーの棲み分け

dpjgt4034

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

0グッド

0クリップ

投稿2016/08/24 17:22

はじめまして、質問失礼します。
ウェブサービスを作成する際のサーバーおよびドメインの棲み分けについて質問させていただきたいと思います。

たとえば、パンのデリバリーを行うウェブサービスを公開するために、www.breader.comというドメインを使用し、サーバーを用意します。
クライアントはこちらのドメインにアクセスしてきますので、その処理を行うためにこちらのサーバーにウェブアプリケーションのCakePHPを設置するとします。

ここからが本題なのですが、ユーザーのデータや掲載する店舗などの情報を保存するデータベースの置き場は同じサーバー内に設置するべきなのか、また違うドメインを取得した専用のサーバー内に作成するべきなのか、通常はどちらのケースが多いでしょうか?

前者であれば、同じドメインのサーバー内であれば、www.admins.breader.comみたいな形でサブドメインを取得し、その配下にデータベースを設置する。
後者であれば、異なるサーバー間をうまく連携させる処理を書くといった形になるかと思います。

一般的な設計の観点およびセキュリティ上の観点など知識をお持ちの範囲でお答えいただけますと幸いです。

サーバー関係およびウェブ設計は勉強したての初心者であるため、初歩的な質問で恥ずかしいですが、何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

門外漢なので、ご参考程度に…

サーバー構成は、公開するサービスがどの程度のアクセスを想定し、またどの程度の耐障害性を求められるかによって決まってくると思います。

基幹系や決済サービスのように、高い耐障害性が求められる場合には、DBサーバーも共有ディスク型のクラスタ構成にする場合が多いので、別サーバーにする場合が多いようです。

しかし、一般的なサービスでは敢えてサーバーを分けず、アプリ本体と同じサーバー上に配置して localhost でアクセスした方が速度面でもセキュリティ面でも得策な場合も多いです。それに、コスト面から考えても、特別な要件がなければ同一サーバー上に配置した方が有利であることは確かです。

それと、セキュリティ面を考えると外部から直接アクセスすることはないので、ドメインと紐付けることはあまりないと思います。これも設計上の決めの問題(設計ポリシーで決まる)ではありますが、別サーバー上にDBを配置する場合でも、IPアドレス、もしくはホスト名でアクセスするようにしているケースも多いと思います。

投稿2016/08/24 17:58

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dpjgt4034

2016/08/25 01:40

詳しくありがとうございます、非常に参考になりました。 下記ですが、こちらはデータベースを操作できるユーザーを追加する際に例えば、ユーザ名@localhostのように設定し、アクセスを許可させるということでよろしいでしょうか? >localhost でアクセスした方が速度面でも>セキュリティ面でも得策な場合も多いです また、このユーザー追加の際に指定したlocalhostというのは、操作を行った自分自身の環境が指定されるという認識でよろしかったでしょうか? 例えば、仮にAさんがA@localhostというユーザー追加を行った場合、当該ユーザーを使用する際は、localhostはAさんを指し、かつAさんの環境でしかログインできなくなるのか気になりまして。(=Bさんが、仮にA@localhostというユーザーの存在を知り、アクセスしようとした場合、A@localhostのlocalhostはAさんの環境に紐付いているのでBさんは弾かれるなど)
guest

0

###費用的な話
費用がかさむ等、政治的な理由の場合はアプリ本体と同じでも良いかと思います。
###セキュリティ的な話
そもそもDBサーバはアプリからしかアクセスされることはありません。
ですので、外部に公開する必要はありません。
アプリからのアクセスはローカルネットワーク内で疎通できれば問題ありません。

同じクラスタ構成にする場合は、あとあと分けないといけなくなったときに
どうやって移行するかまで考えておいた方が、今後のストレスがなくなると思います。

投稿2016/08/25 00:56

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dpjgt4034

2016/08/25 01:42

詳しくありがとうございます。 なるほど、てっきり最初からDBサーバーはWebアプリケーションと別サーバーに配置するものだと思っていましたが、ケースバイケースではあるものの、同一サーバー内でOKということで納得しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問