私はファイル ストレージと共有機能を組み込むプロジェクトに取り組んでおり、AWS を活用するための最良の方法を何ヶ月も研究した後でも、まだ少し心配しています。
基本的に、私の決定は、EBS ストレージを使用してユーザー ファイルを格納するか、S3 を使用するかです。ユーザーが少数のファイルをダウンロードしたい場合、システムにはオンザフライのzipアーカイブが組み込まれます。また、ユーザーがファイルをダウンロードするときに、ファイルへの URL を公開したくありません。
私が思いついた2つの最良のオプションは次のとおりです。
ユーザーファイルを保存するためにマウントされた多数の EBS ボリュームを持つ EC2 インスタンスを用意します。
- 長所: S3 よりもはるかに高速で、EBS ボリュームからのファイルの圧縮は簡単です。
- 短所: Amazon は、使用できる EBS ストレージの量に上限を設けており、S3 ほどの冗長性はないと考えています。
ファイルがアップロードされて処理された後、システムはそれらのファイルを S3 バケットにプッシュして長期保存します。ファイルが要求されると、S3 からファイルを取得し、クライアントに出力します。
- 長所: 冗長性、ファイル ストレージの制限なし
- 短所: 非常に遅いようです。S3 バケットをファイルシステムのボリュームとしてマウントする方法はありません。圧縮されたファイルを提供するには、各ファイルを EC2 インスタンスに転送し、圧縮し、最終的に出力を送信する必要があります (これもまた遅い!)
私の仮定には欠陥がありますか?大量のファイル ストレージを管理するためのより良い方法を考えられる人はいますか?