2017-02-08 5 views
1

Я пытаюсь оптимизировать стоимость моего проекта по некоторым причинам, по которым мы запускаем его на очень дорогих экземплярах.Экземпляр AWS для точного количества полных циклов выставления счетов

Насколько я знаю, Амазонка заряжается часами. Например, если я запускаю свой экземпляр EC2 в течение 1 часа и 4 минут, мне будет снято 2 часа.

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

Я пытался сделать это на основе времени безотказной работы, но есть некоторая разница между биллингами aws и временем безотказной работы.

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

+0

См. Http://stackoverflow.com/questions/15899544/shutdown-ec2-instance-if-idle-right-before-another-billable-hour – helloV

ответ

1

Вы можете получить время, Amazon начинает биллинг от экземпляра EC2 (предполагается, что вы JQ установлен)

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document/ | jq .pendingTime 

и вы можете запустить сценарий оболочки, раз в минуту, чтобы закрыть после того, как, скажем, 58 минут.

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

+0

Большое спасибо за эту команду. Это именно то, что я искал. Случай Spot не является для нас вариантом из-за деловых нюансов. –

+0

Когда AWS считает, что экземпляр отключен. На основе команды экземпляра api terminate или когда ОС полностью отключена? –

+0

Я не верю, что это тот момент, когда вы выдаете команду - я бы отложил ее как минимум на 1 минуту на остановку. Окончание в консоли занимает не менее 30 секунд, пока я не увижу, что завершенное состояние - shutdown похоже. – stdunbar

0

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

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

+0

Главное, что это управляемая событиями система с очень агрессивными ограничениями со стороны бизнеса. Сейчас он работает по расписанию, и я пытаюсь оптимизировать стоимость AWS. –