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

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

ただいまの
回答率

89.97%

AP、DBサーバを分離させるメリデメについて

受付中

回答 5

投稿

  • 評価
  • クリップ 1
  • VIEW 13K+

nobuooshiro

score 5

一般的に(仮想環境を想定)APサーバ、DBサーバを分離させるメリデメについて教えて下さい。
リスク分散、負荷分散等というキーワードがあたると思いますが、事例や具体例も伏せて教えて頂けると助かります。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

+5

もし仮想環境が同一ホスト上に展開されるなら、ほぼメリットは無い気がします
リスク分散的にも負荷分散的にも意味がないだけでなく、むしろ障害点が増えるだけの場合もあるかと

またAPサーバがスケールアウトする要件なら分離させることが必須になるでしょうし、じゃあその案件はスケールアップで対応しきれないなのかということにもなります
なぜならスケールアウトさせるとロードバランサーなども考慮に入れないといけませんし、そもそもの設計をステートレスなものにしないと全くパフォーマンスが上がらないこともありえて、考えだすと非常に面倒臭いことになってしまうからです

したがってこういうことを汎的に語るのには難しすぎるのではと思います
質問者、回答者が描いている規模感によってまったく咬み合わないのでは?

あと良くないことかもしれませんが、予算を多めに確保するためとかの理由で必要もないのに...
それなら何も言うことはありません

事例や具体例も伏せて教えて頂けると助かります。

事例や具体例も伏せるとこれくらいしか書くこと無い気が

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

昔はサーバ単体の性能は今ほど高くなかったので、WebサーバとDBサーバを同じ物理サーバ上で動作させると性能面で厳しかったのです。その頃の考え方が踏襲されているというのが一つ。
同じ籠にもった卵の例えのように、リスク分散してセキュリティを高めるというのが一つ。
また、Web サーバがフロント側、DBサーバがバックエンド側という分類をすることで、システムの構成を整理するという意味合いもあります。※これに中間層としてアプリケーションサーバ(Tomcatとか)が入ることもある

Amazon AWS だと、EC2 のマシン上で DB 動かしてたりすると、「RDS 使わない?」ってメールが飛んできたりもしますね。

余談:
昔は最小構成で3台必要(Web、DB、ファイアウォール)というのがお約束でした。で、サーバ名を設定するときに3つ組で名前をそろえるのですが……3つ組の名前って、オタクな世界と相性がいいんですよね(汗 三悪とか3人組のヒーローものとか……一番多かったのは東方の三賢人のような気もしますが(そして casper がファイアウォールなのもお約束)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

今時のメリット、デメリットについて回答します。

●メリット
・使用するハードウェアリソース(CPU、メモリ、ディスクI/O、ネットワークI/O)の論理的分割ができ、視認性が良くなる。
・将来、スケールアウトする場合の手間が少なくなる。
・外部へ公開するサーバと内部サーバとの区別ができセキュリティが担保しやすくなる。
・ハングなどが発生した場合、障害ポイント(APソフト的なのか、DBソフト的なのか)が区別しやすくなる。
・AP、DB、双方のクラスタ化が容易になる。

●デメリット
・スケールアウトする場合、(論理的な)ハード費用に加えて、AP、DBのソフト的な処理も考慮する必要があり、改修費用を見込む必要がある。
・APスケールアウトの場合は別途負荷分散ノードが必要になる。

回収できるお金/サービスの重要性とコストを天秤にかけて判断する必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/30 11:29

    あ、なるほど。確かに、スケールアウトの際の手間は、分離させたほうが手間が少なくなりますね汗
    失礼いたしました。自分の回答のスケールアウトに関する点は論点がずれていました。

    キャンセル

0

AWSなどのクラウド仮想環境だという想定で回答させていただきます。

まずメリットですが、第一に、DBサーバ自体を外部から参照できるネットワーク上においておくのは、非常に危険だと思います。
APサーバ単体で、WEBサーバとしても機能させる場合、APサーバとDBサーバを分離させるのは非常に有効な手段だと思います。WEBサーバでリクエストを拾ってAP+DBサーバを呼び出すのなら、この限りではないですが。

また、クラウドで使用することを考えるのであれば、サーバ負荷の管理もしやすいです、APサーバとDBサーバを分離することで、使用リソースの量が単純計算で予測できるようになることは自明でしょう。

デメリットは、手間や費用がかかることでしょう。仮想環境の構築をうまく単純化しないと(Infrastructure as Code手法)スケールアウトのたびに少なくない作業が発生します。
また、仮想環境を用意する費用もそれなりにかかることでしょう。

私が思いつくのはそんなところですかね?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

AWSクラウド構築テンプレートサービスの『WEB/AP+DBサーバ(Linux版)』を解説します

いろいろ書く前に調べてみたら、上記URLにあらかた、書いてありました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.97%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる