0

Amazon EC2 に Tomcat7 サーバーをインストールしました。私のサーブレットの 1 つは、マルチパート ポストとして「ファイル」を受け取ります。このファイルをディレクトリ構造に保存する必要があり、後でファイルは別のサーブレットによって取得され、クライアントに送信され、Amazon Web サービスから削除されます。

私の質問 これらのファイルをどこにどのように保存し、サーブレットを使用してディレクトリ構造を作成する必要がありますか。

私は見ています

  1. ファイルへの最速のアクセス。
  2. クライアントに送信しない限り、ファイルの保存が必要です。
4

2 に答える 2

2

実際には 2 つのオプションがあります。

1-コンテンツをローカルインスタンスストレージに保存します(インスタンスストレージについては、インスタンスストアよりもEBSを強くお勧めします(背景についてはこの質問を参照してください)。ファイルを保存して取得する方が高速で、いつでも再必要に応じてインスタンスをスケーリングします。

2-ファイルを S3 に保存します。保存/取得時間は遅くなりますが、「自動化された」スケーラビリティ、暗号化、強化された耐久性と可用性 (労力をかけずに)、および直接リンクを使用してファイルを公開する可能性が得られます。ウェブアプリケーション。それ以外では、ファイルは特定の EC2 インスタンスにないため、ファイルを S3 に集中させたまま、新しいインスタンスを追加することで Web アプリケーションをスケーリングできます。

ファイルの配信中に速度が低下する可能性がありますが、私の推奨は S3 です。両方の環境をセットアップし、いくつかのテストを行います。決めるのに役立つかもしれません。

それが役に立てば幸い。

于 2012-07-14T13:19:35.267 に答える
1

@Viccariの答えは+1。それはオプションをうまくカバーしています。

ただし、要件Quickest possible access to the fileStore of the file is need as long as it is not send to the client.

S3は、EBSベースのストレージよりも著しく低速です。一度取得するまで単一のクライアントの特定のファイルを保存しているため、S3が提供するスケーラビリティは必要ありません。実際、S3に保存されたデータが他のアベイラビリティーゾーンに複製されるまでにはかなりの時間がかかる場合があります。

保存しているデータが何度も提供される場合は、S3の方が合理的な選択です(そのパフォーマンスがニーズに適している限り)。そのユースケース(ユースケースではありません)では、S3の上にCloudFrontを重ねます

于 2012-07-16T17:19:01.787 に答える