我想知道是否有一个选项可以将Amazon Elastic Beanstalk作为一个原子单元停止,因为我可以使用EC2服务器,而不是通过每个服务(例如负载均衡器,EC2 ..)和STOP(和START)它们独立?
如果您拥有负载平衡的环境,可以尝试以下技巧
$ 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
在beantalk Web控制台中,您将看到以下消息
INFO Environment health has transitioned from Ok to No Data. There are no instances. Auto Scaling group desired capacity is set to zero.
的EB命令行界面具有eb stop
命令.这里有一些关于命令实际执行的操作:
eb stop命令删除运行应用程序的AWS资源(例如ELB和EC2实例).但它会留下您已部署的所有应用程序版本和配置设置,因此您可以快速重新开始.当您开发和测试应用程序并且不需要AWS资源运行过夜时,Eb stop非常理想.你可以通过简单地运行eb start再次开始.
编辑:
如下面的评论中所述,这不再是新的命令eb-cli
.