EC2: DNS สาธารณะมีเสถียรภาพหรือไม่ ฉันสามารถวางใจได้ว่าจะไม่เปลี่ยนหรือไม่


41

ฉันได้เปิดตัวอินสแตนซ์แรกของฉันและฉันใช้มันเป็นเว็บเซิร์ฟเวอร์ ฉันเห็นว่ามันมี DNS สาธารณะ (URL สาธารณะ) เช่น:

ec2-123-45-6-789.compute-1.amazonaws.com

ฉันสามารถไปที่เซิร์ฟเวอร์นี้ในเบราว์เซอร์ของฉันกดผ่าน cURL และอื่น ๆ ได้สำเร็จ

ฉันต้องการใช้เว็บเซิร์ฟเวอร์นี้สำหรับบริการแบ็คเอนด์ในแอพที่ฉันกำลังสร้างดังนั้นฉันจึงวาง URL นี้ในการกำหนดค่าแอปของฉันและมันใช้งานได้ดี

แต่เมื่อฉันหยุดและเริ่มอินสแตนซ์ใหม่ด้วยตนเองฉันเห็นว่าการเปลี่ยนแปลง DNS สาธารณะ! ฉันได้อ่านว่าสิ่งนี้เกิดขึ้นเมื่อคุณหยุดและเริ่มต้นใหม่อย่างชัดเจน แต่จะไม่เกิดขึ้นหากคุณเพียงแค่ "รีบูต"

ฉันไม่ได้วางแผนที่จะหยุดและเริ่มต้นเซิร์ฟเวอร์นี้อีกครั้งอย่างชัดเจน แต่คำถามของฉันคือ: DNS สาธารณะนี้จะเปลี่ยนแปลงด้วยตัวเองด้วยเหตุผลใดก็ตามหรือไม่? เช่นถ้าเครื่องขัดข้องผิดปกติหรืออะไรก็ตาม

กล่าวอีกอย่างหนึ่งว่าปลอดภัยหรือไม่ที่จะจัดส่งแอปที่เชื่อมต่อกับ URL นี้

คำตอบ:


67

ชื่อ DNS สาธารณะตรงกับที่อยู่ IP สาธารณะเสมอ

ที่อยู่ IP สาธารณะยังคงเหมือนเดิมจนกว่าจะถูกยกเลิกหรือหยุดทำงาน การรีบูตจะไม่เปลี่ยนที่อยู่ IP สาธารณะ

หากอินสแตนซ์ EC2 อยู่ใน VPC ดังนั้นมันจะเก็บที่อยู่ IP สาธารณะเดียวกันไว้ในจุดหยุดและเริ่มต้น

หากอินสแตนซ์ EC2 ที่ไม่ได้อยู่ใน VPC หยุดทำงานและเริ่มต้นใหม่อีกครั้งก็อาจได้รับที่อยู่ IP สาธารณะอื่น

อินสแตนซ์อาจล้มเหลว เมื่อคุณเริ่มต้นอินสแตนซ์ใหม่เพื่อแทนที่อินสแตนซ์ที่ล้มเหลวหรือถูกยกเลิกอินสแตนซ์นั้นอาจจะได้รับที่อยู่ IP สาธารณะอื่น

เนื่องจากอินสแตนซ์อาจล้มเหลวและเนื่องจากคุณอาจต้องการเปลี่ยนขนาดของอินสแตนซ์ (ด้วยการหยุด / เริ่ม) จึงไม่แนะนำให้ "ส่งแอปที่เชื่อมต่อกับ [ที่อยู่ IP สาธารณะ]" (หรือชื่อ DNS) เมื่ออินสแตนซ์ของคุณหยุด / สิ้นสุด / ล้มเหลวผู้ใช้รายอื่นจะได้รับที่อยู่ IP ที่กำหนดให้กับอินสแตนซ์ของพวกเขาและทราฟฟิกทั้งหมดของคุณจะเข้าสู่พวกเขา

ขอแนะนำให้ใช้ที่อยู่ IP แบบยืดหยุ่นเพื่อเชื่อมโยงบริการสาธารณะกับอินสแตนซ์ของคุณ คุณได้รับการเก็บรักษาที่อยู่ IP ยืดหยุ่นและคุณสามารถกำหนดให้กับอินสแตนซ์ใด ๆ ที่คุณต้องการในช่วงเวลาแม้ว่ามันจะเป็นอินสแตนซ์เดียวกันหลังจากหยุด / เริ่ม

ที่อยู่ IP แบบยืดหยุ่นแต่ละอันมาพร้อมกับชื่อ DNS สาธารณะ แต่คุณน่าจะดีกว่าการจับคู่ชื่อโฮสต์ของคุณกับที่อยู่ IP แบบยืดหยุ่นเพื่อให้ชื่อนั้นเหมาะสมกับมนุษย์มากขึ้น

นี่คือคำแนะนำเกี่ยวกับที่อยู่ IP แบบยืดหยุ่น:

http://aws.amazon.com/articles/1346

นี่คือบทความที่ฉันเขียนที่พูดถึงความแตกต่างระหว่างการรีบูตและหยุด / เริ่มอินสแตนซ์:

การรีบูตเครื่องเทียบกับ Stop / Start ของ Amazon EC2 Instance
http://alestic.com/2011/09/ec2-reboot-stop-start

นี่คือบทความที่ฉันเขียนซึ่งให้เหตุผลที่คุณอาจต้องการหยุด / เริ่มอินสแตนซ์แม้ว่าคุณจะไม่คิดว่าคุณจะทำในวันนี้:

การย้ายอินสแตนซ์ EC2 ไปเป็นขนาดที่ใหญ่ขึ้น
http://alestic.com/2011/02/ec2-change-type


ฉันได้รีบูตอินสแตนซ์ ec2 ของฉันและเพิ่งค้นพบว่า dns สาธารณะเปลี่ยนเป็น ip ใหม่ บางทีอินสแตนซ์ขัดข้อง แต่ฉันไม่แน่ใจ
Nicolas Manzini

Amazon เท่านั้นแนะนำให้ใช้ IP ที่มีความยืดหยุ่นสำหรับโหลดบาลานซ์ ดังนั้นหากคุณมีบริการส่วนตัวบนอินสแตนซ์ ec2 คุณจะต้องอัปเดต ips ด้วยตนเอง docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Jesse

@Jesse ELB (Elastic Load Balancers) ไม่ใช้ที่อยู่ IP แบบยืดหยุ่น ในความเป็นจริง ELB เปลี่ยนที่อยู่ IP ตลอดเวลาและไม่สามารถถาวรได้เลย Elastic IPs นำไปใช้กับอินสแตนซ์ EC2 และเป็นสิ่งที่จำเป็นสำหรับคำถามเดิม
Eric Hammond
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.