質問: 1つのバケットまたはユーザーごとのバッカーに複数のs3ユーザー 知的な人々、ここに初心者!写真/オブジェクトストレージ用にs3上にマルチユーザー装置を構築することを計画しており、s3を使用することを計画していました。フロントエンド全体を計画していますが、バケットシステムについて質問があります。すべてのユーザーを保持するバケットを1つにする必要がありますか、それともユーザーを分散させた4〜5個のバケットを用意する必要がありますか、それともユーザーごとに1つのバケットを用意する必要がありますか?例として、各ユーザーは平均で約35 gbを格納しますが、将来的には3ユーザーから3億ユーザーまで、スムーズに実行できるようにしたいと考えています(可能な限りスケーラブル)どの方法を選択する必要がありますか?また、dropboxはs3日間に何をしましたか?
回答: ユーザーごとにバケットは必要ありません。 awsサポートがアカウントのデフォルトの合計バケット制限を100から300,000,000に増やすリクエストを承認する可能性は非常に低いと思われるという事実を気にしないでください。また、最初のバケットの作成は、積極的またはリアルタイムで行われることを意図していません。 amazon s3の高可用性エンジニアリングは、get、put、list、およびdelete操作に重点を置いています。バケット操作は一元化されたグローバルリソーススペースに対して機能するため、アプリケーションの高可用性コードパスでバケットを作成または削除することは適切ではありません。実行頻度の低い別の初期化またはセットアップルーチンでバケットを作成または削除することをお勧めします。 http://docs.aws.amazon.com/amazons3/latest/dev/bucketrestrictions.html 1つのバケットを使用するか複数のバケットを使用するかが問題にならないようにアプリケーションを設計します。どうやって?ユーザーごとに、そのユーザーのデータが保存されているbucket_idを保存します。次に、bucket_id 1の全員から始めて、後で必要になった場合、または一部のユーザーを別のバケットに移行する場合、またはユーザーを配置する場合は、新しいユーザーを新しいバケットに柔軟に配置できます。ユーザーの通常の場所に近いバケット内のストレージ。s3は、トラフィックの需要を満たすために容量を自動的にスケーリングします。キーの左側の近くにオブジェクトキーが順番に割り当てられないようにオブジェクトへのパスを設計することで、このプロセスを簡単にすることができます。s3はインデックスパーティションを分割することで容量をスケーリングします。たとえば、バケットインデックスは、キースペース。 http://docs.aws.amazon.com/amazons3/latest/dev/request-rate-perf-considerations.html を参照してください同じ理由で、リージョン内でバケットに字句的に連続した名前を付けないでください。dropboxが行っていた可能性のあることはおそらく関係ありません。