マルチテナントアプリケーション用のAzureストレージ。Azureでマルチテナントアプリケーションの開発に取り組んでおり、テナントは約10,000で、テナントごとに約100GBから1TBのデータストレージが必要です。アプリケーションは、各テナントのメタデータとともにドキュメントとバイナリコンテンツを個別に維持することです。データを格納するためのAzureBlockBlobストレージを検討しています。テナントごとに別々のデータを維持する必要があるため、次のようなアプローチに出くわしました。
- テナントごとに個別のストレージアカウントを作成します
- これは、使用テナントを賢く維持するのに役立ちます。これも請求にも役立ちます。
- 各ストレージアカウントに個別のコンテナを作成して、カテゴリに基づいて分離します
- ドキュメントをメタデータと一緒にブロックBLOBストレージに保存します。
私たちのアプローチに関して、以下の質問があります。
- ドキュメントまたはバイナリコンテンツをメタデータと一緒にブロックブロブに保存することをお勧めしますか?または、それを実現するためのより良い方法はありますか(おそらく、メタデータにSQL Azureを使用し、コンテンツにBLOBを使用するか、それ以上)?
- メタデータのフィルター条件を使用してデータをクエリするにはどうすればよいですか?つまり、metadat1=value1およびmetadata2=value2であるすべてのblobを取得します
- テナントごとに個別のストレージアカウントを作成することをお勧めしますか?
a。そうでない場合、Azureストレージにテナント固有のデータを格納し、アプリケーションがそれらを効率的に使用できるモデルスルーは何でしょうか。 - スケーラビリティと高可用性のコンテキストで、Blobストレージ上のデータの読み取り/書き込み要求の数に帯域幅またはその他の制限はありますか?
- 紺碧の価格設定モデルに従って、ストレージに対してスラブごとに課金されます。つまり、最初の1 TB $ 0.095 / GB、次の49 TB $ 0.08/GBです。この料金は、ストレージアカウントごと、またはサブスクリプションごとに適用されますか?
a。同様に、トランザクションコストは、ストレージアカウントごとまたはサブスクリプションごとに適用されますか?