88:共有ストレージを用意しよう

サーバーが複数台あったとき、アップロードしたファイルなどの共有データを、どこに置いてどう管理したら良いか悩んだことはありませんか? 単一サーバーでは問題にならなかった、複数サーバー間でのファイル共有について考えてみましょう。

具体的な失敗

たとえば複数台のサーバーがあるようなWebアプリケーションを作ったとき、 以下の図のように単一のサーバーにだけファイルを保存していると、他のサーバーから利用できません。

../_images/figure1.png

図 4.1 複数台サーバーのときは、単一のサーバーにだけファイルがあってもダメ

またサーバーが故障した場合などに、ファイルが消えてしまうリスクもあります。

ベストプラクティス

アップロードファイルを集約して管理する、共有ストレージとなるようなサーバーを用意しましょう。 専用のサーバーが用意できない場合は NFS 等を利用してファイルを共有もします。

../_images/figure2.png

図 4.2 全サーバーで扱えるようにファイル管理用のサーバーか、仕組みを用意する

上記のような自分たちでストレージを管理する場合、サーバーの運用コストはそれなりにかかります。

cover

(中略)詳細は書籍 自走プログラマー をご参照ください