AWS स्पॉट प्राइसिंग को स्वचालित रूप से कैसे जांचें?


15

मैं एक जेनकींस नौकरी के बारे में सोच रहा हूं जो हमारे द्वारा स्पिन किए गए एजेंट बक्से के मूल्य निर्धारण की जांच करने के लिए है; हर बार अक्सर मूल्य में वृद्धि होती है और यह किसी को भी नोटिस करने से पहले एक या दो घंटे का होगा कि कोई नया एजेंट नहीं आ रहा है, और फिर हमें मैन्युअल रूप से जाना होगा और स्पॉट की कीमत की जांच करनी होगी और तदनुसार समायोजित करना होगा, या जोनों को बदलना होगा, आदि।

मेरी पहली वृत्ति यह थी कि सबसे अच्छा रास्ता एक घंटे की जेनकींस नौकरी है जो aws ec2 describe-spot-instance-requestsविफल अनुरोधों के लिए एक और चेक चलाता है (और फिर हमें विफलता पर सुस्त कर देता है)। लेकिन मैं सोच रहा हूं कि क्या कोई क्लीनर विधि है जिसमें वास्तव में कठिन कीमतों की तुलना करना शामिल है (और इसलिए हमें बता सकता है कि सफल / असफल अनुरोधों को देखने के बजाय वास्तव में क्या है, और कितने से बंद है)।

किसी ने कुछ इसी तरह की स्थापना की? आप इसे कैसे करेंगे?


1
उचित प्रश्न, मुझे लगता है ... लेकिन आप केवल बोली क्यों नहीं लगा सकते हैं कि वास्तव में आपके लिए क्या मूल्य हैं, उदाहरणों के कई प्रकारों का चयन करें (उदाहरण के लिए आपको जो चाहिए उससे बड़ा है, जो कभी-कभी सस्ते होते हैं जब छोटे उदाहरण स्पॉट की कीमतें बढ़ती हैं ... कभी-कभार - जैसे अभी मैं इसे लिखता हूं - मैं खुद को cc2.8xlarge के साथ पाता हूं, क्योंकि यह वर्तमान में c3.2xlarge की तुलना में सस्ता है, 4x कोर और 4x मेमोरी होने के बावजूद) और सिस्टम को हैंडल करने देता हूं बाजार के आधार पर चयन और AZ प्लेसमेंट?
माइकल - sqlbot

1
@ माइकल- sqlbot मैं प्रक्रिया के उस हिस्से में नहीं है; हमारे पास यह कहते हुए प्रलेखन है कि हम ऑडिटिंग उद्देश्यों के लिए एक निश्चित आकार की खरीद करते हैं और इसलिए हम इसके साथ फंस गए हैं। बस एक विषम परिस्थिति का अधिकतम लाभ उठाने की कोशिश की जा रही है।
एलेक्स

1
फेयर काफी, @ एलेक्स। मैंने सोचा था कि अगर आप इसे नहीं मानते, तो मैं इसे फेंक देता।
माइकल - sqlbot

@ एलेक्स आउट ऑफ इंटरेस्ट, निश्चित उदाहरण आकार है ताकि इसे बिलों पर आसानी से देखा जा सके? क्योंकि आप (बल्कि, वे!) टैग का उपयोग कर सकते हैं और फिर उन्हें कॉस्ट एक्सप्लोरर में देख सकते हैं।
टिम मेलोन

जवाबों:


15

एक खुला स्रोत उपकरण देखा जिसे ऑटोस्पॉटिंग कहा जाता है जो बस इसके साथ मदद कर सकता है:

मौजूदा ऑन-डिमांड AutoScaling समूह पर सक्षम होने के बाद, यह EC2 स्पॉट उदाहरण लॉन्च करता है जो सस्ता है, कम से कम उतना बड़ा और आपके वर्तमान ऑन-डिमांड उदाहरणों के लिए समान रूप से कॉन्फ़िगर किया गया है। जैसे ही नया उदाहरण तैयार होता है, इसे समूह में जोड़ दिया जाता है और समूह से ऑन-डिमांड उदाहरण को अलग कर दिया जाता है और समाप्त कर दिया जाता है।

हमारे पास यह हमारे टू-डू पाइपलाइन है, हम इसे समाप्त करने के बाद अधिक संदर्भ जोड़ पाएंगे।

अपडेट करें:

एक अन्य उपकरण जो हाल ही में एक कॉन्फ्रेंस में डेमो किया गया था, मैपबॉक्स / स्पॉटस्वाप था

यह थोड़ा अलग तरीके से काम करता है। यह ऑन-डिमांड या आरक्षित उदाहरणों के साथ एक सामान्य एएसजी की निगरानी करता है और फिर, यदि स्केल उत्पन्न होता है, तो एक अलग एएसजी पर समान गणना स्तर के बोलियां और प्रावधान स्पॉट होते हैं।


2
साइट, Hashfyre :) में आपका स्वागत है
Dawny33

1
मैं AutoSpotting का लेखक हूँ, इसका उल्लेख करने के लिए धन्यवाद! क्या आपने इसे अभी तक आज़माया है? मैं उपयोगकर्ता प्रतिक्रिया के लिए सभी कान हूँ।
क्रिस्टियन मागेरुएन-स्टैनसीउ

6

मैं व्यक्तिगत रूप से इस तरह के एक मॉडल पर विचार करूंगा:

Timed Lambdas -> Checks spot price -> Push to ElastiCache

तब जब आपको उदाहरणों की आवश्यकता हो:

Timed lambdas -> Pulls spot price from ElastiCache, sets it as environment variable on your Machine where you spin up IaC from -> This is parsed as argument to IaC code and pushes out the spot price

उदाहरण के लिए, आप कुछ सहिष्णुता निर्धारित कर सकते हैं, लैम्ब्डा के भीतर (यानी 10, 25, 50% महत्व के आधार पर) और हार्ड-कैप की मांग। उदाहरण के लिए, तर्क को बनाने के लिए यह एक बेहतरीन जगह है, उदाहरण के लिए, सबसे सस्ता AZ खोजना, अपेक्षाकृत सस्ता स्पॉट प्राइस ( 2xt2.mediumबनाम t2.large), आदि।


बस जानकारी के लिए, आप हटाए गए उत्तर को संपादित कर सकते हैं और इसे ध्वजांकित करने के लिए कह सकते हैं। (कोई नुकसान नहीं हुआ, यह सिर्फ जानकारीपूर्ण है :))
तेंसिबाई

1
मैं अपनी शर्मिंदगी के सभी दिनों के लिए मुझे याद दिलाने के लिए अपनी शर्म छोड़ दूंगा।
हेनरी

Rofl, वास्तव में कोई शर्म नहीं है, चिंता मत करो :)
Tensibai

3
मेरी निशानदेही मैं कौन हूँ
हेनरी

शांत विचार - यह भी ध्यान देने योग्य हो सकता है कि कीमत डायनमोडीबी तालिका में मूल्य को धक्का दे सकती है, अगर उनके पास पहले से ही एक इलास्टीचे क्लस्टर नहीं है;)। या शायद S3 बाल्टी में JSON फ़ाइल भी।
टिम मेलोन

4

मुझे आपको ऐसा करने के लिए एक उपकरण-अज्ञेयवादी तरीका देना चाहिए।

हर बार अक्सर मूल्य में वृद्धि होती है और किसी को भी नोटिस करने से पहले यह एक या दो घंटे का होगा कि कोई नया एजेंट नहीं आ रहा है, और फिर हमें मैन्युअल रूप से जाना होगा और स्पॉट की कीमत की जांच करनी होगी और तदनुसार समायोजित करना होगा, या जोनों को स्विच करना होगा आदि।

हम बुनियादी ढांचे में उसी समस्या का सामना कर रहे हैं जो हम निर्माण कर रहे हैं। if-elseउदाहरण के लिए, ऑन-डिमांड मूल्य के आधार पर, बोली मूल्य निर्धारित करने के लिए हमारे पास शैली ब्लॉक थे ।

AWS के पास एक उदाहरण की ऑन-डिमांड कीमत प्राप्त करने के लिए एक एपीआई है । हमने इस पायथन रैपर का उपयोग इस उद्देश्य के लिए किया था।

तो, एक बार हम पर मांग कीमत मिल गया (मान लें X), हम में खामियों को दूर if-elseशैली ब्लॉक है, जो कर रहे हैं 0.4*X, 0.6*X, 0.8*X, X, जिसका अर्थ है हम एक बोली मूल्य के लिए रेंज में पर कोशिश कर रहे हैं 40%, 60%, के 80% -मानंद कीमत। यदि सभी विफल होते हैं, तो हम ऑन-डिमांड उदाहरण बनाने के लिए वापस आ रहे हैं।

इसके अलावा, जैसा कि यह AWS के वर्तमान स्पॉट मूल्य से स्वतंत्र है, हम कभी भी ऑन-डिमांड मूल्य से अधिक कीमत का भुगतान नहीं करते हैं।

लेकिन, अगर आप इसे ऑन-द-फ्लाई करने का तरीका ढूंढ रहे हैं, तो हैशफायर के समाधान को जाने का रास्ता होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.