Как автоматизировать запуск экземпляра Amazon EC2, выполнение некоторых команд и завершение работы?


8

Мне нужно скачать 100 ГБ файлов (примерно 150 файлов) в течение 7 дней до истечения срока их действия. Загрузка ограничена хостом, поэтому она занимает НАМНОГО дольше, чем теоретическая скорость передачи, основанная на обычной скорости интернета. У меня есть скрипт curl http://curl.haxx.se/docs/manpage.html - одна строка на файл.

У меня была идея автоматически раскрутить n экземпляров EC2, выполнить команду и отправить файлы по FTP в центральное место, а затем выключить машины. Как бы я это сделал?

Мне все равно, будь то Linux или Windows.

Ответы:


7

Я бы порекомендовал использовать один из AMI Canonical в сочетании с cloud-init

https://help.ubuntu.com/community/CloudInit

Найдите раздел «Скрипты пользовательских данных», где вы можете использовать --user-data-file для автоматического запуска скрипта при запуске. Таким образом, вы можете просто поместить все команды, которые вы хотите запустить, в сценарий и поставить «shutdown -h now» в конце сценария.


Похоже, официальный Amazon Linux AMI также поддерживает CloudInit: aws.typepad.com/aws/2010/09/introduction-amazon-linux-ami.html
dialt0ne

1

Я использовал boto, чтобы писать такие вещи раньше. Проще всего раскрутить образы linux, а затем использовать ssh для их работы.


0

Не уверен в лучшем решении. Но если вы делаете это на регулярной основе и вам нужно что-то для автоматического запуска и остановки ваших компьютеров, то вы можете посмотреть на этот продукт: http://LabSlice.com (с оговоркой, что я являюсь техническим директором).


Ваш продукт выглядит великолепно, и ваш сайт выглядит потрясающе. Я принял другой ответ, потому что он был более конкретным в отношении сценариев.
Howiecamp

0

Vagrant с провайдером AWS делает это легко и является мультиплатформенным.

После того, Vagrantfileкак объект создан, вы запускаете экземпляр с помощью vagrant up, входите в него vagrant sshи уничтожаете его с помощью vagrant destroy. Супер-легкий.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.