Как наиболее эффективно использовать boto с EC2 для обработки на сервере и получения результатов обратно? - PullRequest
2 голосов
/ 18 ноября 2011

Я играю с EC2, и вот мой сценарий:

Один раз: Создан экземпляр EC2 с необходимой парой ключей.

Ежедневно:

fire up an EC2 instance.
send a file of IDs to EC2 micro-instance from local machine.
fire a python script to process the IDs and generate an output file.
fetch the output file to the local machine from the EC2 instance.
stop the EC2 instance.

факторы:

I am using the same EC2 instance every time I want to process this file.
I want to keep costs down, so I want to cron the whole process to start and stop at a certain time interval.

Примерный код:

from boto.ec2.connection import EC2Connection

AWS_ACCESS_KEY_ID = 'yourkey'
AWS_SECRET_ACCESS_KEY = 'yoursecret'

conn = EC2Connection(AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY)


reservation = conn.run_instances('ami-5647a33f', instance_type='m1.micro', key_name='mykey')

instance = reservation.instances[0]

while not instance.update() == 'running':
  time.sleep(5)

## Fetch the file from local machine
## --> Do the processing here --<
## send the file back to the local machine

# time up for the day, stop it
instance.stop()

Прямо сейчас я вручную запускаю и останавливаю экземпляр EC2 и выполняю rsync-файл назад и вперед.Я хочу устранить этот шаг.Это лучший способ сделать это или у вас есть предложения?Если вы можете добавить несколько строк в код с примером входного файла с локального компьютера (abc.txt) и распечатать содержимое файла в ec2, вывести его в файл out.txt и получить его обратно.Передача файлов без запроса пароля становится проблемой.(в конечном итоге добавит в файл hosts, но пока не просматривал его)

Спасибо, SOers!

1 Ответ

0 голосов
/ 30 октября 2012

Это довольно далеко идущий вопрос, но вы хотите, чтобы бот запустил экземпляр для вас, опросите EC2, чтобы дождаться запуска экземпляра, а затем используйте rsync с логинами без пароля для передачи файлы туда и обратно. После завершения обработки вы можете заставить boto закрыть экземпляр.

...