Поиск по сайту:

Как создавать и использовать пользовательские образы машин Amazon (AMI)


AMI похожи на ISO-образы операционных систем, но представляют собой нечто большее, чем просто ОС. Это базовые шаблоны, на основе которых вы можете создавать; они содержат ОС, предустановленное программное обеспечение и файлы конфигурации, необходимые для работы сервера.

AMI — это больше, чем операционная система

Есть много «свежих» AMI, которые представляют собой просто операционную систему; например, Amazon Linux 2 или Ubuntu Server LTS 18.04 (хотя Amazon Linux поставляется с предустановленным интерфейсом командной строки AWS). Если вы просто хотите установить пустой сервер с готовым Linux, вы можете выбрать их.

Однако существует множество AMI, содержащих дополнительное программное обеспечение, подходящее для различных задач. Для этого у AWS есть целый браузер сообщества, где быстрая прокрутка найдет множество таких AMI:

Этот AMI основан на Ubuntu и поставляется с драйверами и программным обеспечением, предназначенным для использования с графическими процессорами Nvidia для машинного обучения. В браузере сообщества есть готовые изображения для самых разных вещей.

Все AMI в браузере сообщества были кем-то созданы, и вы можете сделать то же самое. Допустим, вы размещаете веб-приложение и хотите развернуть второй сервер либо для резервирования, либо просто для удовлетворения растущих требований. Вы можете выбрать пустой образ AMI, потратить полдня на установку всего необходимого для запуска вашего приложения, скопировать код и устранить возможные ошибки.

Или вы можете создать образ AMI на основе вашего текущего сервера и создать идеальный клон за несколько минут. Это избавит вас от необходимости переустанавливать и перенастраивать nginx каждый раз, когда вы создаете новый экземпляр.

Создайте свои собственные изображения для упаковки вашей платформы

Одно небольшое замечание: если вы планируете использовать несколько серверов для одной службы, вам, вероятно, понадобится Elastic Load Balancer, сидящий перед ними. Это позволит вам направить свой DNS на балансировщик нагрузки и сбалансировать трафик между всеми вашими экземплярами. Без этого нет особого смысла иметь несколько серверов.

Создать AMI просто: вы можете легко скопировать свой текущий сервер или создать новый сервер, чтобы настроить AMI именно так, как вам нужно. Какой бы маршрут вы ни выбрали, когда вы закончите настройку сервера, перейдите в консоль управления EC2 и найдите свой экземпляр в списке экземпляров.

Щелкните правой кнопкой мыши свой экземпляр и выберите «Изображение» > «Создать образ». Вы попадете в это диалоговое окно, где вам нечего делать, кроме как дать вашему экземпляру имя и необязательное описание.

По умолчанию AWS создаст моментальный снимок вашего корневого тома EBS, на основе которого будет создан ваш AMI. Этот моментальный снимок включает в себя вашу ОС, все установленное вами программное обеспечение и ваши файлы.

Вероятно, вы захотите иметь какой-то способ поддерживать свой код в актуальном состоянии после создания AMI, будь то регулярное создание новых AMI для серьезных изменений, использование управления версиями с помощью git, запуск контейнерных приложений с помощью Docker или просто использование EFS для предоставления всех ваших экземпляров с общей файловой системой.

Создание AMI займет несколько минут, в зависимости от размера вашего корневого тома EBS. Как только это будет сделано, его можно будет просмотреть на вкладке «AMI» в консоли управления EC2.

Когда вы создаете новый сервер, вы можете выбрать свой AMI на вкладке «Мои AMI»:

Вы также можете щелкнуть правой кнопкой мыши AMI на вкладке AMI, чтобы запустить экземпляр с использованием этого AMI.

Использование пользовательских образов AMI в качестве основы для автомасштабируемых групп

Группы автоматического масштабирования — это фантастическая функция AWS: они позволяют масштабировать вашу сеть в соответствии со спросом и уменьшать масштаб, когда спрос низкий. Если экземпляр в группе автомасштабирования становится неработоспособным (т. е. перегружен трафиком), новый экземпляр может быть создан автоматически, чтобы удовлетворить потребности в трафике. Часто вы можете использовать спотовые инстансы EC2, что может быть намного дешевле, чем аренда по требованию.

При создании группы автомасштабирования вы создадите шаблон запуска, определяющий свойства автоматически запускаемых серверов. Частью этого шаблона запуска является AMI; Вы можете использовать пустой «базовый» AMI, такой как Amazon Linux 2, или вы можете использовать свой собственный AMI с предустановленным программным обеспечением.

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

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

Вместо того, чтобы ждать минуты для установки программного обеспечения, наличие всего предустановленного на AMI сокращает время загрузки до немногим более 45 секунд или около того, которое требуется для запуска обычного экземпляра EC2.