2

SAAS システムで Azure ストレージを使用する方法は、少し間違っていると思います。クライアントごとにストレージ アカウントを作成し (セキュリティが主な考慮事項でした)、システム エリアごとにコンテナーを作成しました (車両、作業など)。

さらに読んでみると、すべてのクライアントに対して 1 つのアカウントを使用するべきだったという提案があるようです。各クライアントにはコンテナーが必要であり (プログラムで作成できるように)、コンテナーを保護する必要があります。次に、「クライアント A」と呼ばれるコンテナなど、「仮想」フォルダ構造を使用してファイルを構造化する必要があります。次に、Work/Jobs/{entity id}/blah.pdf のように保存されたジョブのファイル (システムの Work 領域内)。これは理にかなっていますか?

その場合、再構築が必要なアカウントが約 10 個あります。あるアカウントのコンテンツを別のコンテナー アカウントに簡単にコピーできるツールはありますか? おそらくアカウント間でファイルを移動できないことを理解しています(かなり前に設定したため、ネイティブコピー機能を使用できないため)、ある種のコピーだと思います。すべてのアカウントに GB のファイルがあります。

4

2 に答える 2

5

クライアントごとに異なるストレージアカウントを保持することはそれほど悪い考えではないかもしれません。(私にとって)それを行うことの利点は次のとおりです。

  1. あなたが述べたように、より良いセキュリティ
  2. 各クライアントが独自のストレージアカウントを持っているため、スループット/クライアントを向上させることができます。すべてのクライアントに対して1つのストレージアカウントを保持し、1つのクライアントがそのアカウントにアクセスし始めると、他のクライアントに大きな影響があります。
  3. より優れたスケーラビリティ。各ストレージアカウントは、最大200TBのデータを保持できます。したがって、ストレージアカウントを1つだけ保持し、各クライアントが100 GBのデータを消費すると仮定すると、2000クライアントしか収容できません(私の計算が正しいことを願っています:))。個別のストレージアカウントを使用すると、その意味で制限されることはありません。

いくつかの欠点もあります。それらのいくつかは次のとおりです。

  1. 管理は悪夢になります。2000人の顧客がいると想像すると、2000個のストレージアカウントを管理することになります。
  2. WindowsAzureによって制限される場合があります。現在、デフォルトでは、サブスクリプションごとに約10または20のストレージアカウントを取得しており、その制限を手動で引き上げるには、サポートに連絡する必要があります。彼らはあなたのためにそれを行うことができますが、サポートに連絡することなく、必要な数のストレージアカウントを作成できるセルフサービスモデルにしたいと思います。

ここで、ツールについての質問になりますが、Blobのコピー機能を利用する何かを自分で作成できる可能性があります。この機能を使用すると、ストレージアカウント間でBLOBデータを非同期にコピーできます。基本的にこれはあなたがすることです:

  1. まず、ターゲットストレージアカウントのクライアントごとにBLOBコンテナーを作成します。
  2. ソースストレージアカウント内のすべてのBLOBコンテナーを列挙します。
  3. ソースストレージアカウントのBLOBコンテナーごとに、BLOBを列挙します。
  4. 各BLOBを非同期で、クライアントのBLOBコンテナー内のターゲットストレージアカウントにコピーします。

PowerShellのファンなら、この機能をラップしたCerebrataのAzure管理コマンドレット(http://www.cerebrata.com/Products/AzureManagementCmdlets )も調べることができます。CerebrataのAzureManagementStudioもお勧めできますが、まだこの機能を試していません[開示:私はCerebrataチームの開発者の1人です]。

お役に立てれば。

于 2013-01-24T13:32:33.337 に答える