เหตุใดราคาพิเศษของ AWS EC2 จึงสูงกว่าราคาตามความต้องการ


27

ฉันพยายามจัดสรรอินสแตนซ์ของ Spot ผ่าน Ansible เมื่อวานนี้และคำขอเกือบทั้งหมดของฉันล้มเหลวแม้ว่าฉันจะวางราคา spot == ราคาตามความต้องการของอินสแตนซ์นั้น

ดังนั้นเมื่อฉันดูกราฟราคาสปอตฉันพบสิ่งที่น่าสนใจมาก:

ป้อนคำอธิบายรูปภาพที่นี่

ราคาสปอตของอินสแตนซ์ในเราตะวันออก -1a เป็นมากกว่าราคาตามความต้องการซึ่งทำให้ฉันสับสน [ในความเป็นจริง ~ 5 เท่าสูงกว่า]

อินสแตนซ์แบบ Spot ไม่เหมาะสำหรับต้นทุนต่ำใช่ไหม ถ้าใช่แล้วทำไมราคาถึงสูงกว่าราคาตามความต้องการ?

ตามเอกสารของ AWS :

อินสแตนซ์แบบ Spot ให้คุณเข้าถึงความสามารถของ Amazon EC2 ที่ไม่ได้ใช้พร้อมส่วนลดที่สูงชันเมื่อเทียบกับราคาตามความต้องการ

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

หรือฉันเข้าใจแนวคิดของอินสแตนซ์จุดที่ผิดหรือเปล่า?


หากราคาสปอตน้อยกว่าราคาตามความต้องการอยู่เสมอทำไมราคาตามความต้องการจึงมีอยู่ทั้งหมด
Zach Lipton

2
Zach เพราะ Amazon สามารถยุติอินสแตนซ์ของคุณได้หากมีผู้เสนอราคาสูงกว่า
Xiong Chiamiov

1
ไม่ว่าจะด้วยเหตุผลอะไร - คุณสามารถลดความเสี่ยงได้โดยใช้กฎการปฏิบัติที่ดีที่สุดสำหรับอินสแตนซ์จุด - aws.amazon.com/ec2/spot/getting-started - สร้างคำขอสำหรับอินสแตนซ์หลายประเภทและ AZs จำนวนมาก เท่าที่เป็นไปได้วิธีที่คุณสามารถลดความเป็นไปได้ที่คุณจะจ่ายมากขึ้น หากคุณจ่ายน้อยกว่านี้ในเวลาและน้อยกว่าในกรณีอื่น ๆ ทั้งหมดนี้ยังคงเป็นประโยชน์กับคุณ นอกจากนี้ดูเหมือนว่าอัลกอริทึมที่มีอินสแตนซ์ขนาดเล็กจำนวนมากสามารถปลอดภัยกว่าที่โหลดโหนดเดี่ยวขนาดใหญ่aws.amazon.com/ec2/spot/instance-advisor
Petr Chloupek

คำตอบ:


23

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

มีหลายกรณีที่ผู้คนเข้ามาตัวอย่างเช่น $ 1,000 (ฉันได้รับการบอกเล่าอย่างน้อยหนึ่งครั้งที่เกิดขึ้น) เพราะพวกเขาต้องการผลประโยชน์ของตลาดสปอต แน่นอนว่าในบางจุดความต้องการเข้ามาและราคาสปอตจะทำให้ผู้คนจ่ายสูงกว่าความต้องการ

วิธีการทำงานของตลาดสปอตคือ Amazon มีความจุสำรองอินสแตนซ์ X และพวกเขานับจากบนลงล่างจนกว่าพวกเขาจะเติมเต็มความต้องการสำหรับอินสแตนซ์ X ทั้งหมด 'ราคา' จึงเป็นราคาต่ำสุดที่พวกเขาสามารถทำตามอินสแตนซ์ X เหล่านั้นได้

ดังนั้นจินตนาการว่า Amazon มี 10,000 อินสแตนซ์ - พวกเขาจะนับได้ถึง (พูด) $ 0.43 จนกว่าพวกเขาจะได้รับ 10,000 อินสแตนซ์ แต่ถ้าอุปทานนั้นลดลงอย่างรวดเร็วถึง 100 ครั้งอาจมีบางคนที่ใส่ราคาเสนอ 10,000 ดอลลาร์สำหรับ 100 ครั้งของพวกเขาทันใดนั้นพวกเขาจะจ่าย $ 10k ต่อชั่วโมง

เข้าใจว่าสปอตทำงานอย่างไรและตั้งค่าสูงสุดที่คุณพร้อมจ่าย


12

มี 2 ​​เหตุผลสำหรับสิ่งนี้:

  • ผู้ใช้จำนวนมากกำลังใช้อินสแตนซ์แบบจุดในบางครั้ง (คิดเกี่ยวกับการประมวลผลแบบแบตช์บูตเครื่องได้ 100 เครื่องเป็นแบบจุดเฉพาะและกระทืบ)

  • สำหรับอินสแตนซ์แบบ Spot คุณไม่ต้องจ่ายราคาประมูลคุณต้องชำระราคา spot ปัจจุบัน ราคาเสนอซื้อเป็นจุดตัดยอดขาย หากราคาสปอตปัจจุบันสูงกว่าราคาประมูล AWS จะยกเลิกอินสแตนซ์นั้น

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


ดังนั้นในภาพนี้ในคำถามของฉันราคาสปอตคือ $ 2.15 เวลา 18.00 น. ใช่ไหม ซึ่งหมายความว่าผู้คนยังคงจ่ายเงิน $ 2.15 สำหรับอินสแตนซ์เมื่อพวกเขาสามารถชำระราคาตามความต้องการ ทำไมเป็นเช่นนั้น
Dawny33

1
ดูคำตอบของฉัน (เกี่ยวกับการโพสต์มัน)
เฮนรี่

@ Dawny33 บางครั้งราคาอาจสูงกว่าเพดานเพียงช่วงสั้น ๆ การสลับจากการกำหนดราคาตามความต้องการเป็นการสร้างอินสแตนซ์บนอินสแตนซ์ ec2 ปกติ หากราคาลดลงอีกครั้งอินสแตนซ์ตามความต้องการจะถูกทำลายอินสแตนซ์จุดใหม่ ฯลฯ ... ดังนั้นเวลาที่สูญเสียอินสแตนซ์อาจเป็นประโยชน์ บางคนจะไม่คิดว่านี่เป็นมูลค่าความพยายามและจะใช้อินสแตนซ์จุด
Thern

6

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

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

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

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

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


3

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

เมื่อตัวอย่างเช่นจุดของคุณถูกตั้งค่าสถานะสำหรับการยกเลิกข้อความที่ระบุนี้จะสามารถใช้ได้ในระบบที่ URI meta ข้อมูลท้องถิ่นhttp://169.254.169.254/latest/meta-data/spot/termination-time จะมี3 นาทีจนกว่าจะสิ้นสุด มีเวลามากพอที่จะจัดการกับการเลิกจ้างโดยอัตโนมัติ การเสนอราคาสูงกว่าราคาความต้องการเป็นสิ่งจำเป็นสำหรับการปรับใช้ซึ่งต้องใช้เวลามากกว่าสองสามนาทีในการยกเลิกอย่างสง่างาม

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

เป็นเรื่องโง่ที่จะจ่าย $ 100 / ชั่วโมงเป็นเวลา 4-5 ชั่วโมงเพื่อให้ระบบของคุณ อย่างไรก็ตามหากระบบของคุณใช้เวลา 30 นาทีในการยุติกระบวนการทั้งหมดอย่างสง่างามคุณสามารถตัดสินใจทางธุรกิจได้ว่าจะสูญเสียข้อมูลจำนวนเท่าใดหรืออาจลดขนาดบริการในแนวนอนลง ไซต์อีคอมเมิร์ซที่มีกำไรสุทธิ $ 10,000 ต่อชั่วโมงสามารถจ่ายได้ $ 1,000 เพื่อเก็บอินสแตนซ์ 2 จุดทำงานเป็นเวลา 15 ถึง 30 นาทีในขณะที่นำระบบความต้องการและข้อมูลการเก็บถาวรมาใช้

แอปพลิเคชันบนเว็บสามารถใช้ Elastic Load Balancer เพื่อช่วยในการบอกเลิกการทำงานโดยอัตโนมัติ ผู้ดำเนินการที่ชาญฉลาดจะวางชุดของสคริปต์เพื่อจัดการการแจ้งเตือน พวกเขาสามารถรักษาอินสแตนซ์อุปสงค์ที่มีต้นทุนต่ำ 2 รายการซึ่งโหลดได้สมดุล - จากนั้นใช้ระบบต้นทุนปานกลางถึงครึ่งโหลผ่านสปอตอินสแตนซ์เพื่อรักษาประสิทธิภาพสูงและใช้จ่ายน้อยลง

ปล่อยให้ 3 ในสามของพวกเขาจ่ายสูงถึง $ 100 / ชั่วโมงและ 3 ของพวกเขาจ่ายเพียงครึ่งราคาตามความต้องการ เมื่อ AWS ยกเลิกอินสแตนซ์ ELB จะปรับโดยอัตโนมัติ ให้ระบบอัตโนมัติสูงถึงหนึ่งชั่วโมงในการปรับเพียง $ 200

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