首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无NAT私有VPC中的弹性豆柄应用程序

无NAT私有VPC中的弹性豆柄应用程序
EN

Stack Overflow用户
提问于 2020-07-31 16:58:21
回答 1查看 3.3K关注 0票数 10

是否可以在定制的私有VPC中部署EB应用程序,而无需使用NAT网关?我想使用作为应用程序的公共入口点,同时保持服务的私有性。在设置了所有的东西之后,我的环境一直在失败:

代码语言:javascript
复制
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包括:

  • EC2实例的两个私有子网
  • 用于负载均衡器的两个专用子网

我使用的模板是来自EB样本回购的vpc-private.yaml

EB应用程序是一个多容器对接应用程序,有一个Nginx反向代理和一个运行在uWSGI (类似于这种配置)的Flask应用程序。我使用的是内部网络负载均衡器,实例是而不是分配的公共IP地址。Docker映像托管在AWS ECR中。

在论坛上,一个常见的答案似乎是有一个带有NAT的公共子网,以允许互联网接入。AWS 文档表示,使用私有/私有配置是可能的,尽管使用VPC端点,只要应用程序不需要互联网连接。

我配置的端点是:

代码语言:javascript
复制
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端点是相当新的,我找不到任何其他资源来解释如何做到这一点.

谢谢!

编辑(解决)

我忘了提到一些设置细节:

  • 在VPC中启用DNS解析和DNS主机名。
  • 每个端点都启用了私有DNS。
  • 确保端点的安全组允许实例的VPC作为入站通信量

由于@Marcin的建议,我能够通过会话管理器登录实例(只需添加ssmec2messagesssmmessages端点)。在检查日志之后,我注意到以下错误:

代码语言:javascript
复制
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文档一开始就没有提到这些端点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-31 22:44:49

连系 的模板没有NAT,尽管描述中说有。AWS错误。

该模板创建了两个私有子网,与互联网和其他任何服务(如EB或ECR )完全隔绝。

重要的是要注意的是,模板不能展示它,而是为端点启用私有DNS

为此,您必须确保EnableDnsHostnamesEnableDnsSupport是为VPC启用。文档中的模板不启用它们。

这些可能解释了为什么您的VPC接口端点不能工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63196085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档