ウェブアプリにNFSを使用するタイミング

ウェブアプリにNFSを使用するタイミング

現在、次のようなシンプルな Web アプリケーション アーキテクチャを AWS 上に構築しています: Elastic Load Balancer - 複数のフロントエンド - RDS データベース。

また、Web アプリを通じてユーザーがアップロードしたすべての画像 (主にプロフィール写真など) を保存するための NFS サーバーもセットアップしました (このために S3 を使用することはできません。取得した仕様に従っているだけです...)。

フロントエンド VM は、自動スケーリング グループによって生成されます。VM が生成されると、S3 バケットから Web アプリのソースがダウンロードされます。問題は、それらのソース内に巨大なファイル (主に mp4 や画像などの静的ファイル) がいくつかあることです。S3 からダウンロードするには時間がかかりすぎるため、これらの大きな静的ファイルを NFS サーバーにも保存することを検討しています。

そこで私の質問は、NFS にファイルを保存することが適切なのはいつで、各フロントエンドにファイルを保存する方がよいのはいつでしょうか? たとえば、mp4 を NFS に保存する場合、Web アプリケーション全体をこの NFS に保存しないのはなぜでしょうか?

注: これらのファイルを含むAMIは、変更時に十分な柔軟性がないため、構築したくありません。

答え1

すべてはパフォーマンスにかかっています。NFS ストレージが十分に高速であれば、すべての Web アプリと Web コンテンツ ファイルをそこに配置して、すべてのフロントエンド VM からアクセスできるようにしても問題ありません。

そうは言っても、これを行わない最も一般的な理由は、ネットワーク ストレージからファイルを取得するときに発生する余分なネットワーク遅延が、クライアントがブラウザーで Web アプリ/サイトを読み込むときに追加の遅延につながるためです。

もちろん、これは VM の基盤となるストレージに依存しますが、通常、ローカル ストレージはほとんどの場合、レイテンシが低いため、静的コンテンツの保存に適しています。私が関与した多くの負荷分散デプロイメントでは、すべての Web サーバーで利用可能な静的コンテンツを同期するために DRDB を使用しています。

関連情報