Как избежать выставления счетов на EC2 за неиспользованное время? - PullRequest
4 голосов
/ 16 июля 2011

У меня есть периодическое задание, которое мне нужно запустить на EC2. На выполнение этой задачи уйдет не более 10 минут, и я не хочу в конечном итоге платить за оставшиеся 50 минут, за которые эта задача будет простаивать. Насколько я понимаю, если я запускаю экземпляр и запускаю эту задачу, независимо от того, использую ли я какие-либо ресурсы или нет, мне будет выставлен счет за использование. Поэтому я хотел что-то делать в следующих строках каждые 60 минут или около того (просто эскиз высокого уровня):

def invokeTimer(i):
   if timer(i) expired:
      copyDataFromNode(i)
      killNode(i)

while True:
   for i in range(1,10):
      startNode(i)
      # Allow the node to boot up
      startScript(i)
      invokeTimer(i)
   sleep(60000)

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

Ответы [ 2 ]

7 голосов
/ 28 сентября 2011

Попробуйте picloud и платите в секунду.

5 голосов
/ 16 июля 2011

Вы будете платить за полный час независимо от того, что вы делаете.

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

Если вы привязываете AMI (образ резервной копии) машины, вы должны заплатить за том EBS, так что там тоже есть стоимость.

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

...