Amazon web services Amazon AWS ELB在其背后的服务器上没有公共地址

Amazon web services Amazon AWS ELB在其背后的服务器上没有公共地址,amazon-web-services,amazon-ec2,amazon-elb,Amazon Web Services,Amazon Ec2,Amazon Elb,我目前有3台服务器位于AWS上的ELB后面 每个EC2实例都位于3个独立的可用性区域中 我用厄尔巴托换衣服 SSL终端 分配负荷 我已经配置了一个VPN来访问EC2实例进行SSH访问,但是当我从EC2容器中删除公共地址时,我无法让ELB工作 我假设我可以让他们只允许来自ELB sec组的端口80(443终止于ELB)上的流量,这意味着我不需要Ext IP,因为ELB直接连接到他们 我想我还需要设置NAT,以便他们能够从外部访问 ELB不在子网内吗 尝试了所有的变体得出结论,他们需要公共IP,

我目前有3台服务器位于AWS上的ELB后面

每个EC2实例都位于3个独立的可用性区域中

我用厄尔巴托换衣服

  • SSL终端

  • 分配负荷

我已经配置了一个VPN来访问EC2实例进行SSH访问,但是当我从EC2容器中删除公共地址时,我无法让ELB工作

我假设我可以让他们只允许来自ELB sec组的端口80(443终止于ELB)上的流量,这意味着我不需要Ext IP,因为ELB直接连接到他们

我想我还需要设置NAT,以便他们能够从外部访问

ELB不在子网内吗

尝试了所有的变体得出结论,他们需要公共IP,但只是限制什么可以访问


非常感谢

假设您的ELB应该可以公开访问,您需要设置以下内容:

  • 将ELB置于公共子网中
  • 为ELB分配一个或多个安全组,允许从
    0.0.0.0/0对端口443进行传入访问,并允许对端口80进行传出访问
  • 创建EC2实例,通常使用自动缩放组,但这不是必需的
  • 将EC2实例放在私有子网中
  • 不要给EC2实例提供公共IP地址
  • 为EC2实例分配一个或多个安全组,允许从ELB的安全组对端口80进行传入访问
  • 如果您的EC2实例需要传出internet访问:

  • 在公用子网中设置NAT(实例或网关)
  • 更新私有子网的VPC路由表,通过NAT转发
    0.0.0.0/0
    流量
  • 更新EC2实例的安全组,以允许在所需端口上进行传出连接
  • 要允许传入SSH连接到EC2实例,请执行以下操作:

  • 设置您的VPN或bastion EC2实例
  • 更新EC2实例的安全组以允许端口22上的传入连接
  • 在所有情况下,尽可能限制安全组:

  • 只允许您知道需要的端口,并且
  • 尽可能使用
    /32
    CIDR,然后使用
    /24
    ,然后使用
    /16
    ,然后使用
    /8
    。最后,如果您确实需要全局访问,则只允许
    0.0.0/0

  • 我担心这会暴露在公众面前,并可能被DDoS利用。我必须使用API网关来处理它,然后使用HAProxy信任VPC。更多详细信息请参阅

    ELB是托管服务。后台服务在VPC的公子网中启动ec2实例。公共子网可以在没有NAT的情况下连接到您的私有子网。只有当您在私有子网中的实例需要外部连接时,您才需要设置NAT。很好,我忘记创建公共子网,正试图使用私有子网中的ELB将它们路由到私有子网,在ELB日志保持完全空时发现了这一点。现在解决了,谢谢你这是非常全面的!