一般的に(仮想環境を想定)APサーバ、DBサーバを分離させるメリデメについて教えて下さい。
リスク分散、負荷分散等というキーワードがあたると思いますが、事例や具体例も伏せて教えて頂けると助かります。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答5件
0
もし仮想環境が同一ホスト上に展開されるなら、ほぼメリットは無い気がします
リスク分散的にも負荷分散的にも意味がないだけでなく、むしろ障害点が増えるだけの場合もあるかと
またAPサーバがスケールアウトする要件なら分離させることが必須になるでしょうし、じゃあその案件はスケールアップで対応しきれないなのかということにもなります
なぜならスケールアウトさせるとロードバランサーなども考慮に入れないといけませんし、そもそもの設計をステートレスなものにしないと全くパフォーマンスが上がらないこともありえて、考えだすと非常に面倒臭いことになってしまうからです
したがってこういうことを汎的に語るのには難しすぎるのではと思います
質問者、回答者が描いている規模感によってまったく咬み合わないのでは?
あと良くないことかもしれませんが、予算を多めに確保するためとかの理由で必要もないのに...
それなら何も言うことはありません
事例や具体例も伏せて教えて頂けると助かります。
事例や具体例も伏せるとこれくらいしか書くこと無い気が
投稿2016/02/17 19:09
総合スコア3939
0
今時のメリット、デメリットについて回答します。
●メリット
・使用するハードウェアリソース(CPU、メモリ、ディスクI/O、ネットワークI/O)の論理的分割ができ、視認性が良くなる。
・将来、スケールアウトする場合の手間が少なくなる。
・外部へ公開するサーバと内部サーバとの区別ができセキュリティが担保しやすくなる。
・ハングなどが発生した場合、障害ポイント(APソフト的なのか、DBソフト的なのか)が区別しやすくなる。
・AP、DB、双方のクラスタ化が容易になる。
●デメリット
・スケールアウトする場合、(論理的な)ハード費用に加えて、AP、DBのソフト的な処理も考慮する必要があり、改修費用を見込む必要がある。
・APスケールアウトの場合は別途負荷分散ノードが必要になる。
回収できるお金/サービスの重要性とコストを天秤にかけて判断する必要があります。
投稿2017/03/30 02:09
総合スコア4315
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
昔はサーバ単体の性能は今ほど高くなかったので、WebサーバとDBサーバを同じ物理サーバ上で動作させると性能面で厳しかったのです。その頃の考え方が踏襲されているというのが一つ。
同じ籠にもった卵の例えのように、リスク分散してセキュリティを高めるというのが一つ。
また、Web サーバがフロント側、DBサーバがバックエンド側という分類をすることで、システムの構成を整理するという意味合いもあります。※これに中間層としてアプリケーションサーバ(Tomcatとか)が入ることもある
Amazon AWS だと、EC2 のマシン上で DB 動かしてたりすると、「RDS 使わない?」ってメールが飛んできたりもしますね。
余談:
昔は最小構成で3台必要(Web、DB、ファイアウォール)というのがお約束でした。で、サーバ名を設定するときに3つ組で名前をそろえるのですが……3つ組の名前って、オタクな世界と相性がいいんですよね(汗 三悪とか3人組のヒーローものとか……一番多かったのは東方の三賢人のような気もしますが(そして casper がファイアウォールなのもお約束)
投稿2017/03/30 01:40
編集2017/03/30 01:43総合スコア13707
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
AWSクラウド構築テンプレートサービスの『WEB/AP+DBサーバ(Linux版)』を解説します
いろいろ書く前に調べてみたら、上記URLにあらかた、書いてありました。
投稿2017/03/30 01:48
編集2017/03/30 01:49
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
AWSなどのクラウド仮想環境だという想定で回答させていただきます。
まずメリットですが、第一に、DBサーバ自体を外部から参照できるネットワーク上においておくのは、非常に危険だと思います。
APサーバ単体で、WEBサーバとしても機能させる場合、APサーバとDBサーバを分離させるのは非常に有効な手段だと思います。WEBサーバでリクエストを拾ってAP+DBサーバを呼び出すのなら、この限りではないですが。
また、クラウドで使用することを考えるのであれば、サーバ負荷の管理もしやすいです、APサーバとDBサーバを分離することで、使用リソースの量が単純計算で予測できるようになることは自明でしょう。
デメリットは、手間や費用がかかることでしょう。仮想環境の構築をうまく単純化しないと(Infrastructure as Code手法)スケールアウトのたびに少なくない作業が発生します。
また、仮想環境を用意する費用もそれなりにかかることでしょう。
私が思いつくのはそんなところですかね?
投稿2017/03/30 01:25
総合スコア218
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。