我已经开始探索亚马逊的ElasticBeanstalk(以及其他云提供商,如Google Cloud),作为我的一个新应用程序的潜在扩展点。
然而,由于我倾向于同时发布多个想法,其中许多想法在开始时几乎没有产生任何流量(例如,在投入特定的新市场之前,在投入产品本身之前投入努力),I我想知道亚马逊网络服务是否允许某种方式在这种试用产品没有接收流量的时候最大限度地降低这些试用产品的成本,并且仅在实际开始接收流量的情况下旋转实例。
换句话说,我可以将MinInstanceCount以某种方式减少到ZERO,以便Amazon在应用程序开始接收流量时立即旋转新容器,并在停止时关闭实例(以及相关的计费聚合) - 无需手动干预。
我知道Google的AppEngine提供了这种模式,在实际接收流量之前,您不需要为某个容器付费(一旦流量停止 - 容器就会被杀死)。我只是想知道AWS是否提供了这样的东西。
答案 0 :(得分:3)
AppEngine是一种非常不同的服务类型。我会将Google App Engine与AWS Lambda而不是EC2进行比较。
不幸的是,如果您等到开始接收流量来启动EC2实例,那么处理该流量将为时已晚。 EC2实例通常需要几分钟才能启动,在此期间,由于池中没有健康的实例,所有传入流量都会收到Load Balancer的错误响应。
答案 1 :(得分:1)
我想说你的想法在很大程度上取决于你拥有的应用程序类型,但有一点需要注意的是,AWS使用每小时价格模型与Google Cloud一起收费每个15分钟的使用情况。这意味着除非您一次关闭节点多个小时,否则您不会看到大幅节省成本。如果您计划一次关闭节点几天,我建议使用AWS Data Pipeline来安排节点停机。 Pipeline允许您运行AWS Cli命令,而无需按计划或基于激活来管理访问密钥。
答案 2 :(得分:0)
您可以将“最小组大小”和“所需”参数减少为零。但由于不存在可能引发CloudWatch警报的任何实例,因此Autoscaling Group不会为您创建实例。您必须手动启动它们。但是您可以使用此技术自动关闭未使用的实例。