

ウェブサーバーのグレードを上げる際の考え方について教えて下さい。

「サイトの利用者が多くなり、ウェブページの読み込みが重くなってきた」というのを想定しています。(もちろんプログラムを改善する方法や、最適化などもありますが、今回はサーバーよりの解決方法に限定してください。)

  * ロードバランサーを追加してウェブサーバーを増やす
  * ウェブサーバーの性能を上げる

この2つが思いつくのですが、それぞれどういう場合に適しているのでしょうか。他にもあれば教えて下さい。

また、重くなる原因も色々あると思います。

  * 単純にアクセスが多く、処理待が発生している場合
  * 性能は足りているが、同時接続が足りない場合
  * 転送量に対して、ネットワークの帯域が足りない

など。  
「こういう場合はこうなのでこれがベスト」というのを教えて下さい。

あまりサーバーのことがわかっていないので、不足していたり、おかしい点があれば突っ込んでいただけると嬉しいです。


CC BY-SA 3.0
2015-08-07T08:23:09.213
13137
2015-10-06T23:28:46.400
10439
question
apache nginx
サーバーの台数を増やすか、スペックを高くするか


ご質問の条件ですとどちらの手法でも問題は解決できそうですね。

現実的な問題としては「予算」が占めるウェイトがかなり大きいのと  
それ以外の要件（将来の負荷をどこまで見込むか、対障害性、運用コスト、Etc..）で  
最終的にベストな解決方法が決まります。

小さな規模であればスケールアップした方が簡単で安いですが、ある程度の規模を超えるとコストパフォーマンスが悪くなり、行くところまで行くと対応できなくなります。

ですので、ある程度の規模を超える or 超えることが見込まれる場合は、ロードバランサーを入れて
2台、3台とスケールアウトするのが基本的な路線かなと思います。

// 的外れでしたらすみません。


CC BY-SA 3.0
2015-08-07T10:36:50.850
13141
2015-08-07T10:36:50.850
5008
13137
answer


一般論として言えるのは、

  * スケールアップには簡単なものと大変なものがある
  * スケールアウトを考慮していないシステムをスケールアウトするのは大変

ぐらいなものです。

結局、スケールアップするかスケールアウトするかというのは、リソース見積もりとシステム構成作成の話に他なりませんので、システム設計についてきちんと書籍などで勉強されることをお勧めします。

「それぞれどういう場合に適しているのでしょうか」「こういう場合はこうなのでこれがベスト」というのは、「場合」を回答者がいくらでも考えられるので、あまり質問としてよくありません([質問のクローズ](https://ja.stackoverflow.com/help/closed-
questions)について確認してください)し、そういう「場合」をいくつか集めただけでは、現実の状況にはあまり役に立ちません。


CC BY-SA 3.0
2015-10-06T13:23:58.297
17322
2015-10-06T23:28:46.400
2017-04-13T12:52:39.113
-1
5793
13137
answer