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、容量重視。