27

前言

我一直在寻找基于云的托管解决方案,尤其是 MS Azure 和亚马逊的 EC2。他们,微软亚马逊,有描述“成本/小时”/“计算小时”的定价表。

问题

当他们说“成本/小时”或“计算小时”时,一小时是多少?在 ASP.NET 应用程序的情况下,它是应用程序池处于活动状态的时间量吗?或者,您的应用程序处于活动状态的时间量?或者,它是否以某种方式与每小时/分钟的传入请求有关?

如果应用程序不活动(服务请求)是否有可能不计入总成本计算,从而减少总“计算时间”?

4

3 回答 3

27

大卫和迈克的好答案。让我补充一点:与其考虑应用程序,不如考虑虚拟机。当该虚拟机启动时(即使处于停止状态,也会分配虚拟机),您需要付费。您可以在该虚拟机实例中轻松启动和停止应用程序:可能是 Web 应用程序、后台渲染进程等。无论您是消耗 0% 的 CPU 还是 100% 的 CPU,您都需要为该虚拟机按时钟小时付费。

请注意,即使使用云服务(Web 和辅助角色),您最终还是要处理虚拟机。Web 角色或辅助角色的每个实例都是其自己的 Windows Server 虚拟机。

哦,网站保留实例也是如此。

关于关闭应用程序以节省计费时间的问题:例如,如果您有一个每晚运行一两个小时的进程,那么请考虑将该进程放在它自己的云服务(或虚拟机)中。到了运行它的时候,将它部署到它的命名槽(yourname.cloudapp.net),让它运行直到任务完成,然后删除部署。现在托管您的进程的虚拟机实例运行 2 小时,而不是 24 小时。您不能做的是将 Web 或辅助角色的计数减少到零。因此,如果您有一个具有 2 个实例的 Web 角色和一个工作人员角色来做一些夜间工作,那么您不能在任务完成后将计数设置为零工作人员角色实例。这就是为什么我建议将夜间任务放在自己的部署中。

编辑自过去几个月以来,情况发生了一些变化。特别是,2013 年 6 月宣布了以下内容:

  • 计费现在是每分钟而不是每小时。这适用于虚拟机、云服务(web/worker)、网站和移动服务。
  • 您现在可以停止虚拟机而不删除它们,并且在虚拟机停止时停止计费。注意:如果没有其他虚拟机在同一部署中运行,您将丢失分配的 IP 地址。为防止 IP 丢失,您需要停止虚拟机,但将其保持在预配置状态,这意味着您仍需要为停止的虚拟机付费,但您会保留 IP 地址。同样,此警告仅适用于没有其他虚拟机运行的情况。

您可以在此处阅读 ScottGu 关于每分钟和停止的 VM 更新的博客文章。

于 2013-02-21T06:44:09.857 回答
18

一个小时计为您的应用程序部署的时间(运行与否,是否被访问)。一小时是一个“挂钟”小时 - 这意味着如果您在上午 10:45 部署并在上午 11:05 删除,您需要支付两个小时(10 点钟和 11 点钟)。

于 2013-02-20T19:45:06.400 回答
2

更清楚地说,部署您的应用程序的时间是指托管您的应用程序的服务器/s 实例处于活动状态的时间。实际上,时间是以时钟小时来衡量的。

[已编辑] Azure 虚拟机(IaaS 模型)上“停止”的 VM 不再消耗计算时间,在您决定删除 VM 之前,您将只按存储/托管磁盘计费。

于 2013-02-20T22:35:32.663 回答