Saya mencoba menyediakan instance spot via Ansible kemarin, dan hampir semua permintaan saya gagal, bahkan ketika saya menempatkan harga spot saya == harga on-demand instance itu.
Jadi, ketika saya melihat grafik penetapan harga spot, saya menemukan sesuatu yang sangat menarik:
Harga spot instance di us-east-1a lebih dari harga on-demand, yang membingungkan saya. [sebenarnya, ~ 5x kali lebih tinggi]
Bukankah instance spot lebih disukai karena biaya rendah? Jika ya, lalu mengapa harganya lebih tinggi dari harga sesuai permintaan?
Menurut dokumen AWS :
Mesin virtual Spot memberikan Anda akses ke kapasitas Amazon EC2 yang tidak digunakan dengan diskon curam relatif terhadap harga Berdasarkan Permintaan.
Juga, apakah ini berarti bahwa orang menawar harga berdasarkan permintaan? Jika ya, lalu mengapa demikian? Bukankah mereka lebih baik dengan contoh berdasarkan permintaan?
Atau apakah saya memahami konsep contoh titik yang salah?
sumber
Jawaban:
Ini sebenarnya adalah contoh bagus dari orang yang sedikit menyalahgunakan tempat. Orang-orang mengatakan 'Beban kerja kami sangat penting tetapi kami tidak ingin membayar penuh pada harga permintaan', sehingga mereka menetapkan harga penawaran lebih tinggi dari pada permintaan berdasarkan asumsi bahwa itu sangat tidak mungkin untuk dihentikan, tetapi masih ingin dapatkan harga spot 'termurah mungkin' yang ditawarkan.
Ada kasus di mana orang masuk, misalnya, $ 1000 (saya sudah diberitahu setidaknya satu kali ini terjadi) karena mereka menginginkan manfaat dari pasar spot. Tentu saja secara alami pada titik tertentu permintaan masuk dan harga spot SUARA membuat orang membayar lebih tinggi dari pada permintaan.
Cara kerja pasar spot adalah bahwa Amazon memiliki kapasitas cadangan instans X, dan mereka menghitung dari atas ke bawah hingga memenuhi kebutuhan semua instans X. Maka 'harga' adalah harga terendah di mana mereka dapat memenuhi instance X tersebut.
Jadi bayangkan Amazon memiliki 10.000 instance - well mereka akan menghitung mundur ke (katakanlah) $ 0,43 sampai mereka telah terpenuhi 10.000 instance. Tetapi jika pasokan itu tiba-tiba turun menjadi 100 contoh, maka mungkin beberapa orang menetapkan harga penawaran $ 10.000 untuk 100 contoh mereka, tiba-tiba mereka akan membayar $ 10rb per jam.
Tl; pahami cara kerja spot, dan tentukan batasan yang siap Anda bayar.
sumber
Ada 2 alasan untuk ini:
Banyak pengguna yang menggunakan instance spot pada beberapa waktu (Pikirkan tentang pemrosesan batch, boot 100 mesin sebagai instance spot dan hilang).
Misalnya, Anda tidak membayar harga penawaran, Anda membayar harga spot saat ini. Harga penawaran adalah titik cutoff. Jika harga spot saat ini melebihi dari harga penawaran AWS akan menghentikan instance itu.
Ini yang terakhir juga merupakan alasan bahwa beberapa pengguna akan secara besar-besaran menawar lebih tinggi pada harga spot. Mereka tidak ingin instance mereka sering ditutup, sehingga mereka menawar harga sedemikian tinggi sehingga harga spot tidak akan pernah mencapai. Karena mereka hanya akan membayar harga spot saat ini, instance akan jauh lebih murah 99% dari waktu.
sumber
Sedikit informasi yang berguna untuk memahami mengapa seseorang akan menawar lebih dari harga berdasarkan permintaan dapat ditemukan di Pengantar Contoh Instansi :
Jika Anda memiliki lonjakan besar dalam permintaan untuk layanan Anda (mungkin ditautkan dari situs populer lainnya — lihat efek Slashdot ), penawaran di atas harga berdasarkan permintaan untuk instance spot akan membantu Anda mendapatkan akses ke lebih banyak instance, seperti dicatat oleh dokumen.
Tentu saja, ini tidak berkelanjutan dalam jangka panjang, dan Anda akan mendapatkan kesepakatan yang jauh lebih baik untuk perhitungan jangka panjang dengan hanya membeli contoh-contoh sesuai permintaan (plus ada risiko kalah kalah!).
Jika Anda berada dalam situasi di mana Anda membutuhkan banyak daya komputasi, cepat — lebih dari yang bisa Anda dapatkan hanya dengan membeli contoh sesuai permintaan — terlalu banyak menawar mungkin masuk akal.
sumber
Jika Anda melihat grafik dengan cermat, Anda akan melihat bahwa lonjakan selalu memiliki durasi yang sangat singkat - cukup waktu untuk sistem pemantauan otomatis yang ditulis oleh pemilik untuk mengakhiri sistem tersebut dengan anggun. Selain itu, Anda kadang-kadang akan menemukan bahwa harga turun ke 0 segera setelah lonjakan. Itu karena semua sistem di pusat data itu digunakan seperti pada sistem permintaan, tanpa sistem yang tersedia untuk penetapan harga spot, harga efektif nol.
Ketika instance spot Anda ditandai untuk penghentian, sebuah pesan yang menunjukkan ini akan tersedia pada sistem di uri meta-data lokal dari http://169.254.169.254/latest/meta-data/spot/termination-time . Akan ada 3 menit sampai berakhir. Lebih dari cukup waktu dalam banyak kasus untuk menangani pemutusan hubungan kerja secara otomatis. Penawaran di atas harga permintaan hanya diperlukan untuk penyebaran yang membutuhkan lebih dari beberapa menit untuk berakhir dengan anggun.
Jika tidak mungkin untuk merancang sistem Anda untuk mengakhiri dengan anggun, mengarsipkan data, dll dalam 3 menit Anda dapat menempatkan tawaran lebih tinggi dari harga permintaan untuk mendapatkan waktu. Sistem ini bahkan dapat dirancang untuk secara proaktif memantau harga spot saat ini dan bertukar sebelum harga berlalu. Tetapi untuk saat-saat itu terjadi, Anda perlu membuat keputusan bisnis tentang berapa nilainya untuk waktu untuk mengakhiri dengan anggun.
Adalah bodoh untuk membayar $ 100 / jam selama 4-5 jam untuk menjaga sistem Anda. Namun, jika sistem Anda memerlukan waktu 30 menit untuk menghentikan semua proses dengan anggun, Anda dapat membuat keputusan bisnis berapa nilainya untuk berpotensi kehilangan data apa pun, atau menurunkan layanan skala horizontal Anda. Situs e-commerce dengan laba bersih $ 10.000 per jam tentu mampu membayar $ 1.000 untuk menjaga 2 instance spot berjalan selama 15 hingga 30 menit sambil memunculkan sistem permintaan dan pengarsipan data.
Aplikasi berbasis web dapat menggunakan Elastic Load Balancer untuk membantu mengatasi penghentian secara otomatis. Seorang pelaksana yang cerdas akan menempatkan satu set skrip untuk menangani peringatan tersebut. Mereka dapat mempertahankan 2 biaya rendah pada instance permintaan yang memuat seimbang - dan kemudian menggunakan hingga setengah lusin sistem biaya menengah melalui instance instan untuk mempertahankan kinerja tinggi dan menghabiskan kurang dari satu pada sistem permintaan pada kapasitas yang sama.
Biarkan 3 dari mereka membayar hingga $ 100 / jam dan 3 dari mereka hanya membayar hingga setengah dari harga permintaan. Ketika AWS mengakhiri instance, ELB akan menyesuaikan secara otomatis. Memberikan sistem otomatis hingga satu jam untuk menyesuaikan hanya dengan $ 200.
sumber