【问题标题】:How does AWS know which instance i´m SSH:ing into?AWS 如何知道我正在通过 SSH 连接到哪个实例?
【发布时间】:2012-01-23 22:40:44
【问题描述】:

当我通过 SSH 连接到没有弹性 IP 的 Amazon 实例时,我使用公有 DNS 名称,该名称的格式通常为 ec2-79-125-100-3.eu-west-1.compute.amazonaws.com。

该 DNS 名称是否总是解析为同一个 IP?我认为不会,否则购买弹性 IP:s 将毫无意义。但是,在 DNS 名称中包含 IP 地址有什么意义呢?

此外,由于 DNS 名称解析到的 IP 由许多实例共享,亚马逊如何确切知道我正在 ssh:ing 到哪些实例?

【问题讨论】:

    标签: amazon-ec2 dns


    【解决方案1】:

    每个实例都有自己的 ip。即使它不是弹性的,它也是暂时的,但它仍然是实例独有的。您没有 2 个具有相同 IP 的实例。否则,正如您所指出的,在指定 ip 号时将无法知道请求哪个服务器。

    弹性 ip 的优点是您的实例始终具有相同的 ip。没有它,每次重新启动实例时都会获得一个新的 ip 号。请注意,您并没有真正“购买”弹性 IP。使用时无需付费,这意味着在正常情况下,您有一个正在运行的实例,并为其分配了弹性 ip。

    【讨论】:

    • 但我认为 EC2 实例是虚拟化的。不应该有多个 VM:s 在同一个 IP 上运行吗?
    • 它是虚拟化的,每个实例不一定都有自己的私有机器。但它确实有自己的 ip 号。
    【解决方案2】:

    ec2-79-125-100-3.eu-west-1.compute.amazonaws.com 是亚马逊为您的实例命名的名称,以便您更轻松地访问它。他们本可以选择任何命名方案,但看起来他们选择在公共 DNS 名称中包含公共 IP。这只是为您提供方便,正如其他答案指出的那样,每次重新启动都会改变。

    弹性 IP 的优势在于您可以将公共 DNS 名称映射到该 IP。例如,我的公司有一个指向 EC2 实例的静态 IP。当我准备好推送新版本时,我启动了一个新的 EC2 实例,通过 ssh 连接到它并准备好一切就绪,并使用亚马逊分配的公共 DNS 名称使用新软件进行测试。然后,当我准备切换时,我只需将弹性 IP 指向新实例并取下旧实例。我不必弄乱 DNS 映射,因为 DNS 名称和 IP 根本没有改变。它只是增加了一层间接性,使它更容易一些。

    【讨论】:

    • 那么当我重启实例时,公有DNS名称也会改变?
    • 他们为什么不给每个实例一个静态 DNS 名称,比如 GUID?
    猜你喜欢
    • 2020-05-31
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2017-04-18
    相关资源
    最近更新 更多