Mengapa harga spot AWS EC2 lebih besar dari pada harga berdasarkan permintaan?

27

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:

masukkan deskripsi gambar di sini

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?

Dawny33
sumber
Jika harga spot selalu lebih rendah dari harga on-demand, mengapa harga on-demand ada?
Zach Lipton
2
Zach, karena Amazon dapat menghentikan instans Anda sesuka hati jika ada penawar yang lebih tinggi.
Xiong Chiamiov
1
Tidak peduli apa alasan di baliknya - Anda dapat meminimalkan risiko dengan menerapkan aturan praktik terbaik untuk instance tempat - aws.amazon.com/ec2/spot/getting-started - buat permintaan untuk sebanyak mungkin jenis instance dan sebanyak AZ. mungkin, dengan begitu Anda dapat mengurangi kemungkinan bahwa Anda akan membayar lebih. Jika Anda membayar sedikit lebih banyak dalam waktu yang singkat dan jauh lebih sedikit dalam semua kasus lainnya, ini masih bermanfaat bagi Anda. Selain itu, sepertinya algoritme dengan banyak instance kecil dapat jauh lebih aman dari beban kerja simpul tunggal yang besar aws.amazon.com/ec2/spot/instance-advisor
Petr Chloupek

Jawaban:

23

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.

Henry
sumber
12

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.

Thern
sumber
Jadi, dalam gambar ini dalam pertanyaan saya, harga spot adalah $ 2,15 pada pukul 18:00, kan? yang berarti orang masih membayar $ 2,15 untuk contoh, ketika mereka dapat membayar harga sesuai permintaan. Kenapa begitu?
Dawny33
1
lihat jawaban saya (Tentang untuk mempostingnya)
Henry
@ Dawny33 Terkadang harga hanya naik di atas ambang batas untuk waktu yang singkat. Beralih dari penetapan harga spot ke permintaan melibatkan pembuatan instance pada instance EC2 normal. Jika harga turun lagi, instance berdasarkan permintaan telah dihancurkan, instance spot baru, dll ... Dengan demikian, kehilangan waktu instance dapat berguna. Beberapa orang tidak akan berpikir ini sepadan dengan usaha dan hanya akan menggunakan contoh tempat
Thern
6

Sedikit informasi yang berguna untuk memahami mengapa seseorang akan menawar lebih dari harga berdasarkan permintaan dapat ditemukan di Pengantar Contoh Instansi :

Instance Spot dapat digunakan untuk membantu Anda memenuhi kebutuhan sesekali untuk jumlah besar kapasitas komputasi (perhatikan bahwa batas default untuk Instans Spot adalah 100 versus batas default 20 untuk Instans Berdasarkan Permintaan.) Jika kebutuhan Anda mendesak, Anda dapat menentukan harga maksimum yang tinggi (bahkan mungkin lebih tinggi dari harga Berdasarkan Permintaan), yang akan meningkatkan prioritas relatif permintaan Anda dan memungkinkan Anda untuk mendapatkan akses ke kapasitas secepat mungkin dengan memberikan permintaan lain dan kapasitas Instance Spot yang tersedia pada saat itu.

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.

Aurora0001
sumber
3

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.

Garyamort
sumber