我正在使用AWS弹性beanstalk Web界面来创build基于现有AMI的环境,该AMI已部署了我们的应用程序。
环境被创build,应用程序可以通过ec2实例的IP访问。 然而环境的健康在15分钟内保持“待定”状态,然后在环境日志中出现这些错误的情况下降至严重状态:
2017-10-22 15:57:50 UTC + 0300 INFO推出环境:Winfooztest-> env-6。 但是,在发布过程中有问题。 查看事件日志查看>详细信息。
2017-10-22 15:57:49 UTC + 0300错误EC2实例无法与AWS Elastic Beanstalk通信,原因可能是configuration> VPC问题或EC2实例失败。 检查您的VPC>configuration并尝试再次启动环境。 2017-10-22 15:57:49 UTC + 0300错误堆栈命名为“awseb-e-ypy7mg2pta->堆栈”中止操作。 当前状态:'CREATE_FAILED'原因:>以下资源无法创build[AWSEBInstanceLaunchWaitCondition]。
- 如何使用CloudFormationpipe理VPC关联到Route53托pipe区域?
- 通过安全VPN连接将VirtualBox fpsense防火墙与AWS VPC连接起来
- networkingACL:打开临时端口打开所有访问?
- Amazon VPC无法从私有子网访问互联网
- 如何将AWS和专用的外部服务器结合起来?
2017-10-22 15:56:16 UTC + 0300 WARN环境健康已经从待定转为严重。 初始化正在进行(运行> 16分钟)。 没有任何实例正在发送数据。
2017-10-22 15:41:48 UTC + 0300 INFO创build的CloudWatch闹钟命名为:> awseb-e-ypy7mg2pta-stack-AWSEBCloudwatchAlarmHigh-QVXFWC3HZS5S
所以我在这里理解的是创build实例,但是它没有与弹性beanstalk进行通信。 与普遍的安全意识相反,为了查明问题,我尽量保持VPC设置尽可能公开。 这是我做的:
VPCtypes:创build“具有单个公有子网的VPC”
IPv4 CIDR块:10.0.0.0/16
公有子网的IPv4 CIDR:10.0.0.0/24
可见性:公开
选中了VPC的公共IP地址
安全组 – 入站:所有stream量| ALL | ALL | 0.0.0.0/0
安全组 – 出站:所有stream量| ALL | ALL | 0.0.0.0/0
环境被configuration为使用负载平衡器。
没有运气。
我知道有一个小的networking调整,我需要做的。 我抓了我的头(和我的search引擎)很多。 我错过了什么? 你能帮我吗?
Elastic Beanstalk期望某些脚本在您的AMI中。 这个脚本由Beanstalk在应用程序部署和closures等不同的生命周期事件中执行。 没有这些脚本,Beanstalk就无法与您的实例进行通信。
最好的方法是使用预先configuration好的模板中的包装器https://www.packer.io构buildAMI。http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html
Elastic Beanstalk使用钩子的标准目录结构,这是在生命周期事件期间运行并响应pipe理操作的脚本:启动环境中的实例时,或者当用户启动部署或使用重新启动应用程序服务器function时。
挂钩被组织到以下文件夹中:
appdeploy – 脚本在应用程序部署期间运行。 Elastic Beanstalk在新实例启动时以及客户端启动新版本部署时执行应用程序部署。 configdeploy – 脚本在客户端执行影响软件configuration实例的configuration更新时运行,例如,通过设置环境属性或启用日志轮转到Amazon S3。 restartappserver – 脚本在客户端执行重新启动应用程序服务器操作时运行。 preinit – 脚本在实例引导过程中运行。 postinit – 脚本在实例引导之后运行。