我已经掌握了在AWS、Azure和Rackspace创建云实例的方法。然而,我需要在每天结束时关闭实例,在早上开启实例,因为这将使我的托管费用减半(它们是用于开发的)。
我看过一些管理服务,但它们让我很头痛。有没有简单的方法来做到这一点?
我已经掌握了在AWS、Azure和Rackspace创建云实例的方法。然而,我需要在每天结束时关闭实例,在早上开启实例,因为这将使我的托管费用减半(它们是用于开发的)。
我看过一些管理服务,但它们让我很头痛。有没有简单的方法来做到这一点?
Azure
REST:
您可以使用Windows Azure Service Management REST API来进行Azure部署。由于它是REST,因此您可以使用大多数编程语言来访问它。
您可以在本地计算机上运行应用程序,定时调用这些服务,在办公时间结束时删除它们,然后在早上创建您的服务。
PowerShell:
或者您可以以相同的方式管理您的部署,但是不使用REST,而是使用Azure PowerShell cmdlets。我自己就是这样做的,效果很好。
为了帮助您入门,有一个很好的教程,介绍如何使用PowerShell来部署Azure应用程序。
另外,如果您还不知道,我应该提一下Azure有一个为期3个月的免费试用期,如果您只是想在开发过程中削减成本。
您可以自己开发解决方案,因为大多数云服务提供商都提供相应的API以便按需启动/停止实例(甚至按计划执行),这也是那些管理服务实际上使用的 - 例如AmazonEC2 Java接口提供了所有相关的方法(以及许多其他方法)。
注意:从2013年6月开始,IaaS实例可以处于“停止(已删除)”状态。在此状态下,您只需为与虚拟机关联的任何磁盘的存储付费。下面的原始答案描述了处于“已停止”但未删除状态的VM实例。通过Azure管理门户执行的VM停止操作目前默认为删除状态。
今天在Windows Azure中实现这一点的唯一方法是删除部署。
如果您停止服务,仍将收取费用(就像租办公空间一样,即使您不在其中也要付款),并且无法将实例计数设置为零。可能使用的选项是将实例计数降至绝对最小值(1),然后在需要的小时内将其恢复。但这样做的成本效益将取决于您实例的大小。
虽然这是一个旧帖子,但微软在2014年推出了Azure的“Runbooks”,您可以使用它来进行自动化操作,包括定时启动和关闭。如上所述,请确保您处于已停止(未分配)状态,而不仅仅是已停止,以避免产生费用。
更多信息:
是的,有自动化运行簿可以安排工作。我创建了一个停止(取消分配)Azure VM 的脚本。
https://gallery.technet.microsoft.com/Deallocate-all-VM-under-79049c69
请阅读有关如何使用运行簿的信息http://azure.microsoft.com/blog/2014/06/19/azure-automation-runbook-management/ “Deallocate”和“Stop”是不同的,因为停止虚拟机也会产生费用。AWS 的推荐解决方案:
AWS 数据管道 是这项任务的最佳选择。数据管道使用 AWS 技术,可以配置在无需外部依赖的情况下按计划运行 AWS CLI 命令。数据管道可以将日志写入 S3,并在 IAM 角色的上下文中运行,从而消除了关键管理要求。此外,数据管道成本效益高;例如,数据管道免费层可用于每天停止和启动实例。
https://aws.amazon.com/premiumsupport/knowledge-center/stop-start-ec2-instances/
请参考这篇文章,其中有一些在AWS内部启动/关闭您的实例的选项。
所以在您的情况下,我建议使用以下方法:
对于AWS:
通过像AWS CLI命令这样的Shell命令:请参见使用AWS Pipeline打开/关闭云实例。此方法将启动单独的EC2实例,以便为每个运行时间影响您的账单的AWS API调用启动和终止。您还可以考虑设置scripts-per-boot,它会在每次启动实例时运行。