Облачные вычисления

Что такое Amazon EC2 и как им пользоваться?

Обучайте свои модели с помощью экземпляров графического процессора в облаке AWS.

AWS - пионер облачных вычислений

Облачные вычисления можно рассматривать как преобразование ИТ-продукта в ИТ-услугу.

Amazon Web Services (AWS) - это сервис облачных вычислений по запросу и интерфейс прикладного программирования (API), предлагаемые Amazon. С момента своего создания в 2006 году AWS со временем эволюционировала и теперь предлагает более 175 полнофункциональных сервисов из центров обработки данных по всему миру.

В этой статье я рассмотрю основы Amazon Elastic Compute Cloud (EC2), веб-службы, которая позволяет запускать экземпляры, которые предлагают безопасные и изменяемые вычислительные мощности в облаке.

Позже мы научимся развертывать экземпляры EC2 для обучения модели ML / DL.

Особенности EC2

  1. Инстансы EC2 по запросу представляют собой надежную и масштабируемую инфраструктуру с возможностью увеличения и уменьшения емкости в течение нескольких минут.

2. Предварительно сконфигурированные AMI.

3. Настраиваемые процессоры, память и емкость сети называются типами экземпляров, чтобы запускать ваши приложения или программное обеспечение на экземпляре.

4. Пары открытого и закрытого ключей для безопасного входа в экземпляры.

5. Тома хранилища экземпляров для временных данных, которые удаляются при остановке или прекращении работы экземпляра.

6. Доступ к Amazon Elastic Block Store (Amazon EBS) для томов постоянного хранилища.

7. Статические IPv4-адреса, называемые эластичными IP-адресами для динамических облачных вычислений.

8. Разверните виртуальные частные облака (VPC), которые логически изолированы от облака AWS.

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

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

11. Инфраструктура Amazon EC2 является программируемой, и вы можете использовать сценарии для автоматизации процесса развертывания, установки и настройки.

12. Если вас беспокоят конфиденциальные данные в инстансе Amazon EC2, лучше зашифровать данные перед их загрузкой.

Базовая инфраструктура

Образ машины Amazon (AMI)

Чтобы использовать инстансы EC2, нам нужно использовать Amazon Machine Image для создания виртуальной машины. Эти виртуальные вычислительные среды называются экземплярами.

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

Вы можете запускать экземпляры, которые являются копиями AMI, работающих как виртуальные серверы в облаке.

Можно получить доступ к предварительно настроенным AMI, а также настроить их.

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

Место расположения

Инстансы AWS EC2 доступны по всему миру. У локаций есть регионы, зоны доступности, локальные зоны и зоны длин волн.

Регионы - это далекие и отдельные географические области.

В каждом регионе есть несколько изолированных зон доступности.

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

Зоны длины волны развертывают AWS со сверхнизкой задержкой для устройств 5G и конечных пользователей.

Место хранения

AWS EC2 поддерживает хранилище экземпляров AWS EC2, AWS EBS и AWS S3.

Магазин экземпляров AWS EC2

Хранилище инстансов AWS EC2 - это временное хранилище на уровне блоков. Он находится на дисках главного компьютера. Поскольку это временное хранилище, данные не сохраняются при остановке или завершении связанного экземпляра. Таким образом, хранилище экземпляров EC2 не предназначено для длительного хранения данных. В таких случаях нужно выбирать EBS или S3.

Хранилище экземпляров AWS EC2 не переносимо. Это означает, что вы не можете отсоединиться от одного экземпляра и прикрепить его к другому экземпляру.

AWS EBS

AWS Elastic Block Store (AWS EBS) - рекомендуемый вариант хранилища. Это постоянное хранилище.

Один экземпляр может иметь несколько томов EBS.

AWS S3

AWS Simple Storage Service (AWS S3) - это, по сути, сегмент хранилища. Вы можете хранить и извлекать любой объем данных из любого места в Интернете.

Можно скопировать данные из EBS, называемые снимками, и сохранить их в S3. Позже это можно использовать для создания нового тома EBS, который можно подключить к другому экземпляру EC2. Таким образом, вы можете отсоединить том от экземпляра и присоединить его к другому экземпляру.

Том корневого устройства

Том корневого устройства содержит образ, используемый для загрузки экземпляра EC2. Этот том удаляется при завершении работы экземпляра (атрибут DeleteOnTermination равен true). Однако это поведение также можно изменить.

Сеть и безопасность

Экземпляры EC2 по умолчанию имеют адреса IPv4 при запуске в VPC по умолчанию. В случае VPC, отличного от стандартного, следует специально назначить IPv4-адреса при запуске.
Когда экземпляр выходит из строя, замененный экземпляр имеет IPv4-адрес, отличный от исходного. Если вашему приложению требуется статический IPv4-адрес, Amazon EC2 предлагает эластичные IP-адреса.

Группы безопасности можно использовать для управления доступом к экземплярам. Один экземпляр может быть назначен нескольким группам с определенными правилами.

AWS Identity and Access Management (AWS IAM)

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

Используя IAM с Amazon EC2, вы получаете полный контроль над пользователями, выполняющими задачи с Amazon EC2 и конкретными ресурсами AWS.

Настройка AWS EC2

Надеюсь, вы зарегистрировали аккаунт на AWS. Если нет, сделайте то же самое. Теперь перейдите в консоль управления AWS.

После входа в консоль AWS выберите EC2 в раскрывающемся меню Службы.

Перед использованием любого сервиса AWS нам необходимо проверить и при необходимости изменить лимит сервиса AWS для того конкретного ресурса, который мы планируем использовать. Итак, давайте посмотрим на это.

Запрос на увеличение лимита графического процессора

Ресурсы AWS имеют квоту по умолчанию, известную как «лимиты». Эти ограничения зависят от региона вашей учетной записи AWS. А пока я буду говорить конкретно только об инстансах EC2.

Действия по увеличению лимита графического процессора:

1. Сначала нам нужно выбрать соответствующий регион AWS, который поддерживает экземпляры GPU, которые мы выбираем для использования. Мы будем использовать p2.xlarge. P2 - это мощные и масштабируемые экземпляры GPU параллельной обработки.

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

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

4. Ваш лимит будет 0. Что это значит? AWS устанавливает ограничение на количество экземпляров p2.xlarge, которые может запускать пользователь, равное 0, что эффективно препятствует запуску этого экземпляра.

5. Если ваш лимит экземпляров p2.xlarge равен 0, вам необходимо увеличить лимит, прежде чем вы сможете запустить экземпляр.

6. Нажмите Рассчитать лимит виртуальных ЦП, чтобы сделать запрос на увеличение лимита. Калькулятор лимитов используется для расчета количества виртуальных ЦП (виртуальных центральных процессоров), необходимых для запуска инстансов по требованию, в нашем случае P2.

7. Щелкните тип добавления экземпляра и выберите p2.xlarge. Убедитесь, что количество экземпляров равно 1. Убедитесь, что в поле Новое ограничение отображается 4 виртуальных ЦП, а затем нажмите Увеличение лимита запросов. Запрос на увеличение лимита не приведет к списанию средств с вашей карты, если вы не запустите экземпляр. Откроется следующий экран. Нажмите на Увеличение лимита обслуживания, если оно еще не выбрано.

8. Ваш тип лимита в деталях - экземпляры EC2. Теперь в разделе Запросы выберите свой регион учетной записи AWS, затем выберите Тип основного экземпляра как Все экземпляры P. Установите Новое предельное значение на больше 4

9. Прокрутите вниз, заполните Описание дела, ваше дело о повышении лимита, и нажмите отправить. Вам будет отправлено письмо с соответствующим идентификатором дела. Подождите, пока AWS утвердит ваш запрос на увеличение лимита. AWS обычно утверждает эти запросы в течение 48 часов.

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

Запуск нашего экземпляра EC2 GPU

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

Шаги по запуску экземпляра EC2 GPU:

  1. Нажмите на запускающий экземпляр
  2. Выберите образ машины Amazon (AMI). Мы будем использовать Deep Learning AMI.
  3. Выберите тип экземпляра. Как упоминалось ранее, мы будем использовать p2.xlarge.
  4. Обзор прессы и запуск. Вы перейдете на страницу, где сможете дополнительно обновить детали конфигурации, объем хранилища и т. Д. А пока давайте просто отредактируем группы безопасности.
  5. Настроить группу безопасности - прикрепите к своим экземплярам набор правил брандмауэра, которые контролируют входящий трафик к вашим экземплярам. Просто нажмите на параметр e dit security groups и выберите создать новую группу безопасности. Давайте назовем эту группу безопасности «Jupyter». Нажмите Добавить правило. Установите собственное правило TCP с диапазоном портов 8888 и источником как где угодно.
  6. Нажмите Запустить.
  7. Давайте теперь создадим пару ключей аутентификации. Это сделано для доступа к вашему экземпляру графического процессора. Нажмите c создать новую пару ключей и нажмите кнопку Загрузить пару ключей. Будет загружен файл .pem, который понадобится вам для доступа к вашему экземпляру.
  8. Переместите загруженный файл .pem в безопасное место на вашем компьютере, так как он вам нужен для доступа к вашему экземпляру через выбранное вами место. После загрузки файла .pem нажмите l запускать экземпляры.
  9. Нажмите кнопку Просмотр экземпляров, чтобы перейти в консоль управления EC2 и посмотреть, как загружается ваш экземпляр.

ПРИМЕЧАНИЕ.
Отключите любой неиспользуемый экземпляр или другие ресурсы AWS, иначе с вас будет взиматься почасовая оплата. AWS взимает плату за запуск инстансов после остановки инстанса. Однако существуют меньшие расходы на хранение, которые продолжают накапливаться до тех пор, пока вы не «завершите» (т.е. не удалите) экземпляр.

Платежные оповещения AWS

Невозможно ограничить AWS только определенным бюджетом и автоматически отключать его при достижении этого порога. Однако вы можете установить AWS Billing Alarms.

Войдите в свой экземпляр AWS EC2.

  1. Перейдите на панель управления EC2 и выберите вариант запущенного экземпляра. Ваш экземпляр будет отображаться.
  2. Обратите внимание на адрес IPv4.
  3. В терминале перейдите в то место, где вы сохранили файл .pem. (Например, если вы поместите файл .pem на рабочий стол, cd ~/Desktop/ переместит вас в правильный каталог.)
  4. Введите ssh -i YourKeyName.pem [email protected], где: X.X.X.X - это общедоступный IP-адрес IPv4, найденный в AWS, аYourKeyName.pem - имя вашего файла .pem.
  5. В вашем случае, чтобы создать файл конфигурации для настроек записной книжки Jupyter, введите: jupyter notebook --generate-config.
  6. Откройте любое репозиторий GitHub или просто клонируйте его в терминал экземпляра.
  7. Запустите Jupyter notebookjupyter notebook --ip=0.0.0.0
  8. Теперь ваш терминал будет показывать идентификатор токена следующим образом:
unnecessary_stuff:8888/?token=something_useful_here

9. Откройте индекс записной книжки Jupyter из своего веб-браузера, посетив: X.X.X.X:8888/?token=... (где X.X.X.X - это IP-адрес вашего экземпляра EC2, а все, что начинается с :8888/?token=, - это то, что вы только что скопировали). УРА. Вот и все. Ваш блокнот Jupyter запущен и работает на вашем экземпляре EC2. Поздравляю.

10. Чтобы закрыть записную книжку, дважды нажмите ctrl-c и для выхода из экземпляра терминала введите exit.

Выводы

Вы можете активировать conda при запуске, набрав conda config - set auto_activate_base true

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

Если у вас есть файл requirements.txt, просто введите sudo python3 -m pip install -r requirements.tx

Остановите и завершите свои экземпляры, когда они не используются. Вы должны понимать, что AWS взимает плату, даже если экземпляр не используется. Таким образом, экземпляры, которые включены и простаивают, также сожгут ваши карманы. Это один из недостатков AWS. Google Cloud, с другой стороны, не взимает с вас плату, если экземпляры простаивают.

Вывод

Поздравляю! Теперь вы знаете, что такое Amazon EC2 и как им пользоваться. AWS - наиболее часто используемый облачный сервис, поэтому полезно знать 1 или 2 технологии. Amazon EC2 имеет гораздо больше функций. Откройте панель управления EC2 и узнайте больше. Надеюсь, вы поняли, как развернуть экземпляр GPU. Увидимся на следующем. Ваше здоровье!

Спасибо.