【问题标题】:Time-Based Scaling on Elastic BeanstalkElastic Beanstalk 上基于时间的缩放
【发布时间】:2015-11-24 17:47:43
【问题描述】:

我尝试在晚上关闭/启动我的弹性 beanstalk(测试)环境,以在不需要服务器时节省资源。在 EB 的 Web 控制台上,我可以输入触发的基于时间的缩放。

但是,当我在 .ebextensions 文件夹中添加一个应该执行相同操作的配置文件时,服务器根本无法扩展。

根据 Elastic Beanstalk 的documentation(搜索“Examples of Time-based Scaling Option Settings Files”),可以添加一个 .ebextension 文件进行基于时间的缩放配置。

所以我调整了示例并将相应的定义添加到项目中:

{ [ { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "MinSize", "Value": "0" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "MaxSize", "Value": "0" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "DesiredCapacity", "Value": "0" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "StartTime", "Value": "2015-11-18T16:50:00Z" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "Recurrence", "Value": "00 21 * * 1-5" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "MinSize", "Value": "1" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "MaxSize", "Value": "1" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "DesiredCapacity", "Value": "1" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "StartTime", "Value": "2015-11-19T05:00:00Z" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "Recurrence", "Value": "00 07 * * 1-5" } ] }

基本上这是复制和粘贴,并根据我的需要稍作调整。我把它放在我项目的 .ebxtensions/autoscaling.config 文件中,并将它部署到 EB。

现在服务器应该在 UTC 晚上 9 点缩小(“OvernightShutdown”)到 0,并应该在 UTC 上午 7 点扩大(“MorningStartup”)。

但是“OvernightShutdown”和“MorningStartup”没有在应该触发的时候触发。

我也曾经在文件中有错字,然后EB告诉我它无法解析它,所以我知道我读取了文件,但显然它没有将配置应用于环境。

有人知道这可能是什么问题?我的配置错了吗? 由于那里没有太多示例,文件看起来像我没有适当的参考,除了来自 EB documentation

【问题讨论】:

  • 我想将它放在我的代码库中,并在需要时将其重用于其他项目。与通过网站进行相比,这将节省一些点击时间(如果它可以开箱即用)
  • 0 是最小和最大尺寸的有效值吗?我认为最小有效值为 1,除非自我上次设置 Elastic Beanstalk 应用程序以来发生了变化。
  • 是的,0 是一个有效数字。如果我在网站上进行配置,EB 会将 min/max/desired 实例缩放为 0 并基本上将其关闭。

标签: amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

我还在 AWS / EB 板上发布了这个问题,他们对此问题给出了有用的答案:

Link to AWS board

解决办法是用yaml配置代替json,因为EB好像json-config有问题。但是他们根据答案修复它。

【讨论】:

    【解决方案2】:

    我认为您可能会受到优先条款的影响:configuration options precedence。这让我前几天出来了。如果您通过 Web 界面手动配置了这些值,那么您的配置文件将不会替换这些值。

    要解决这个问题,我:

    1. 按照您的方式创建了.ebextensions 配置文件,确保它已在环境中部署并准备就绪。
    2. 运行eb config 调出当前配置(这应该显示旧配置)
    3. 删除了“冲突”中的配置值
    4. 退出并保存配置

    这会触发环境刷新,就像您在 Web 界面中更改它一样。

    或者正如@mbaird 在 cmets 中所说,0 可能不是有效的最小值和最大值。

    【讨论】:

    • 在将应用程序发布到 EB 之前,我删除了网站级别的配置。我尝试了您的解决方案,但它没有显示我上面的任何配置,也没有显示网站级别的配置(正如预期的那样,因为我删除了它)。看来我的配置根本没有考虑到EB。
    猜你喜欢
    • 1970-01-01
    • 2014-08-03
    • 2013-08-25
    • 2018-11-25
    • 2012-10-02
    • 2014-08-26
    • 1970-01-01
    • 2019-12-02
    • 2022-06-28
    相关资源
    最近更新 更多