我在 AWS 中创建了第二个 VPC,它不是我们所知的默认 VPC。我在第二个 VPC 中有三个子网。问题是,当我尝试使用第二个 VPC 启动 ec2 时,我在子网选择列中没有看到选项。我必须选择 VPC 中的三个子网中的任何一个。我不确定在创建辅助 VPC 或子网时是否遗漏了什么。因为我在选择默认子网时"No preference (defualt subnet in any Availability Zone)"
得到了选项。"No preference (defualt subnet in any Availability Zone)"
谢谢,
斯里坎特
答案1
总结
仅"No preference (default subnet in any Availability Zone)"
适用于默认 VPC(并且仅适用于不支持 EC2-Classic 的 AWS 账户)。此选项不适用于非默认 VPC。
原因是为了与 EC2-Classic 兼容(即使您的 AWS 账户不支持它)。
详细说明:
当您启动 EC2 实例时(无论是通过命令行、SDK 还是 GUI),命令ec2:RunInstances
都会将子网 ID(而不是 VPC ID)作为输入。在 AWS 管理控制台中,您确实会选择一个 VPC,但这只是为了过滤子网选择控件。所选的 VPC 不会进入命令ec2:RunInstances
。
过去,子网 ID 是可选的,如果省略,则会在 EC2-Classic 中启动新的 EC2 实例(即在任何 VPC 之外)。因此,过去,如果您希望在 VPC 中启动实例,则必须指定子网 ID。
对于较新的 AWS 账户,AWS 已取消对 EC2-Classic 的支持,并将其替换为“默认”VPC。为了使软件/脚本等与 EC2-Classic 账户向后兼容,在较新的 AWS 账户中仍允许省略子网 ID,并将在默认子网中的默认 VPC 中启动 EC2 实例。
但除此之外,他们希望您在 VPC 中启动时指定子网 ID。