【问题标题】:EC2 instance unable to reach itself via hostnameEC2 实例无法通过主机名访问自身
【发布时间】:2018-12-28 10:10:53
【问题描述】:

我在 ELB 后面创建了一个 EC2 实例,主机名为

mysubdomain.domain.com

可以从我的本地工作站通过 Internet 访问该实例(已打开从我的 IP 到它所属安全组中的实例的所有连接);

但是,当执行时

curl mysubdomain.domain.com

在实例内,超时;

我是否需要分配一个公共(我假设我希望它具有弹性,这样我就不必不时在我的安全组入站规则中更改它)并在我的安全组中添加一个允许规则(实例所属的)来自该特定 IP?

鉴于我已达到弹性 IP 的限制,还有其他方法吗?

【问题讨论】:

    标签: amazon-web-services networking amazon-ec2 aws-security-group


    【解决方案1】:

    要让 Amazon EC2 实例访问 Internet,它必须是:

    • 在具有公共 IP 地址的公共子网中,或
    • 在具有 NAT 网关的私有子网中或类似的 NAT 服务

    默认情况下,安全组允许所有出站流量,因此您无需修改​​安全组

    即使您已达到弹性 IP 地址的限制,您也可以通过Auto-assign Public IP 使用公共 IP 地址 启动 EC2 实例——这与 弹性 IP 地址不同,因为它是在实例启动时分配的,并且在实例停止/启动时可能会更改。但是,它可以很好地获得 Internet 访问权限。

    如果实例位于负载均衡器之后,则没有理由希望直接从 Internet 访问该实例。因此,不需要弹性 IP 地址。事实上,在最佳实践架构中,实例应该位于私有子网中,以便更好地保护它们免受 Internet 的影响。这将需要一个 NAT 网关或 NAT 实例来使该实例能够访问 Internet。

    【讨论】:

    • 是的,我只是指实例需要通过互联网自身访问的特殊情况;例如假设我(出于某种原因)从 within 实例执行 curl mysubdomain.domain.com;在这种情况下,我需要在我的 SG 中使用实例的公共 IP 明确允许规则(因此需要永远不会改变的永久/静态/弹性 IP,因此我不必不断更新我的 SG 规则)
    • 如果您尝试通过curl mysubdomain.domain.com 访问负载均衡器,那么您只需要默认安​​全组设置,并且如上所述,公共子网中的公共 IP 地址或 NAT 网关/实例。如果您的实例试图通过公共名称访问自身,那么您的架构设计得很糟糕。
    猜你喜欢
    • 1970-01-01
    • 2020-11-08
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 2014-04-07
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多