Как определить размер корневого тома в пакете AWS - PullRequest
0 голосов
/ 12 октября 2018

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

Я попытался создать новую вычислительную среду / очередь заданий, но нет никакой возможности установить размер тома.Я попытался изменить конфигурацию запуска с здесь , но новая конфигурация запуска и / или группа автоматического масштабирования не рассматриваются AWS Batch.Возможно, мне придется изменить dm.basesize , но неясно, где это следует сделать.

Итак, я настроил пользовательский AMI из Amazon 2 Linux с 500 ГБ памяти и изменил--storage-opt с dm.basesize=400GB, как указано здесь , но, хотя мои экземпляры создаются, задания остаются в состоянии RUNNABLE неопределенно долго.Я проверил возможные причины, как определено здесь , но i) проверен «Включить автоматическое назначение публичного IPv4-адреса», ii) изображение должно быть хорошим (оно было проверено при создании среды и может бытьпорожденный), iii) у меня есть ограничение в 5 экземпляров для такого типа экземпляра (но я не могу запустить даже 1), iv) мои права роли должны быть в порядке - я успешно использовал те же роли с образом amazonlinux по умолчанию, v)Недостаточно ресурсов (экземпляр порождается, поэтому я думаю, что это не должно быть проблемой), vi) подключение - это должно работать, поскольку группа автоматического масштабирования отображает успешное состояние.

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

Я также пытался выполнить задачу, передавая данные вводаиз корзины s3, анализируя данные и выводя данные по трубопроводу во вторую корзину s3, но я получаю Connection Сброс ошибки Peer каждый раз, возможно, потому, что задача выполняется слишком долго (я также установил --cli-read-timeout на 0, но это вообще не исправляет).

Есть ли способнастроить размер корневого тома для заданий в пакете AWS?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Теперь вы можете использовать шаблоны запуска.В шаблоне запуска увеличьте размер корневого тома.Затем из определения задания смонтируйте локальную файловую систему, такую ​​как / mnt, в docker.

0 голосов
/ 21 октября 2018

Рекомендуемое решение - использовать неуправляемую вычислительную среду.К сожалению, это оказалось плохим советом, потому что создание неуправляемой вычислительной среды не только сложное и эзотерическое, но и не только побеждает всю цель пакета AWS, но и предлагает намного лучшее (и гораздо более простое) решение.

Решением этой проблемы является создание образа машины Amazon, который получен из стандартного AMI, используемого AWS Batch.AMI позволяет вам настроить операционную систему именно так, как вы хотите, устанавливая библиотеки, изменяя сценарии запуска, настраивая файлы конфигурации, и, что наиболее важно для наших целей: определяйте логическое разбиение и точки монтирования томов данных.

1.Выберите базовый AMI для запуска, настройте свой экземпляр

AMI, на которых мы хотим основываться, являются официальными оптимизированными ECS AMI. Взгляните на эту страницу , чтобы узнать, какой AMI вам нужен в соответствии с регионом AWS, в котором вы работаете.

После определения вашего AMI нажмите ссылку «Запустить экземпляр» в правом столбце.Вы попадете на эту страницу:

enter image description here

Выберите тип экземпляра 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, чтобы увидеть запущенные экземпляры:

enter image description here

Подождите, пока ваш экземпляр запустится, затем щелкните по нему правой кнопкой мыши.Нажмите Connect, затем скопируйте и вставьте команду ssh «Пример» в терминал с поддержкой ssh.На самом деле -i "keyname.pem" - это путь к вашему файлу .pem, поэтому убедитесь, что вы либо cd перешли в каталог ~/.ssh, либо измените значение флага на путь, по которому вы сохранили свой закрытый SSH-ключ.Вам также может потребоваться изменить «root» на «ec2-user».

enter image description here

После входа в систему вы можете настроить виртуальную машину, какхотите, установив любые пакеты, библиотеки и конфигурации, необходимые для вашей виртуальной машины.Если вы использовали AMI, оптимизированный для ECS, предоставляемый AWS, ваш AMI уже будет соответствовать базовым требованиям для AMI ECS.Если по какой-то (странной) причине вы решили не использовать оптимизированный для ECS AMI, вам потребуется установить и настроить следующие пакеты:

  1. Последняя версия агента контейнера ECS Amazon
  2. Последняя версия агента ecs-init
  3. Рекомендуемая версия Docker для вашей версии агента контейнера ECS.

Также обратите внимание, что если вы хотите подключить другой томОтдельно от корневого тома вы захотите изменить файл /etc/fstab, чтобы ваш новый том монтировался при запуске экземпляра.Я отсылаю вас в Google, чтобы узнать, как это сделать.

3.Сохраните свой AMI

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

Щелкните правой кнопкой мыши на только что созданном экземпляре.Наведите указатель мыши на Image, затем выберите Create Image.

enter image description here

. Вы увидите, что это конфигурация тома, которую вы выбрали на шаге 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 в списке.

enter image description here

4.Сконфигурируйте AWS Batch для использования вашего нового AMI

Вернитесь на панель инструментов AWS и перейдите на страницу AWS Batch.Выберите Compute environments с левой стороны.Выберите Create environment.

enter image description here

Сконфигурируйте свою среду, выбрав соответствующие роли 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 после того, как экземпляр был создан и прошел все проверки состояния.Что-то пошло не так.

enter image description here

...