我在AWS中创build了第二个VPC,它不是我们所知的默认VPC。 在第二个VPC中有三个子网。 问题是,当我尝试启动第二个VPC的EC2时,我没有在"No preference (defualt subnet in any Availability Zone)"子网select”列中收到"No preference (defualt subnet in any Availability Zone)"可用区域中被"No preference (defualt subnet in any Availability Zone)"选项。 我必须selectVPC中的三个子网中的任何一个。 我不确定在创build辅助VPC或子网时是否漏掉了任何东西。 当我select默认子网时,我得到了"No preference (defualt subnet in any Availability Zone)"选项。
谢谢,
斯里卡特
TL; DR
"No preference (default subnet in any Availability Zone)"可用"No preference (default subnet in any Availability Zone)"仅适用于默认VPC(并且仅适用于不支持EC2-Classic的AWS账户)。 该选项不适用于非默认VPC。
原因是与EC2-Classic兼容(即使您的AWS账户不支持)。
详细说明:
当您启动EC2实例(无论是通过命令行,SDK还是GUI)时, ec2:RunInstances命令将input一个子网ID(而不是VPC ID)。 在AWSpipe理控制台中,您确实select了VPC,但这只是为了过滤子网select控制。 select的VPC不会进入ec2:RunInstances命令。
过去,子网ID是可选的,如果省略,则会在EC2-Classic(即任何VPC之外)中启动新的EC2实例。 所以在过去,如果你想在VPC中启动实例,你必须指定一个子网ID。
使用较新的AWS账户,AWS已经取消了对EC2-Classic的支持,并将其replace为“默认”VPC。 保留软件/脚本等。 与EC2-Classic帐户向后兼容,在较新的AWS账户中仍然允许省略子网ID,并且可以在默认子网中的默认VPC中启动EC2实例。
但是除此之外,他们希望您在VPC中启动时指定一个子网ID。