EC2

Материал из ALT Linux Wiki


ALTLinux и Amazon EC2

В настоящий момент возможно запустить виртуальные машины, созданные из ALTLinux Sisyphus на EC2. Запуск машин, созданных на базе стабильных бранчей указанным ниже способом пока невозможен. Вы можете как использовать публичные образы, так и создавать свои собственные.

Public AMIs

В настоящий момент есть 2 public AMI:

  • ami-52ed4f3b (us-east-1, минимальный Сизиф от 20120618, EBS)
  • ami-caec4ea3 (us-east-1, минимальный Сизиф от 20120618, Instance store)

Как создать собственный AMI (instance store)

AMI бывают двух типов: с instance store и с EBS store. Instance store живёт до выключения машины, EBS перманентен. Для создания собственного AMI с instance store:

  • Устанавливаем ec2-api-tools, ec2-ami-tools
  • Настраиваем Hasher
  • Берём актуальную копию скриптов: git clone git://git.altlinux.org/people/vitty/packages/ec2.git
  • Устанавливаем следующие переменные окружения:
  • В склонированном каталоге ec2 выполняем:
    • ./create_ec2_tar.sh
    • sudo ./create_ec2_image.sh ./output-20120528.tar $((2*1024*1024*1024)) (где output-xxxxxxxx.tar - сгенерированный предыдущей командой образ, второй параметр - объём диска в байтах)
    • ./create_ami.sh ./output-20120528.img (где output-xxxxxxxx.img - сгенерированный предыдущей командой образ файловой системы).
  • Вывод последней команды расскажет о том, как запустить виртуальную машину из загруженного образа (потребуется ещё иметь зарегистрированный ssh-ключ). Т.к. это instance store, образ её диска будет жить до выключения.
  • Имя внутреннего пользователя для доступа по ssh - ec2-user

Как создать собственный AMI (EBS store)

Выполняем все действия из предыдущего пункта до создания тарбола включительно. После этого требуется выполнить следующее:

  • Создать новый Volume, подключить его к какому-нибудь Instance
    • ec2-create-volume --size 10 --availability-zone us-east-1a
    • ec2-attach-volume vol-xxxxxxxx --instance i-xxxxxxxx --device /dev/sdh
  • Создать на /dev/xvdh ext3, подмонтировать куда-нибудь (/tmp/mnt)
  • Закачать тарбол в данный instance
  • Развернуть его на /dev/xvdh (/tmp/mnt)
  • Отмонтировать
  • Отсоединить от VM (ec2-detach-volume vol-xxxxxxxx --instance i-xxxxxxxx)
  • Создать снапшот ec2-create-snapshot vol-xxxxxxxx
  • Зарегистрировать AMI ec2reg -a x86_64 -d "Description" -n "fancy name" -s snap-xxxxxxxx --kernel "aki-825ea7eb" (PVGRUB для us-east-1)

Технические детали

Главных отличий у EC2-машины два:

  1. Она грузится через PVGRUB т.е. ей нужен файл /boot/grub/menu.lst от первого grub. Также нужно несжатое ядро (vmlinux). Сгодилось бы и сжатое будь оно сжато gz/bz2.
  2. При инициализации нужно как минимум положить ssh-ключ. Для этого существует специальный пакет cloud-init.

Поддержка

Поддержка оказывается в списке рассылке sisyphus@ и в личной почте vitty@.