我花了几天的时间回顾Elastic Beanstalk,试图找出使用它的好处。我是这项服务的新手,但对EC2没有多少经验,所以我真的只想弄清楚一切。我的主要目标是进行自动缩放,弹性似乎有意义。
昨晚,突然我的现有实例终止了一个新的实例(自动)旋转。在SSH到这个新实例时,我的所有文件都消失了。我预计音量会被复制过来?
我只是不明白发生了什么以及为什么一个实例被启动而另一个实例终止 - 或者更重要的是,为什么新实例没有我的文件。
以下是发生的事情的日志:
2013-12-26 23:03:23 UTC-0800 WARN Environment health has transitioned from YELLOW to RED
2013-12-26 23:01:21 UTC-0800 WARN Environment health has transitioned from GREEN to YELLOW
2013-12-26 23:01:21 UTC-0800 WARN Elastic Load Balancer awseb-e-i-AWSEBLoa-K5TNOB5OZNKU has zero healthy instances.
2013-12-26 23:00:36 UTC-0800 INFO Removed instance 'i-c75df99a' from your environment. (Reason: Instance is in 'shutting-down' state)
2013-12-26 22:55:14 UTC-0800 INFO Adding instance 'i-4d46d010' to your environment.
2013-12-26 22:54:14 UTC-0800 INFO Added EC2 instance 'i-4d46d010' to Auto Scaling Group 'awseb-e-ikszmdzite-stack-AWSEBAutoScalingGroup-TC41QI6DT3O0'.
这是因为我有2个可用区吗?我真的很困惑。
更新
当我开发弹性环境时,我表示我想使用多个可用区域。然后我确定了2个区域。我指示使用至少1个实例。我觉得这就是问题发生的地方 - 我应该将最小值设置为我确定的相同数量的区域。但我无法确认,除了继续测试......仍在寻找洞察力。
答案 0 :(得分:1)
EC2实例上的存储是短暂的,并且在该实例终止时消失。您应该让Elastic Beanstalk为您执行此操作,而不是手动将代码库上传到该特定实例。这样,您的应用程序的代码库(包括它的早期版本)与Elastic Beanstalk一起存储,Elastic Beanstalk在新的实例启动时自动部署。
例如,对于PHP应用程序,此链接说明了如何使用Elastic Beanstalk部署它: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP_eb.html