在VPC下设置Amazon Elastic Beanstalk应用程序

时间:2013-07-29 17:38:17

标签: amazon-web-services elastic-beanstalk amazon-vpc

我在vpc下为我的beanstalk应用创建了一个新环境。 我创建了一个包含私有和公共子网的vpc。

我已经按照此处的说明配置了安全组: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo-vpc-basic.html

环境似乎设置正确但状态为红色。 单击监视器不会显示延迟或请求的数据。

网站网址返回错误代码503。

不知道该怎么做

3 个答案:

答案 0 :(得分:9)

这几乎肯定是无法与NAT通信的问题。在配置.ebextensions配置文件时,文档有点含糊不清。

  1. 不要乱用VPC的网络ACL。基础设施需要能够与自己交谈。
  2. NAT实例& Beanstalk ELB需要位于公共子网(10.0.0.0/24)
  3. Beanstalk实例本身需要位于私有子网(10.0.1.0/24)
  4. 您应用于实例的安全组也需要应用于NAT。该安全组还需要在其自己的入站列表中,以便该SG内的所有内容可以相互通信。
  5. 使用curl,尝试拨打电话。首先在堡垒主机上,然后在NAT上,然后在Beanstalk实例上。他们中的任何人都无法拨打电话吗?
  6. 我最近花了几周时间尝试开发一个处理这些东西的CloudFormation模板。我认为其中大部分仍然存在于我的大脑中。我想。

    如果这些故障排除步骤没有帮助,请告诉我,我会深入了解一下。

答案 1 :(得分:4)

创建VPC时,我假设您是使用向导完成的。在这种情况下,NAT配置为接受来自"默认"安全组。

当您创建Elastic beanstalk环境时,您是否指定希望新实例处于打开状态"默认"安全组?

检查新实例是否属于EC2管理区域中VPC的默认安全组。如果它不是默认安全组的成员,请将此安全组添加到NAT的入站连接。

答案 2 :(得分:0)

有一个很好的 AWS CloudFormation 模板示例来创建具有公有和私有子网以及 NAT 的 VPC: https://github.com/awsdocs/elastic-beanstalk-samples/blob/9720e38e9da155752dce132a31d8e13a27364b83/cfn-templates/vpc-privatepublic.yaml

对于那些在此类 VPC 配置方面有问题的人可能非常有用。

使用 cli 将其部署到您的 AWS:

aws cloudformation deploy --stack-name mystackname --template-file path/to/vpc-privatepublic.yaml

或者您可以从 CloudFormation UI 仪表板进行部署。