停止和启动 Elastic Beanstalk 服务

Posted

技术标签:

【中文标题】停止和启动 Elastic Beanstalk 服务【英文标题】:Stop and Start Elastic Beanstalk Services 【发布时间】:2013-12-22 05:23:01 【问题描述】:

我想知道是否有一个选项可以将 Amazon Elastic Beanstalk 作为一个原子单元停止,就像我可以使用 EC2 服务器而不是通过每个服务(例如负载均衡器、EC2..)并停止(和启动)它们一样独立?

【问题讨论】:

看来这个问题应该在serverfault.com 这看起来像是***.com/questions/32210389/…的副本 【参考方案1】:

EB command line interface 有一个eb stop 命令。 Here 有点关于命令的实际作用:

eb stop 命令删除正在运行您的应用程序的 AWS 资源(例如 ELB 和 EC2 实例)。但是,它会留下您已部署的所有应用程序版本和配置设置,因此您可以快速重新开始。当您开发和测试应用程序并且不需要 AWS 资源在夜间运行时,Eb stop 是理想的选择。您只需运行 eb start 即可重新开始。

编辑:

如以下评论所述,这不再是新的eb-cli 中的命令。

【讨论】:

谢谢,控制台也可以使用吗? 我不这么认为。我目前没有运行 EB 环境,所以我不能肯定地告诉你。如果我发现有其他建议的信息,我会更新我的答案。 这不再是新的eb-cli 中的命令。 eb-cli 和 Web 控制台中只有一个“终止环境”(eb terminate)。 请注意,您仍然可以重新部署已终止的环境。创建新环境时,在“应用程序版本”步骤中选择您之前终止的应用程序版本。 @DanielFlippance 您可能还希望将保存的配置恢复到新创建的环境中。另请参阅此链接blogs.aws.amazon.com/application-management/post/…【参考方案2】:

如果你有一个负载均衡的环境,你可以试试下面的技巧

$ aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name my-auto-scaling-group \
--min-size 0 --max-size 0 --desired-capacity 0

它将从环境中删除所有实例,但不会删除环境本身。不幸的是,您仍然需要为弹性负载均衡器付费。但通常EC2是最“重”的部分。

它适用于 0 吗?

是的,确实如此

$ aws autoscaling describe-auto-scaling-groups --region us-east-1 \
--auto-scaling-group-name ASG_NAME \
--query "AutoScalingGroups[].DesiredCapacity:DesiredCapacity,MinSize:MinSize,MaxSize:MaxSize"

[
    
        "MinSize": 2, 
        "MaxSize": 2, 
        "DesiredCapacity": 2
    
]

$ aws autoscaling update-auto-scaling-group --region us-east-1 \
--auto-scaling-group-name ASG_NAME \
--min-size 0 --max-size 0 --desired-capacity 0

$ aws autoscaling describe-auto-scaling-groups --region us-east-1 \
--auto-scaling-group-name ASG_NAME \
--query "AutoScalingGroups[].DesiredCapacity:DesiredCapacity,MinSize:MinSize,MaxSize:MaxSize"

[
    
        "MinSize": 0, 
        "MaxSize": 0, 
        "DesiredCapacity": 0
    
]

然后你可以检查环境状态

$ eb status -v
Environment details for: test
  Application name: TEST
  Region: us-east-1
  Deployed Version: app-170925_181953
  Environment ID: e-1234567890
  Platform: arn:aws:elasticbeanstalk:us-east-1::platform/Multi-container Docker running on 64bit Amazon Linux/2.7.4
  Tier: WebServer-Standard
  CNAME: test.us-east-1.elasticbeanstalk.com
  Updated: 2017-09-25 15:23:22.980000+00:00
  Status: Ready
  Health: Grey
  Running instances: 0

在 beanstalk 网络控制台中,您将看到以下消息

INFO Environment health has transitioned from Ok to No Data. 
There are no instances. Auto Scaling group desired capacity is set to zero.

【讨论】:

Aws docs 说aws:autoscaling:asg:minSize 有效值为1 to 10000。它适用于0 吗?【参考方案3】:

eb stop 已弃用。我也遇到了同样的问题,我能想到的唯一解决方案是备份环境,然后恢复它。

这是我正在解释的博客文章: http://pminkov.github.io/blog/how-to-shut-down-and-restore-an-elastic-beanstalk-environment.html

【讨论】:

以上是关于停止和启动 Elastic Beanstalk 服务的主要内容,如果未能解决你的问题,请参考以下文章

停止并启动在 EC2 和 mysql RDS 上运行 php 的 AWS Elastic Beanstalk

如何重新启动 httpd 以在 Elastic Beanstalk 中的 EC2 实例上启用 HTTPS?

AWS Elastic Beanstalk Tomcat - 内存使用率高

docker 和 elastic beanstalk 容器意外停止并且权限被拒绝

Elastic Beanstalk 滚动环境配置更新

Elastic Beanstalk 在 EbExtensionPostBuild 处停止