web-dev-qa-db-ja.com

AWS ALBとアプリケーションサーバー間でリバースプロキシは引き続き必要ですか?

コンテキスト

アプリケーションサーバーを使用するWebアプリケーション、つまりRuby on Rails with puma。Running with a container within AWS ECS with Fargate。Traffic is routed by AWS Application Load Balancerコンテナ内で実行されているアプリケーションサーバーに。

質問

ALBとアプリケーション自体の間、つまりサイドカーコンテナーとしてリバースプロキシは引き続き必要ですか?メリットは何でしょうか?

2
Leszek Zalewski

リバースプロキシは必須ではありませんが、Railsが同梱されているWebサーバーには最小限の機能しかありません。そのため、一般に公開されている可能性があり、大きくなる可能性があるアプリケーションでは、リバースを統合することをお勧めします。プロキシ(例:Nginx)。

たとえば、これにより、高度なレート制限機能、キャッシング、および他のWebサーバー実装よりもはるかに少ない手間でSSL終了をエンドツーエンドで実行できるようになります。ロギングも非常に簡単になり、TCP=再試行のようなものは、アプリケーションに負荷がかかっている場合の救命となります。

サイドカーは必要ありません。アプリケーションと同じボックスにNginxをインストールできます。その非常に効率的で、アプリケーションのパフォーマンスに影響を与えません。

Railsの前で複数のNginxプロキシを使用し、1日あたり数十億のHTTPリクエストを処理します。

Cloudflareなどの大規模なリバースプロキシ実装もNginx上に構築されています。

4
Garreth McDaid

ロードバランサーは一種のリバースプロキシです。特定のポートでトラフィックを受け入れる、一種のファイアウォールとして機能するなどの利点があり、サーバーに到達するある種の攻撃を防ぎます。

Webアプリの一般的なケースでは、ロードバランサーと2番目のリバースプロキシの両方を使用することの大きなメリットはありません。

1
Tim