การปรับขนาดอัตโนมัติ EC2 พร้อมอินสแตนซ์เฉพาะจุดและตามต้องการ


13

ฉันต้องการเพิ่มประสิทธิภาพค่าใช้จ่ายของกลุ่ม EC2 ที่ปรับขนาดอัตโนมัติโดยให้พวกเขาเปิดใช้งานอินสแตนซ์แบบจุดแทนการใช้อินสแตนซ์ตามต้องการ

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

ฉันไม่สามารถหาวิธีที่จะทำสิ่งนี้และฉันพยายามที่จะกลั้วเอกสาร AWS ปรากฏว่า ASG อาจเป็นแบบออนดีมานด์หรือเป็นจุด แต่ไม่ใช่แบบไฮบริด

ฉันอาจเพิ่มอินสแตนซ์ตามความต้องการใน Elastic Load Balancer ที่กำหนดให้กับกลุ่มการปรับขนาดอัตโนมัติด้วยตนเอง แต่จากนั้นโหลดของเซิร์ฟเวอร์นั้นจะไม่ถูกรวมเข้ากับการวัดและทริกเกอร์การปรับขนาดอัตโนมัติ

ฉันคิดว่าฉันสามารถป้อนราคาเสนอที่สูงมากเพื่อให้แน่ใจว่าฉันจะได้รับเซิร์ฟเวอร์ที่ต้องการเสมอ แต่จากนั้นฉันดูประวัติราคาและดู spikes ขนาดใหญ่เป็นครั้งคราว

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

คำตอบ:


1

ในขณะนี้คุณสามารถผสมระหว่างความต้องการและจุดอินสแตนซ์ใน ASG เดียว

ขณะนี้การปรับขนาดอัตโนมัติของ Amazon EC2 ช่วยให้คุณสามารถจัดเตรียมและปรับขนาดอินสแตนซ์ในตัวเลือกการซื้อโซนความพร้อมใช้งาน (AZ) และตระกูลอินสแตนซ์ในกลุ่มการปรับขนาดอัตโนมัติ (ASG) เพื่อเพิ่มประสิทธิภาพ ตอนนี้คุณสามารถรวม Spot Instances กับ On-Demand และ RIs ใน ASG เดียวเพื่อบันทึกได้มากถึง 90% สำหรับการคำนวณ


ใช่ - ขอบคุณที่อัปเดตคำถามนี้ ฉันได้ทำเครื่องหมายว่าคุณเป็นคำตอบที่ยอมรับได้สำหรับเรื่องนี้
แพลตฟอร์ม

15

วิธีการที่กล่าวถึงข้างต้นนั้นค่อนข้างยุ่งเหยิงและไม่ยืดหยุ่น แนวทางที่เป็นที่ยอมรับมากขึ้นคือการสร้าง 2 ASGs (หนึ่งจุดสำหรับหนึ่งจุดสำหรับตามความต้องการ) จากนั้นลงทะเบียนทั้งสองด้วย ELB เดียวกัน (กล่าวถึงที่นี่ ) สิ่งนี้ให้ความสามารถในการควบคุมแต่ละอย่างแยกต่างหากแทนที่จะพยายามโคลนด้วย LC แลกเปลี่ยนใน ASG เดียว


7

วิธีการปรับสเกลอัตโนมัติไฮบริด นี้ดูเหมือนว่าจะไม่สามารถใช้งานได้ทันที

อย่างไรก็ตามคุณอาจสามารถหลีกเลี่ยงข้อ จำกัด นี้ได้ดังนี้ (ยังไม่ทดลองเพียงแค่การออกแบบระบบที่ฉันเล่นไปมาระยะหนึ่ง):

วิธีแก้ปัญหาที่เป็นไปได้

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

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

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

ชิ้นส่วนที่เน้นคือกุญแจสำคัญโดยที่ในอดีตครอบคลุมความต้องการเพื่อให้อินสแตนซ์ตามความต้องการทำงานหลังจากเปลี่ยนจากการกำหนดค่าเริ่มต้นตามความต้องการเริ่มต้นเป็นการเปลี่ยนรูปแบบการเปิดตัวสปอตเพิ่มเติมและหลังไม่จำเป็นต้องเป็นกรณีอีกต่อไปนโยบายการยกเลิกการปรับขนาดอัตโนมัติที่แนะนำเมื่อเร็ว ๆ นี้(สำหรับการเปลี่ยนแปลงที่ยังไม่ได้มีการประโคมผ่านทางโพสต์บล็อก AWS ที่แนบมาด้วย) ซึ่งจัดทำในนโยบายการยุติอินสแตนซ์สำหรับกลุ่มการปรับขนาดอัตโนมัติของคุณ :

ก่อนที่การปรับขนาดอัตโนมัติจะเลือกอินสแตนซ์เพื่อยกเลิกก่อนอื่นให้ระบุโซนความพร้อมใช้งานที่มีอินสแตนซ์มากกว่าโซนความพร้อมใช้งานอื่น ๆ ที่กลุ่มใช้ ถ้าโซนความพร้อมใช้งานทั้งหมดมีอินสแตนซ์จำนวนเดียวกันมันจะระบุโซนความพร้อมใช้งานแบบสุ่ม ภายในห้องว่างระบุ Zone, Auto Scaling ใช้นโยบายการเลิกจ้างเพื่อเลือกอินสแตนซ์สำหรับการยกเลิก [เน้นเหมือง]

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

การปรับขนาดอัตโนมัติใช้เวลาที่เริ่มต้นของอินสแตนซ์เพื่อระบุอินสแตนซ์ที่เปิดตัวล่าสุด

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

ข้อแม้

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

โชคดี!


2
มันสมเหตุสมผลแล้ว - เป็นนักสืบที่ยอดเยี่ยม ยังคงมีความเสี่ยงที่เกิดไฟฟ้าดับ แต่ดูเหมือนว่าคุณได้ค้นพบวิธีการใหม่ ๆ ในการลดความเสี่ยงดังกล่าว หวังว่าสักวันเราจะมีช่องทำเครื่องหมายง่ายๆสำหรับ ASG "อินสแตนซ์ที่ต่ำกว่าหรือต่ำกว่าเซิร์ฟเวอร์ขั้นต่ำเป็นอินสแตนซ์ตามคำขอ" ขอบคุณ!
แพลตฟอร์ม

1

ฉันใช้แรงบันดาลใจจากคำตอบที่นี่เพื่อหาhttps://github.com/ashwanthkumar/matsya

ช่วยให้คุณทำสิ่งต่อไปนี้

  • คุณต้องมีเครื่องจักรจำนวนมากสำหรับความต้องการคลัสเตอร์ Hadoop / Mesos / YARN ของคุณ
  • คุณต้องการประหยัดเงินโดยใช้ Spot แต่ยังย้อนกลับไปที่ OD เนื่องจากคุณต้องการพลังการประมวลผลเพื่อให้ตรงกับ SLA ของคุณ
  • เปลี่ยนกลับเป็น Spot หนึ่งครั้งบน OD เพื่อประหยัดเงินอีกครั้ง

1
โปรดทราบนโยบายของเราเกี่ยวกับการส่งเสริมตนเอง
HBruijn

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

หากฉันคิดว่าคำตอบของคุณเป็นจดหมายขยะจริงฉันจะทำเครื่องหมายเป็นเช่นนั้นแล้วดังนั้นคุณไม่จำเป็นต้องลบโพสต์ของคุณ ลิงค์ส่งเสริมการขายนั้นเป็นสิ่งที่จองไว้ล่วงหน้ามากกว่าถึงแม้ว่าคำตอบดังกล่าวจะมีประโยชน์ แต่ก็มีความสมดุลที่ผู้ใช้รายใหม่เช่นตัวคุณเองมักไม่รู้ตัว และในฐานะผู้ดูแลฉันต้องการให้การศึกษาแก่คุณตอนนี้ก่อนที่คุณจะข้ามเส้นที่คุณไม่รู้ว่ามีอยู่ (ซึ่งเป็นรูปแบบการเกิดซ้ำที่โชคร้าย)
HBruijn

มีเหตุผล. ขอขอบคุณที่ติดตามนโยบาย
ashwanthkumar

1

ในกรณีที่คุณต้องการเพียง 1 ASG ที่มีอินสแตนซ์ตามต้องการจำนวนคงที่รายการต่อไปนี้ควรใช้งานได้:

  • สร้างกลุ่มการปรับขนาดอัตโนมัติตามการกำหนดค่า Spot Instance Launch

  • ระงับการปรับขนาดอัตโนมัติใน ASG

  • เพิ่มอินสแตนซ์ตามคำขอ (โหลดฐานแบบคงที่) ด้วยตนเองให้กับ ASG และเปิดการป้องกันอินสแตนซ์สำหรับอินสแตนซ์เหล่านั้น

  • ดำเนินการอัตโนมัติต่อโดยใช้ ASG

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.