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

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

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

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

4400閲覧

apサーバーの冗長化

msickpaler

総合スコア14

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/03/24 00:03

分かりにくくて申し訳ございませんが、nginx(ロードバランサー)
nginx nginx(WEBサーバー×2)
puma puma(APPサーバー×2)
mariadb(DBサーバー)
という構成を考えております。

そこで質問ですが、
webサーバーを2つにして冗長化・負荷分散する構成はよく見られますが、appサーバーを2つにすることをあまり見かけません。appサーバーを増やすことはあまり意味がないのでしょうか?

よろしくお願い致します。

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

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

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

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

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

nanami12

2020/03/24 00:19

冗長化 と 負荷分散 はアプローチの手段が異なります。 冗長化 を重視するなら、HDDをRAID構成にするなどが一般的です。
guest

回答2

0

appサーバーを2つにすることをあまり見かけません。

負荷分散、高可用性を目的として普通に見かけますよ。
というかエンタープライズ環境ではAPサーバー冗長化しない構成はほとんど見かけません。
(google.com)APサーバー 負荷分散

投稿2020/03/24 00:27

Y.H.

総合スコア7914

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

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

msickpaler

2020/03/24 00:33

むしろAPサーバーこそ冗長化すべきなのですね。未経験で勉強中の身のため、間違っていることを気付いていませんでした。 ありがとうございました!
guest

0

ベストアンサー

webサーバーを2つにして冗長化・負荷分散する構成はよく見られますが、appサーバーを2つにすることをあまり見かけません。appサーバーを増やすことはあまり意味がないのでしょうか?

そういう常識はないと思います。特に nginx を Web サーバとする場合、その CPU 負荷は低く、サーバのスペックが同じであれば、数台のアプリケーションサーバを従えても充分に処理できる性能が出るはずです。
どちらかというと、 アプリケーションサーバを冗長化するほうが普通だと思います。

アプリケーションサーバと Webサーバの役割分担の詳細がわからないので、なんとも言えませんが、通常だと nginx は右から左にパケットを流すだけの言わばネットワーク機器的な存在です。そういう意味では、

nginx(ロードバランサー)

nginx nginx(WEBサーバー×2)

この構成も解せません。

nginx(ロードバランサー✕2 HA=Pacemakerなどによる Ative-Standby)

のような構成にして、Webサーバとロードバランサを兼用にするので充分だと思います。それで数台のアプリケーションサーバをまかなえます。

役割的には以下のようになります。

ロードバランサ/Webサーバ: クライアントからの多数の接続を集約する受付係=CPUはあまり使用せず、1台で1万同時接続くらいまで耐えられるはず。ファイルディスクリプタの枯渇に注意。

アプリケーションサーバ: ビジネスロジックを計算する演算&フロー処理係=アプリケーションの性質によって、メモリやCPUを必要とするので、要件に合わせてリソースを配備。台数を増やすことで増強可能。

DBサーバ: データを永続化する係。ディスクI/O、容量重視。

投稿2020/03/24 00:19

mit0223

総合スコア3401

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

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

msickpaler

2020/03/24 00:31

回答ありがとうございます。 とても分かりやすく、勘違いしていた部分ばかりだと気付けました。 素早い回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問