Чтобы развернуть модель, мы должны ее построить, что очевидно. Поскольку вы здесь, чтобы изучить развертывание, я предполагаю, что ваше приложение готово к развертыванию, в противном случае вы можете использовать мой образец приложения из этого репозитория. Если вы хотите узнать о конвейере обработки признаков и выбора модели, обратитесь к файлу PricePredictions_UsedCars.ipynb в основном репо.

Краткое описание моей модели ML

Модель предсказывает цены на подержанные автомобили в крупных городах Индии. Используемый здесь набор данных взят с хакатона, организованного MachineHack. Перейдите на домашнюю страницу хакатона, чтобы узнать больше о наборе данных. Набор данных содержит такие функции, как местоположение, сведения об изготовлении, характеристики автомобиля, такие как тип топлива, двигатель и параметры использования. Ниже находится приложение в рабочем состоянии.

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



Необходимые файлы:

Если вы используете свою модель, убедитесь, что у вас есть следующее.

  1. reqiurements.txt - текст содержит зависимости, необходимые для бесперебойной работы вашего приложения.
  2. Application.py - основной скрипт, выполняющий вычисления в реальном времени в фоновом режиме.
  3. index.html - это веб-страница, которая действует как интерфейс между клиентом / пользователем и фоновым процессом. index.html обслуживает сбор данных, вводимых пользователем, передает его в application.py, где вычисляются прогнозы, и отображает результаты на стороне клиента.

Если вы используете мою модель, убедитесь, что приложение отлично работает на вашем локальном компьютере. Клонируйте репозиторий git в локальную систему и выполните следующие команды.

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

Настройка интерфейса командной строки Elastic Beanstalk

Elastic Beanstalk - это сервис AWS для развертывания, управления и масштабирования приложений. Чтобы получить доступ к сервису, нам нужно настроить AWS Identity and Access Management (IAM), который предоставляет нам доступ администратора (мы можем добавить пользователя и предоставить ему определенные разрешения), а затем Elastic Beanstalk CLI, который позволяет нам взаимодействовать с AWS локально. Приступим к созданию аккаунта IAM.

Откройте каталог проекта в cmd или терминале. В дальнейшем все команды должны выполняться здесь.

Создать учетную запись IAM

  1. Войдите в учетную запись AWS (если нет, создайте ее)
  2. Найдите службу IAM и нажмите
  3. Выберите user на панели инструментов слева и щелкните вкладку add user.
  4. Введите свое имя пользователя или имя пользователя, которого вы хотите добавить.
  5. установите флажок Программный доступ и Оставьте доступ к консоли управления AWS снятым, поскольку мы хотим использовать EB CLI из локального вместо этого, и нажмите next: Permissions.
  6. Выберите Add user to group, затем нажмите create group
  7. Введите название группы по вашему выбору. Все созданные вами пользователи добавляются в эту группу. Введите AWSElasticBeanstalkFullAccess в поле поиска политики, затем выберите его и щелкните create group. Теперь вы создали группу и предоставили пользователям доступ к сервису AWSElasticBeanstalkFullAccess. Щелкните next: Tags.
  8. В разделе «Добавить теги» вы можете добавить пары «ключ-значение», что необязательно, для хранения информации о пользователях, такой как адрес электронной почты сотрудника, должность и т. Д. Эти теги помогают нам организовывать, отслеживать или контролировать доступ для этих пользователей.
  9. Просмотрите сведения о пользователе и разрешения, затем нажмите Create user.
  10. Загрузите .csv файл с ключом доступа пользователя и секретным ключом доступа. Позже они понадобятся вам для подключения к EB CLI.

Вы успешно создали свою учетную запись в IAM.

Настройка EB CLI.

  1. Убедитесь, что у вас установлен python (по умолчанию в дистрибутив Linux входит python). Вы можете подтвердить это, выполнив следующую команду в bash.
python --version 

2. Также убедитесь, что установлен pip (менеджер пакетов Python).

pip --version

3. Теперь, когда Python и pip проверены, продолжайте установку EB CLI.

pip install awsebcli --upgrade --user

3. Чтобы настроить EB CLI на вашем компьютере, выполните действия, описанные здесь.

Наконец, проверьте установку EB CLI, запустите.

eb --version

Развертывание на AWS

Пришло время развернуть локальное приложение в облаке.

  1. Если у вас есть только один профиль в вашей учетной записи, вы можете инициализировать awsebcli, используя следующую команду.
eb init -i

Примечание. Если в вашем аккаунте несколько профилей.

У пользователя может быть более двух профилей в своей учетной записи. Один создал P1 (скажем) для развертывания приложения (Elastic Beanstalk), а другой P2 для службы хранения (S3). Когда мы используем простой eb init -i AWS не знает, какой профиль пользователя выбрать, он продолжит работу с учетной записью по умолчанию, возможно, недавно созданной. Если он выберет профиль P2, созданный для доступа к службе S3, он не позволит вам продолжить, поскольку вы не назначили разрешения на использование службы EB для P2 , он есть только у P1. Чтобы решить эту проблему, вы должны добавить этот профиль в файл конфигурации AWS. Давайте сделаем это.

откройте файл конфигурации ~/.aws/config в вашем любимом текстовом редакторе. Добавьте имя своего профиля и учетные данные из файла credentials.csv, загруженного при создании профиля.

Здесь вы можете добавить учетные данные нескольких профилей.

сохранить и закрыть.

инициализировать awsebcli именем профиля.

eb init --profile 'profile name'

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

Примечание. Если у вас возникли проблемы, поищите ошибки в файле журнала, набрав "eb logs".

2. выберите интересующий вас регион. Вы должны выбрать регион в зависимости от того, где проживает ваш клиент. При обслуживании индийских клиентов целесообразно выбрать регион в Индии или любой другой регион, близкий к нему. В вашем случае вы можете выбрать регион по умолчанию.

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

Настройка WSGIApplicationGroup

Примечание. Если ваше приложение простое, и для его работы нужна только легкая база данных, вы можете пропустить это. Или, если требуется загрузить тяжелые библиотеки, что верно в моем случае, мы должны настроить файл конфигурации WSGI. WSGI (интерфейс шлюза веб-сервера) - это интерфейс между клиентом и проектом, который облегчает взаимодействие между ними. Поскольку в моем демонстрационном проекте я использую библиотеки Python, такие как pandas, sklearn и т. Д., Нам нужно указать WSGI перейти в режим субинтерпретатора Python, который по умолчанию отключен.

Прежде чем мы создадим веб-приложение, вам необходимо настроить файл конфигурации WSGI, чтобы сообщить ему, что вам потребуется режим субинтерпретатора Python.

  • создайте папку в корневой папке веб-приложения под названием «.ebextensions»
mkdir .ebextensions
  • создайте в нем файл с именем .ebextensions/wsgi_fix.config и добавьте в него следующие настройки конфигурации

сохранить и закрыть.

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

Создать веб-приложение

eb create 'appname'

Это может занять некоторое время. вы получите сообщение об успешном завершении. По умолчанию AWS ожидает, что ваш основной .pyscript будет называться application.py.

В случае, если вы хотите сохранить другое имя, вам необходимо зарегистрировать его в файле конфигурации ..elasticbeanstalk/$appname$.env.yml найдите строку WSGIPath: application.py и замените имя по умолчанию (application.py) своим.

Чтобы запустить приложение, введите.

eb open

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

Предупреждение:

Ждать..!!! не уходи, мы еще не закончили. AWS считает каждую минуту работы вашего приложения на EB с момента запуска. нам необходимо прекратить его действие, чтобы избежать дополнительных расходов, поскольку большинство облачных сервисов не являются бесплатными.

Введите команду ниже

eb terminate 'environment name' #  same as the 'profile name'.

Через несколько секунд вы получите подтверждающее сообщение. Всегда рекомендуется перепроверить, посетив панель управления AWS и убедившись, что нет активных учетных записей EC2 и Elastic Beanstalk. Используйте следующие шаги.

  • Войдите в консоль AWS
  • Введите "Elastic Beanstalk" в строке поиска и выберите его.
  • Не должно быть запущенных экземпляров.
  • повторить то же самое для «EC2»

Теперь можете радоваться.

Спасибо за чтение. Любые мысли будут оценены. пожалуйста, ПОЖАЛУЙСТА, если вам это понравилось.