เรากำลังปรับใช้แอปพลิเคชันโดยใช้ AWSelastic Beanstalk พร้อมการปรับขนาดอัตโนมัติ ซึ่งอยู่เบื้องหลังโหลดบาลานเซอร์ ขณะนี้เรากำลังใช้ตัวโหลดบาลานเซอร์ของแอปพลิเคชัน
เราต้องการที่จะกำหนดเส้นทางผู้ใช้/คำขอบางส่วนไปยังอินสแตนซ์เฉพาะที่อยู่เบื้องหลังโหลดบาลานเซอร์ โดยทาง URL ตัวอย่างเช่น หากมีการส่งคำขอ HTTP สำหรับ URL http://our_app_domain/something/123 ควรกำหนดเส้นทางไปยังอินสแตนซ์ 123 ในขณะที่ http://our_app_domain/something/456 ควรกำหนดเส้นทางไปยังอินสแตนซ์ 456 A POST หรือส่วนหัว http อื่น ๆ ก็สามารถใช้งานได้เช่นกัน หากง่ายกว่านั้น หรืออาจเกี่ยวข้องกับการดำเนินการบางอย่างในฝั่งไคลเอ็นต์โดยใช้ Javascript
สิ่งสำคัญสำหรับเราคือสิ่งนี้อาจเป็นตัวอย่างใดก็ได้จากหลายตัวอย่างที่ปรับขนาดอัตโนมัติ โฟลว์ที่เรามีในใจคือผู้ใช้ไปที่อินสแตนซ์ อินสแตนซ์นั้นให้ลิงก์ที่ไหนสักแห่งแก่พวกเขา และจากนั้นหากมีคนอื่นไปที่ลิงก์นั้น พวกเขาก็จะจบลงที่อินสแตนซ์เดียวกัน
สิ่งนี้เป็นไปได้หรือไม่?
ฉันพบคำแนะนำเพื่อค้นหารหัสอินสแตนซ์ของอินสแตนซ์เฉพาะที่นี่: วิธีค้นหาอินสแตนซ์ ec2 ที่กำลังประมวลผลคำขอของฉันที่ส่งต่อโดย Elastic Load Balancer
และสิ่งนี้ยังกล่าวถึงคุกกี้ที่ ELB ใช้เพื่อรักษาความหนืดของเซสชัน - มีวิธีเขียนทับคุกกี้เพื่อกำหนดเส้นทาง ELB ไปยังอินสแตนซ์อื่นหรือไม่
อีกอย่างที่ผมเจอคือกลุ่มเป้าหมาย เราสามารถสร้างกลุ่มเป้าหมายได้หลายกลุ่มโดยมีหนึ่งอินสแตนซ์ในแต่ละกลุ่ม จากนั้นสิ่งที่เราต้องการทำก็น่าจะได้ผล ผมเชื่อว่า แต่ปัญหาคือเราต้องการให้สิ่งนี้ทำงานกับการปรับขนาดอัตโนมัติ และฉันไม่คิดว่าจะมีวิธีปรับขนาดกลุ่มเป้าหมายโดยอัตโนมัติ (เฉพาะอินสแตนซ์ภายในกลุ่มเป้าหมาย) ใช่ไหม
อีกทางเลือกหนึ่งคืออินสแตนซ์แจ้งโหลดบาลานเซอร์ว่าพวกเขาต้องการยอมรับการเชื่อมต่อหรือไม่ แต่ฉันไม่รู้ว่ามันใช้ได้ไหม เช่น.หากอินสแตนซ์ 456 ได้รับคำขอที่มี URL เช่น 123 ส่งคืนรหัสข้อผิดพลาด HTTP ชั่วคราว จากนั้นตัวปรับขนาดอัตโนมัติจะเปลี่ยนเส้นทางไปยังอินสแตนซ์อื่น จนกว่าจะกำหนดเส้นทางไปยัง 123?
วิธีอื่นในการทำเช่นนี้ก็ใช้ได้เหมือนกันแน่นอน! ขอบคุณมาก!