Amazon web services 私有VPC中的弹性Beanstalk应用程序,无NAT
是否可以在自定义专用VPC中部署EB应用程序,而不使用NAT网关?我想使用AWS API网关作为应用程序的公共入口点,同时保持服务的私有性。设置完所有内容后,我的环境不断出现故障:Amazon web services 私有VPC中的弹性Beanstalk应用程序,无NAT,amazon-web-services,amazon-elastic-beanstalk,amazon-vpc,Amazon Web Services,Amazon Elastic Beanstalk,Amazon Vpc,是否可以在自定义专用VPC中部署EB应用程序,而不使用NAT网关?我想使用AWS API网关作为应用程序的公共入口点,同时保持服务的私有性。设置完所有内容后,我的环境不断出现故障: EC2实例无法与AWS Elastic Beanstalk通信,原因可能是VPC的配置问题或EC2实例出现故障。检查VPC配置,然后再次尝试启动环境。 专有网络包括: EC2实例的两个专用子网 负载平衡器的两个专用子网 我使用的模板来自EB样本回购协议 EB应用程序是一个多容器docker应用程序,具有Ngin
EC2实例无法与AWS Elastic Beanstalk通信,原因可能是VPC的配置问题或EC2实例出现故障。检查VPC配置,然后再次尝试启动环境。
专有网络包括:
- EC2实例的两个专用子网
- 负载平衡器的两个专用子网
com.amazonaws.us-east-1.s3
com.amazonaws.us-east-1.elasticbeanstalk
com.amazonaws.us-east-1.ecs-telemetry
com.amazonaws.us-east-1.ecs-agent
com.amazonaws.us-east-1.ecs
com.amazonaws.us-east-1.ecr.dkr
com.amazonaws.us-east-1.ecr.api
com.amazonaws.us-east-1.elasticbeanstalk-health
看起来Beanstalk的VPC端点相当新,我找不到任何其他资源解释如何做到这一点
谢谢
编辑(已解决)
我忘了提到一些设置细节:
- 在VPC中启用DNS解析和DNS主机名
- 为每个端点启用私有DNS
- 确保端点的安全组允许实例的VPC作为入站流量
2020-08-01 15:15:56,801 [WARNING] Timeout of 60 seconds breached
2020-08-01 15:15:56,801 [ERROR] Client-side timeout
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/cfnbootstrap/util.py", line 162, in _retry
return f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/cfnbootstrap/util.py", line 231, in _timeout
raise TimeoutError("Execution did not succeed after %s seconds" % duration)
TimeoutError
我发现有相同的问题,它是由cfn信号无法执行引起的。我可以通过添加cloudformation端点来解决这个问题。在接下来的部署中,我现在注意到一个新的sqs连接错误
,通过添加sqs端点解决了这个问题
将上述端点添加到VPC后,部署成功。无论哪种方式,我都不知道为什么这些端点是必要的,为什么AWS文档中没有首先提到它。您的模板没有NAT,尽管描述中说它有。我错了
该模板创建两个专用子网,完全与internet和任何其他服务(如EB或ECR)断开
需要注意的重要一点是,如果模板未能展示它,则为端点启用
为此,您必须确保为专有网络启用和。文档中的模板无法启用它们
这些可能解释了为什么VPC接口端点不工作。谢谢你的回答。你说得对,模板描述有误导性。我忘了提到我在创建VPC后启用了DNS解析和DNS主机名,以及每个端点的私有DNS。关于什么可能设置错误,还有其他想法吗?或者是某种调试方法?谢谢@SemyLevy VPC接口端点的安全组如何?你调整过了吗?他们应该允许来自您的EB实例的SG的入站流量。我一直在为EB实例和VPC端点使用默认安全组。我还尝试在创建后立即将EB创建的安全组作为入站规则添加到默认值中,但得到了相同的结果:(让我感到沮丧的是,除了来自EB的通信错误之外,我无法获得任何其他日志,因此很难判断它失败的原因。感谢您的建议,我能够通过查看日志来解决它(请参见编辑)。