ฉันมีหลายอินสแตนซ์ที่ทำงานอยู่ในกลุ่มความปลอดภัยเดียวกัน (เช่น: Group-A) ที่ต้องการพูดคุยกัน โดยเฉพาะพอร์ต 4369

แต่ละอินสแตนซ์มี Elastic IP ที่แตกต่างกัน

Security Group ได้รับการกำหนดค่าให้อนุญาตการรับส่งข้อมูลขาเข้าผ่าน TCP:4369 Soruce:sg-XXXXX (Group-A)

อย่างไรก็ตาม อินสแตนซ์สามารถพูดคุยกันได้ผ่าน IP ภายใน (10.xxx.xxx.xx) หรือ Amazon Public DNS: ec2-ELASTIC-IP.compute-1.amazonaws.com (เห็นได้ชัดว่า Amazon จะแปลสิ่งนี้เป็น IP ภายใน) .

ถ้าฉันใช้ Elastic IP มันจะไม่ทำงาน ถ้าฉันใช้ FQDN ของตัวเองที่ชี้ไปที่ Elastic IP จะไม่ทำงาน

หากฉันเปลี่ยนต้นทางในกฎขาเข้าจาก sg-XXXXX (กลุ่ม-A) เป็น 0.0.0.0 การทำงานนี้จะทำงานกับ FQDN ของฉันเองและ Elastic IP แต่เราจะไม่ใช้ข้อมูลนี้สำหรับข้อกังวลด้านความปลอดภัย ถ้าฉันลบกฎขาเข้า ไม่มีอะไรทำงาน แม้แต่ใช้ IP ภายใน

ฉันควรทำอย่างไรหากต้องการใช้ FQDN ของตัวเอง (worker-1.company.com -> Elastic IP) ซึ่งอ่านง่ายและจัดการง่ายกว่ามาก

answer

ลักษณะการทำงานที่คุณอธิบายเป็นเรื่องปกติ เนื่องจากเมื่อทำการสื่อสารระหว่างอินสแตนซ์ผ่าน IP แบบยืดหยุ่น ข้อมูลประจำตัวของเครื่องภายในกลุ่มความปลอดภัย -- เพื่อวัตถุประสงค์ในการกำหนดค่ากลุ่มความปลอดภัยโดยอาศัยแหล่งที่มา sg-xxxxxxx -- ไม่สามารถสร้างแบบเต็มได้ ความมั่นใจ เนื่องจากการแปลที่อยู่จะส่งการรับส่งข้อมูล (น่าจะ) ผ่านฮาร์ดแวร์ระดับกลาง และการรับส่งข้อมูลจะไม่ถูกมองว่ามีต้นทางโดยตรงจากอินสแตนซ์อีกต่อไป

วิธีแก้ไขคือการตั้งชื่อโฮสต์ของคุณใน DNS ด้วยระเบียน CNAME ที่ชี้ไปยังระเบียน DNS สาธารณะ แทนที่จะเป็นระเบียน A ที่ชี้ไปยังที่อยู่ IP เฉพาะ

ในโซน DNS ของบริษัท.com:

worker-1   IN  CNAME  xx-xx-xx-xx.compute-1.amazonaws.com.

ตอนนี้ worker-1.company.com จะแก้ไขเป็น IP ส่วนตัวหากสอบถามจากภายใน และ IP สาธารณะจากภายนอก

มันไม่ได้สมบูรณ์แบบ แต่คุณสามารถเพิ่มการแมปที่ชัดเจนจาก FQDN ไปยัง IP ส่วนตัวในไฟล์โฮสต์ของแต่ละอินสแตนซ์ได้ ดังนั้นรหัสของคุณจะใช้ FQDN แต่เครือข่ายจะใช้การสื่อสารส่วนตัว (ซึ่งปลอดภัยกว่าอยู่แล้ว)

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

คุณยังสามารถใช้ Route 53 ซึ่งเป็น DNS ของ Amazon เป็นบริการได้ จับคู่ FQDN ของคุณกับชื่อ DNS สาธารณะของอินสแตนซ์ ภายใน EC2 สิ่งนี้จะจับคู่กับ IP ส่วนตัว คุณจะต้องทำให้สิ่งนี้เป็นอัตโนมัติโดยใช้เส้นทาง 53 API