gpt4 book ai didi

amazon-web-services - 没有 NAT 的私有(private) VPC 中的 Elastic Beanstalk 应用程序

转载 作者:行者123 更新时间:2023-12-03 17:11:12 30 4
gpt4 key购买 nike

是否可以在自定义私有(private) VPC 中部署 EB 应用程序,而不使用 NAT 网关?我想使用 AWS API Gateway 作为应用程序的公共(public)入口点,同时保持服务私有(private)。设置完所有内容后,我的环境一直失败:

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 实例的两个私有(private)子网
  • 负载均衡器的两个私有(private)子网

  • 我使用的模板是 vpc-private.yaml来自 EB 样本存储库。
    EB 应用程序是一个多容器 docker 应用程序,具有 Nginx 反向代理和运行 uWSGI 的 Flask 应用程序(类似于 this configuration )。我正在使用 内部 网络负载均衡器和实例是 不是 分配的公共(public) IP 地址。 Docker 镜像托管在 AWS ECR 中。
    论坛中的一个常见答案似乎是拥有一个带有 NAT 的公共(public)子网以允许 Internet 访问。亚马逊 documentation表示通过使用 VPC Endpoints 可以使用私有(private)/私有(private)配置,只要该应用程序不需要互联网连接。
    我配置的端点是:
    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 主机名
  • 为每个端点启用私有(private) DNS
  • 确保终端节点的安全组允许实例的 VPC 作为入站流量

  • 感谢@Marcin 的建议,我能够通过 session 管理器登录实例(只需添加 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
    我找到了 other people有同样的问题,它是由 cfn-signal 未能执行引起的。我可以通过添加 来解决这个问题云化 端点。在以下部署中,我现在注意到一个新的 sqs connection error通过添加 解决了这个问题平方 端点。
    将上述端点添加到 VPC 后,部署成功。无论哪种方式,我都不确定为什么这些端点是必要的,以及为什么 AWS 文档中首先没有提到它。

    最佳答案

    你的模板linked 没有 NAT ,即使描述说它有。 AWS 错误。
    模板创建 两个私有(private) 子网,与 Internet 和任何其他服务(例如 EB 或 ECR)完全隔离。
    需要注意的重要事情是启用private DNS,模板无法展示它。为您的端点。
    为此,您必须确保 EnableDnsHostnamesEnableDnsSupport启用 对于 VPC。文档中的模板不启用它们。
    这些可能解释了为什么您的 VPC 接口(interface)端点不起作用。

    关于amazon-web-services - 没有 NAT 的私有(private) VPC 中的 Elastic Beanstalk 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63196085/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com