ฉันได้สร้าง VPC ที่สองใน AWS ซึ่งไม่ใช่ VPC เริ่มต้นที่เรารู้จัก ฉันมีเครือข่ายย่อยสามเครือข่ายใน VPC ที่สองนั้น ปัญหาคือเมื่อฉันพยายามเปิด ec2 ด้วย VPC ที่สอง ฉันไม่ได้รับ"No preference (defualt subnet in any Availability Zone)"ตัวเลือกที่คอลัมน์ Subnet select ฉันต้องเลือกหนึ่งในสามเครือข่ายย่อยใน VPC ฉันไม่แน่ใจว่าฉันพลาดอะไรไปหรือเปล่าขณะสร้าง VPC รองหรือเครือข่ายย่อย เนื่องจากฉันได้รับ"No preference (defualt subnet in any Availability Zone)"ตัวเลือกเมื่อฉันเลือกซับเน็ตเริ่มต้น


ขอบคุณ,

ศรีกัณฐ์

answer

TL;DR

"No preference (default subnet in any Availability Zone)"จะใช้ได้เฉพาะ VPC เริ่มต้น (และเฉพาะสำหรับบัญชี AWS ที่ไม่สนับสนุน EC2 คลาสสิก) ตัวเลือกนี้ไม่พร้อมใช้งานสำหรับ VPC ที่ไม่ใช่ค่าเริ่มต้น

สาเหตุมาจากความเข้ากันได้แบบเดิมกับ EC2-Classic (แม้ว่าบัญชี AWS ของคุณจะไม่รองรับก็ตาม)

คำอธิบายโดยละเอียด:

เมื่อคุณเปิดใช้อินสแตนซ์ EC2 (ไม่ว่าจะใช้บรรทัดคำสั่ง SDK หรือ GUI) ec2:RunInstancesคำสั่งจะรับ ID ซับเน็ตเป็นอินพุต (ไม่ใช่ VPC ID) ใน AWS Management Console คุณเลือก VPC แต่นั่นเป็นเพียงการกรองการควบคุมการเลือกซับเน็ตเท่านั้น VPC ที่เลือกไม่เป็นไปตามec2:RunInstancesคำสั่ง

ในอดีต Subnet ID เป็นทางเลือก และหากละเว้น จะเปิดใช้อินสแตนซ์ EC2 ใหม่ใน EC2-Classic (เช่น นอก VPC ใดๆ) ดังนั้น ในอดีต หากคุณต้องการให้อินสแตนซ์เปิดใช้งานใน VPC คุณต้องระบุ subnet ID

ด้วยบัญชี AWS ที่ใหม่กว่า AWS ได้ยกเลิกการสนับสนุน EC2-Classic และแทนที่ด้วย VPC "เริ่มต้น" เพื่อเก็บซอฟต์แวร์/สคริปต์/ฯลฯ เข้ากันได้กับบัญชี EC2-Classic แบบย้อนหลัง โดยละเว้น subnet ID ยังคงได้รับอนุญาตในบัญชี AWS ที่ใหม่กว่า และจะเปิดใช้อินสแตนซ์ EC2 ใน VPC เริ่มต้นในซับเน็ตเริ่มต้น

แต่นอกเหนือจากนั้น พวกเขาต้องการให้คุณระบุ subnet ID เมื่อเปิดใช้งานใน VPC