Почему спотовая цена AWS EC2 выше, чем цена по требованию?

27

Вчера я пытался предоставить спотовые экземпляры через Ansible, и почти все мои запросы не выполнялись, даже когда я указывал спотовую цену == цену по требованию для этого экземпляра.

Итак, когда я взглянул на график спотовых цен, я обнаружил кое-что очень интересное:

введите описание изображения здесь

Спотовая цена экземпляра в us-east-1a больше, чем цена по требованию, что меня смутило. [на самом деле, ~ в 5 раз выше]

Разве точечные экземпляры не являются предпочтительными по низкой цене? Если да, то почему цена выше, чем цена по требованию?

Согласно документам AWS :

Спотовые экземпляры предоставляют вам доступ к неиспользованной емкости Amazon EC2 со значительными скидками по сравнению с ценами по требованию.

Кроме того, означает ли это, что люди делают ставки по цене по требованию? Если да, то почему так? Разве им не лучше с экземпляром по требованию?

Или я неправильно понял концепцию точечных экземпляров?

Dawny33
источник
Если спотовая цена всегда была ниже цены по требованию, почему цена по требованию вообще существует?
Зак Липтон
2
Зак, потому что Amazon может закрыть ваш экземпляр по желанию, если есть более высокая цена.
Сюн Чямов,
1
Неважно, в чем причина этого - вы можете минимизировать риск, внедрив лучшие правила для спотовых экземпляров - aws.amazon.com/ec2/spot/getting-started - создайте запрос на столько типов экземпляров и столько AZ насколько это возможно, таким образом вы можете уменьшить вероятность того, что вы будете платить больше. Если вы платите немного больше за небольшой промежуток времени и существенно меньше во всех остальных случаях, это все равно будет полезно для вас. Кроме того, похоже, что алгоритм с множеством маленьких экземпляров может быть намного безопаснее, чем большие рабочие нагрузки с одним узлом aws.amazon.com/ec2/spot/instance-advisor
Петр Члупек

Ответы:

23

На самом деле это отличный пример того, как люди немного злоупотребляют местами. Люди говорят: «Наша рабочая нагрузка действительно важна, но мы не хотим платить по полной цене по требованию», поэтому они устанавливают цену предложения выше, чем по требованию, предполагая, что она вряд ли будет отменена, но все же хочет получить «самую дешевую» спотовую цену в продаже.

Были случаи, когда люди вводили, например, 1000 долларов (мне говорили, по крайней мере, один раз, когда это произошло), потому что они хотят получить выгоду от спотового рынка. Конечно, в какой-то момент спрос приходит, и спотовая цена стремительно заставляет людей платить больше, чем по требованию.

Спотовый рынок работает так, что у Amazon есть резервные емкости X-экземпляров, и они считают сверху вниз, пока не удовлетворят потребности во всех X-экземплярах. Таким образом, «цена» - это самая низкая цена, по которой они могут выполнить эти X экземпляров.

Итак, представьте, что у Amazon есть 10 000 экземпляров - ну, они будут считать (скажем) $ 0,43, пока не выполнят эти 10 000 экземпляров. Но если это предложение внезапно упадет до 100 экземпляров, то, возможно, несколько человек установят цену предложения 10000 долларов за свои 100 экземпляров, вдруг они будут платить по 10 тысяч долларов в час.

Tl; dr. Поймите, как работает спот, и установите предел, который вы готовы заплатить.

Генри
источник
12

Для этого есть 2 причины:

  • Многие пользователи иногда используют точечный экземпляр (подумайте о пакетной обработке, загрузите 100 машин в качестве точечного экземпляра и откажитесь).

  • Для спотового экземпляра вы не платите цену, вы платите текущую спотовую цену. Цена предложения является точкой отсечения. Если текущая спотовая цена превышает цену спот, AWS прекратит действие этого экземпляра.

Последнее также является причиной того, что некоторые пользователи будут чрезмерно перебивать спотовые цены. Они не хотят, чтобы их экземпляр останавливался так часто, поэтому они предлагают цену настолько высокую, что спотовая цена никогда не достигнет. Поскольку они будут платить только текущую спотовую цену, экземпляр будет намного дешевле в 99% случаев.

Терн
источник
Итак, на этом рисунке в моем вопросе спотовая цена составляет $ 2,15 в 18:00, верно? Это означает, что люди по-прежнему платят 2,15 доллара за экземпляр, когда они могут заплатить цену по требованию. Почему так?
Dawny33
1
см. мой ответ (собирается опубликовать его)
Генри
@ Dawny33 Иногда цена поднимается выше порога только на короткое время. Переход от спотовой цены к цене по требованию включает воссоздание экземпляра на обычном экземпляре ec2. Если цена снова падает, экземпляр по требованию был уничтожен, новый экземпляр спота, т. Д. Таким образом, потеря экземпляра может быть полезной. Некоторые люди не думают, что это стоит затраченных усилий и будут использовать только точечные экземпляры
Thern
6

Полезную информацию для понимания того, почему кто-то сделал ставку по цене по требованию, можно найти в разделе Введение в спот-экземпляры :

Точечные экземпляры могут использоваться для удовлетворения случайных потребностей в больших объемах вычислительной мощности (обратите внимание, что предельное значение по умолчанию для точечных экземпляров составляет 100 против предела по умолчанию 20 для экземпляров по требованию.) Если ваши потребности являются срочными, вы можете указать высокая максимальная цена (возможно, даже выше, чем цена по требованию), которая повысит относительный приоритет вашего запроса и позволит вам получить доступ к как можно большему объему немедленной мощности, учитывая другие запросы и емкость спотового экземпляра, доступную в данный момент.

Если у вас огромный всплеск спроса на вашу услугу (возможно, на него ссылаются с другого популярного сайта - см. Эффект Slashdot ), ставки, превышающие цену по запросу для спотового экземпляра, помогут вам получить доступ к гораздо большему количеству экземпляров, так как отмечено в документе.

Конечно, это не является устойчивым в долгосрочной перспективе, и вы получите гораздо более выгодную сделку для долгосрочных вычислений, просто купив экземпляры по требованию (плюс есть меньший риск перекупа!).

Если вы находитесь в ситуации, когда вам нужно много вычислительной мощности, быстрее - больше, чем вы могли бы получить, просто покупая экземпляры по требованию - может иметь смысл переоценка.

Aurora0001
источник
3

Если вы внимательно посмотрите на графики, вы увидите, что всплеск всегда очень короткий - достаточно времени, чтобы автоматизированные системы мониторинга, написанные владельцем, могли корректно завершить эти системы. Кроме того, вы иногда обнаруживаете, что цена падает до 0 сразу после скачка. Это связано с тем, что все системы в этом центре обработки данных используются как системы по требованию, и при отсутствии систем, доступных для спотовых цен, цена фактически равна нулю.

Когда ваш точечный экземпляр помечен для завершения, сообщение, указывающее это, будет доступно в системе по адресу локальных метаданных http://169.254.169.254/latest/meta-data/spot/termination-time . Там будет 3 минуты, пока не закончится. В большинстве случаев более чем достаточно времени для автоматической обработки завершения. Торги, превышающие цену спроса, необходимы только для развертываний, для завершения которых требуется более нескольких минут.

Если нет возможности спроектировать вашу систему так, чтобы она корректно завершалась, архивировала данные и т. Д. В течение 3 минут, вы можете сделать ставку выше, чем цена спроса, чтобы выиграть время. Система может быть даже спроектирована так, чтобы активно отслеживать текущую спотовую цену и менять ее до того, как цена переходит. Но для тех времен вам нужно будет принять деловое решение о том, сколько стоит время, чтобы закончить грациозно.

Глупо платить 100 долларов в час за 4-5 часов, чтобы сохранить свою систему. Однако, если вашей системе понадобится 30 минут, чтобы корректно завершить все процессы, вы можете принять бизнес-решение о том, сколько стоит потенциально потерять какие-либо данные, или ухудшить вашу горизонтально масштабированную службу. Сайт электронной коммерции с чистой прибылью в 10 000 долларов в час, безусловно, может позволить себе заплатить 1000 долларов за поддержание двух точечных экземпляров в течение 15-30 минут при одновременном использовании систем спроса и архивации данных.

Веб-приложение может использовать Elastic Load Balancer, чтобы помочь в автоматической адресации завершения. Умный разработчик установил бы набор сценариев для обработки оповещения. Они могут поддерживать 2 недорогих экземпляра по требованию, которые сбалансированы по нагрузке, а затем использовать до полудюжины систем средней стоимости через выборочные экземпляры, чтобы поддерживать высокую производительность и тратить меньше, чем одна система по запросу той же емкости.

Оставьте 3 из них платящими до 100 долларов в час, а 3 из них платят только половину стоимости по требованию. Когда AWS завершает работу экземпляров, ELB настраивается автоматически. Предоставление автоматизированной системе до часа для настройки всего за 200 долларов.

garyamort
источник