我的Azure项目设置如何进行数据传输

时间:2012-05-25 07:54:40

标签: azure azure-sql-database

我为最终用户Azure应用程序构建了一个实用程序(启动任务)。 该启动任务将通过REST API(托管在东亚)将该webrole应用程序(根据最终用户选择托管在任何区域)上的一些数据发布到数据库(托管在东亚)。

因此,如果最终用户在同一地区(东亚)托管了他们的应用程序,那么Azure不会为我和最终用户的数据传输付出任何代价(如果我理解错误,请更正我)。

在另一种情况下,如果最终用户在其他地区托管了他们的应用程序,那么最终用户将花费数据转移到另一个地区的REST API。

我为降低此成本所做的工作,我已在所有地区设置REST API,并在启动任务中告诉用户根据他们将部署其应用程序的区域设置特定REST API的路径。现在,在这种情况下,最终用户不会为数据传输付出任何代价但是我的REST API(托管在不同地区)将数据传输到数据库(托管在东亚),因此它将花费我以及托管REST API在所有地区降低最终用户成本。

在上述情况下,是否有办法使用共享数据库降低成本并删除托管在所有区域的多个REST API?另外,请建议是否有更好的解决方案来降低我和最终用户的成本。

3 个答案:

答案 0 :(得分:1)

有趣的场景:您基本上让最终用户为自己部署应用程序到所选区域?通过REST API上传数据库的目的是什么:备份还是实时数据?

我不理解的一件事是关于共享数据库的问题。根据您的描述,已经有一个共享数据库,因为每个用户都通过REST API将数据推送到东亚的单个数据库。这不正确吗?

根据您提供的信息,所有数据都转到一个数据中心,我看到3个选项,您已经指出了两个选项:

  1. 用户在8个数据中心的任何一个中托管应用程序,您在一个数据中心托管REST API。在这种情况下,用户可以在本地应用和应用之间获得最佳的本地应用性能,用户可以为您的API支付出口费用,并且用户可能会在跨数据中心传输数据时看到延迟。
  2. 用户在8个数据中心的任何一个中托管应用。您在所有数据中心托管REST API。用户的数据传输对本地REST API是免费的,而且速度非常快。但是,您然后将数据传输到东亚数据库,如果用户不在东亚托管,则会花费您的出口带宽。此外,您现在还需要许多额外的REST API实例。
  3. 仅限东亚的用户托管,以及您的REST API和数据库。所有数据中心带宽都是免费且快速的。用户可能会看到从内部部署到应用程序的延迟,具体取决于他们所处的位置。
  4. 在每种情况下,您都有用户部署自己的托管服务,然后与您的服务进行对话。是否可以通过让所有人访问相同的托管服务但使用不同的凭据来优化用户成本?

    为了您的成本,在每个数据中心托管REST API似乎是一笔巨大的费用,考虑到您需要在每个数据中心运行至少2个实例才能获得Windows Azure的正常运行时间SLA。但是......再一次,我并不完全理解你应用的情景。

答案 1 :(得分:0)

根据我的理解,似乎情况有点奇怪。如果您提供最终用户可以使用自己的Windows Azure帐户托管的软件包,为什么还要让他们使用自己的数据库呢?或者您的意思是您为最终用户提供项目的源代码作为样本?无论如何,我认为最好让最终用户提供自己的数据库帐户。如果您想为自己设计REST API,请将其托管在您自己的Windows Azure服务中。请不要将软件包分发给最终用户。此外,有关结算的详细信息,您还可以通过https://support.microsoft.com/oas/default.aspx?prid=14234&st=1&wfxredirect=1&sd=gn与我们的客户支持小组联系。

最诚挚的问候,

徐明。

答案 2 :(得分:0)

我认为在这种情况下,最好让客户提供自己的数据库。如果您需要使用自己的数据库,则很难节省成本。您可以使用托管在不同数据中心的多个数据库。但显然这需要更多的成本。您也可以使用单个数据库,但是某些用户不可避免地会从另一个数据中心传输数据。但是,您可以要求用户通过提高产品价格来支付费用。但看起来更好的是要求用户提供他们自己的数据库(如果他们愿意,他们甚至可以选择本地数据库)。这也有助于提高安全性,因为用户的数据不会被共享。

最诚挚的问候,

徐明。