为每个应用创建Azure存储帐户或每个区域创建一个存储是否更好?

dor*_*rsz 3 azure azure-storage azure-storage-blobs

所以我在这里考虑了两种情况:

  1. 为每个地区(例如西欧)创建一个大型存储帐户,并为每个应用创建一个容器.存储帐户转到每个区域的资源组.
  2. 在包含其他应用资源的资源组中为每个应用创建一个存储帐户.

Drawbacs为1:

  • 容器与其他应用程序资源分开,因为它们位于每个区域的存储帐户中

  • 容器设计为扁平结构(您可以创建文件夹,但这并不明显)

2的Drawbacs:

  • 很多存储帐户

看看这个,我会说每个应用程序创建存储帐户是一个更好的选择,但也许我在这里缺少一些东西.

所以问题是:这里还有其他事情要考虑让一个选项比另一个更好吗?也许是成本?

我偶然发现了一个类似的问题,但它是关于有一个大容器或许多小容器.所以问题在某种程度上是完全不同的,因为存储帐户作为一个整体是区域约束的,并且没有访问策略.虽然帐户中的所有容器都位于同一区域,但可以具有不同的访问策略.

Dav*_*gon 8

这个问题没有正确的答案.但客观地说,你会考虑几件事:

  • 如果您按容器分隔租户/应用程序,您将无法再按容器分隔应用程序的资产 - 您将自己限制为应用程序中所有资产的单个容器.
  • 如果您为所有租户/应用程序使用一个存储帐户,则可能达到存储帐户的20K /秒事务限制(并且可能达到500TB总限制)
  • 如果您使用一个存储帐户,并且您的应用程序使用存储帐户密钥,则每个应用程序实际上都可以完全访问存储帐户中的所有资源.(您可以使用共享访问签名来缓解此问题,但您还需要考虑队列/表的使用情况).
  • 如果您的租户/应用程序位于不同的区域,则租户对远程存储帐户的访问速度可能比较近的区域慢.
  • 如果您尝试限制对特定应用程序的访问,并且只有一个存储帐户,则最终可能需要授予用户访问存储帐户所在资源组的权限.这些人可能来自构建不同应用程序的团队.因此,您可能会将一个应用程序的资源暴露给另一个团队.
  • 如果多个团队共享同一个存储帐户,则存在一个团队可能无意中从另一个团队的应用程序中删除资产的风险.

可能还有其他事情要考虑,我忘了.