是否可以在定制的私有VPC中部署EB应用程序,而无需使用NAT网关?我想使用作为应用程序的公共入口点,同时保持服务的私有性。在设置了所有的东西之后,我的环境一直在失败:
The EC2 instances failed to communicate with AWS Elastic Beanstalk, either because of configuration problems with the VPC or a failed EC2 instance. Check your VPC configuration and try launching the environment again.VPC包括:
我使用的模板是来自EB样本回购的vpc-private.yaml。
EB应用程序是一个多容器对接应用程序,有一个Nginx反向代理和一个运行在uWSGI (类似于这种配置)的Flask应用程序。我使用的是内部网络负载均衡器,实例是而不是分配的公共IP地址。Docker映像托管在AWS ECR中。
在论坛上,一个常见的答案似乎是有一个带有NAT的公共子网,以允许互联网接入。AWS 文档表示,使用私有/私有配置是可能的,尽管使用VPC端点,只要应用程序不需要互联网连接。
我配置的端点是:
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看起来豆茎的VPC端点是相当新的,我找不到任何其他资源来解释如何做到这一点.
谢谢!
编辑(解决)
我忘了提到一些设置细节:
由于@Marcin的建议,我能够通过会话管理器登录实例(只需添加ssm、ec2messages和ssmmessages端点)。在检查日志之后,我注意到以下错误:
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 connection error,它通过添加sqs端点来解决。
将上述端点添加到VPC之后,部署就成功了。无论哪种方式,我都不确定为什么需要这些端点,为什么AWS文档一开始就没有提到这些端点。
发布于 2020-07-31 22:44:49
您连系 的模板没有NAT,尽管描述中说有。AWS错误。
该模板创建了两个私有子网,与互联网和其他任何服务(如EB或ECR )完全隔绝。
重要的是要注意的是,模板不能展示它,而是为端点启用私有DNS。
为此,您必须确保EnableDnsHostnames和EnableDnsSupport是为VPC启用的。文档中的模板不启用它们。
这些可能解释了为什么您的VPC接口端点不能工作。
https://stackoverflow.com/questions/63196085
复制相似问题