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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

5回答

31911閲覧

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

nobuooshiro

総合スコア7

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

1クリップ

投稿2016/02/17 08:24

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

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

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

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

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

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

guest

回答5

0

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

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

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

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

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

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

投稿2016/02/17 19:09

dojikko

総合スコア3939

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

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

0

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

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

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

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

投稿2017/03/30 02:09

over

総合スコア4309

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

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

GrayWingAliance

2017/03/30 02:29

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

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
tacsheaven

総合スコア13703

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

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

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

GrayWingAliance

総合スコア218

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問