停止和启动 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 - 内存使用率高