Рекомендуемое решение - использовать неуправляемую вычислительную среду.К сожалению, это оказалось плохим советом, потому что создание неуправляемой вычислительной среды не только сложное и эзотерическое, но и не только побеждает всю цель пакета AWS, но и предлагает намного лучшее (и гораздо более простое) решение.
Решением этой проблемы является создание образа машины Amazon, который получен из стандартного AMI, используемого AWS Batch.AMI позволяет вам настроить операционную систему именно так, как вы хотите, устанавливая библиотеки, изменяя сценарии запуска, настраивая файлы конфигурации, и, что наиболее важно для наших целей: определяйте логическое разбиение и точки монтирования томов данных.
1.Выберите базовый AMI для запуска, настройте свой экземпляр
AMI, на которых мы хотим основываться, являются официальными оптимизированными ECS AMI. Взгляните на эту страницу , чтобы узнать, какой AMI вам нужен в соответствии с регионом AWS, в котором вы работаете.
После определения вашего AMI нажмите ссылку «Запустить экземпляр» в правом столбце.Вы попадете на эту страницу:
Выберите тип экземпляра t2.micro.
Выберите Next: Configuration Details
.
Дайте вашему экземпляру соответствующую роль IAM, если хотите.То, что является «подходящим», остается на ваше усмотрение.Оставьте остальные параметры по умолчанию.Нажмите Next: Add Storage
.
. Теперь вы можете настроить внешний вид ваших томов данных в AMI.Этот шаг также не определяет окончательную конфигурацию тома для вашего AMI, но я считаю, что было бы полезно настроить его так, как вы хотите.У вас будет возможность изменить это позже, прежде чем вы создадите свой AMI.Когда вы закончите, нажмите Next: Add Tags
.
Добавьте любые теги, которые вы хотите (необязательно).Нажмите Next: Configure Security Group
.
Выберите SSH
для Type
и установите для источника значение Anywhere
, или, если вы более ответственны, чем я, задайте определенный набор диапазонов IP-адресов, который вам известенбудет использовать для подключения к вашему экземпляру.Нажмите Review and Launch
.
На этой странице вы сможете просмотреть установленные вами параметры.Если все выглядит хорошо, то Launch
.Когда он запрашивает пару ключей, выберите либо существующую пару ключей, которую вы создали, либо создайте новую.Если вы не выполните этот шаг, вы не сможете подключиться к вашему экземпляру.
2.Сконфигурируйте свою программную среду
После нажатия кнопки запуска перейдите на панель мониторинга EC2, чтобы увидеть запущенные экземпляры:
Подождите, пока ваш экземпляр запустится, затем щелкните по нему правой кнопкой мыши.Нажмите Connect
, затем скопируйте и вставьте команду ssh «Пример» в терминал с поддержкой ssh.На самом деле -i "keyname.pem"
- это путь к вашему файлу .pem, поэтому убедитесь, что вы либо cd
перешли в каталог ~/.ssh
, либо измените значение флага на путь, по которому вы сохранили свой закрытый SSH-ключ.Вам также может потребоваться изменить «root» на «ec2-user».
После входа в систему вы можете настроить виртуальную машину, какхотите, установив любые пакеты, библиотеки и конфигурации, необходимые для вашей виртуальной машины.Если вы использовали AMI, оптимизированный для ECS, предоставляемый AWS, ваш AMI уже будет соответствовать базовым требованиям для AMI ECS.Если по какой-то (странной) причине вы решили не использовать оптимизированный для ECS AMI, вам потребуется установить и настроить следующие пакеты:
- Последняя версия агента контейнера ECS Amazon
- Последняя версия агента ecs-init
- Рекомендуемая версия Docker для вашей версии агента контейнера ECS.
Также обратите внимание, что если вы хотите подключить другой томОтдельно от корневого тома вы захотите изменить файл /etc/fstab
, чтобы ваш новый том монтировался при запуске экземпляра.Я отсылаю вас в Google, чтобы узнать, как это сделать.
3.Сохраните свой AMI
После всех вашихНастройка программного обеспечения и установка завершены, вернитесь на панель управления EC2 и просмотрите запущенные экземпляры.
Щелкните правой кнопкой мыши на только что созданном экземпляре.Наведите указатель мыши на Image
, затем выберите Create Image
.
. Вы увидите, что это конфигурация тома, которую вы выбрали на шаге 1. Iя не изменил мои тома со своих настроек по умолчанию, поэтому на приведенном выше снимке экрана видно, что тома по умолчанию для оптимизированного ECS AMI на самом деле составляют 8 ГБ для /dev/xvda/
(root) и 22 ГБ для /dev/xvdc/
(изображения докеров,так далее).Убедитесь, что выбраны опции Delete on Termination
, чтобы ваша среда пакетных вычислений удаляла тома после завершения работы экземпляров, иначе вы рискуете создать неограниченное количество томов EBS (очень дорого, так мне сказали).Я настрою свой AMI, чтобы иметь только 111 ГБ корневого хранилища, и ничего больше.Вам не обязательно нужен отдельный том для Docker.
Дайте вашему изображению имя и описание, затем выберите Create Image
.
Ваш экземпляр будет перезагружен.Как только экземпляр выключится, AWS создаст его образ, а затем снова включит экземпляр.
В консоли EC2 перейдите к Images, AMIs
с левой стороны.Через несколько минут вы увидите ваш вновь созданный AMI в списке.
4.Сконфигурируйте AWS Batch для использования вашего нового AMI
Вернитесь на панель инструментов AWS и перейдите на страницу AWS Batch.Выберите Compute environments
с левой стороны.Выберите Create environment
.
Сконфигурируйте свою среду, выбрав соответствующие роли IAM для вашего контейнера (Service Role) и экземпляра EC2 (Instance role), модель обеспечения, сеть и теги.
Option Value
Compute environment type Managed
Compute environment name ami_test
Service role AWSBatchServiceRole
Instance role ecsInstanceRole
EC2 key pair landonkey.pem (use name of your private key)
Provisioning model On-Demand (choose spot for significantly cheaper provisioning)
Allowed instance types Optimal
Minimum vCPUs 0
Desired vCPUs 0
Maximum vCPUs 256
Enable user-specified Ami ID True
AMI ID [ID of AMI you generated]
VPC id [default value]
Subnets [select all options]
Security groups default
Критическим шагом для этого является выбор Enable user-specified Ami ID
и указание идентификатора AMI, сгенерированного вами на предыдущих шагах.
После всех ваших вариантовнастроены, выберите Create
.
5.Создание очередей заданий и определений заданий
Чтобы проверить, действительно ли работает наша вычислительная среда, давайте продолжим и создадим несколько простых очередей и определений заданий.
Выберите Job queues
вс левой стороны и введите следующие параметры:
Option Value
Queue name ami_test_queue
Priority 1
Enable Job queue True
Select a compute environment ami_test
Выберите Create
.Дождитесь, пока в вашей новой очереди появится состояние VALID
.
Перейдите на Job definitions
и выберите Create
.Введите следующие значения:
Option Value
Job definition name ami_test_job_def
Job role ECS_Administrator
Container image amazonlinux
Command df -h
vCPUs 1
Memory (MiB) 1000
Job attempts 1
Execution timeout 100
Parameters [leave blank]
Environment variables [leave blank]
Volumes [leave blank]
Mount points [leave blank]
Выберите Create job definition
.
Наконец, перейдите к Jobs
с левой стороны и выберите Submit job
.Дайте вашей работе имя и выберите ami_test_job_def:1
для определения работы.Оставьте остальные значения по умолчанию и выберите Submit job
.
Если все прошло хорошо, вы должны увидеть, что ваша работа перешла в состояние Pending
или Runnable
.Обратите внимание, что выполнение вашей работы может занять до 10 минут.Для создания экземпляра EC2 обычно требуется 5-10 минут и еще несколько минут для проверки состояния.Если ваша работа по-прежнему находится в состоянии Runnable
после того, как экземпляр был создан и прошел все проверки состояния.Что-то пошло не так.