Чтобы развернуть модель, мы должны ее построить, что очевидно. Поскольку вы здесь, чтобы изучить развертывание, я предполагаю, что ваше приложение готово к развертыванию, в противном случае вы можете использовать мой образец приложения из этого репозитория. Если вы хотите узнать о конвейере обработки признаков и выбора модели, обратитесь к файлу PricePredictions_UsedCars.ipynb
в основном репо.
Краткое описание моей модели ML
Модель предсказывает цены на подержанные автомобили в крупных городах Индии. Используемый здесь набор данных взят с хакатона, организованного MachineHack. Перейдите на домашнюю страницу хакатона, чтобы узнать больше о наборе данных. Набор данных содержит такие функции, как местоположение, сведения об изготовлении, характеристики автомобиля, такие как тип топлива, двигатель и параметры использования. Ниже находится приложение в рабочем состоянии.
Примечание. Если вам интересно узнать, как я разработал это веб-приложение, ознакомьтесь с другой моей статьей, в которой я подробно рассмотрел этапы разработки приложения.
Необходимые файлы:
Если вы используете свою модель, убедитесь, что у вас есть следующее.
- reqiurements.txt - текст содержит зависимости, необходимые для бесперебойной работы вашего приложения.
- Application.py - основной скрипт, выполняющий вычисления в реальном времени в фоновом режиме.
- 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
- Войдите в учетную запись AWS (если нет, создайте ее)
- Найдите службу IAM и нажмите
- Выберите
user
на панели инструментов слева и щелкните вкладкуadd user
. - Введите свое имя пользователя или имя пользователя, которого вы хотите добавить.
- установите флажок Программный доступ и Оставьте доступ к консоли управления AWS снятым, поскольку мы хотим использовать EB CLI из локального вместо этого, и нажмите
next: Permissions
. - Выберите
Add user to group
, затем нажмитеcreate group
- Введите название группы по вашему выбору. Все созданные вами пользователи добавляются в эту группу. Введите AWSElasticBeanstalkFullAccess в поле поиска политики, затем выберите его и щелкните
create group
. Теперь вы создали группу и предоставили пользователям доступ к сервису AWSElasticBeanstalkFullAccess. Щелкнитеnext: Tags
. - В разделе «Добавить теги» вы можете добавить пары «ключ-значение», что необязательно, для хранения информации о пользователях, такой как адрес электронной почты сотрудника, должность и т. Д. Эти теги помогают нам организовывать, отслеживать или контролировать доступ для этих пользователей.
- Просмотрите сведения о пользователе и разрешения, затем нажмите
Create user
. - Загрузите
.csv
файл с ключом доступа пользователя и секретным ключом доступа. Позже они понадобятся вам для подключения к EB CLI.
Вы успешно создали свою учетную запись в IAM.
Настройка EB CLI.
- Убедитесь, что у вас установлен 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
Пришло время развернуть локальное приложение в облаке.
- Если у вас есть только один профиль в вашей учетной записи, вы можете инициализировать 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 ожидает, что ваш основной .py
script будет называться 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»
Теперь можете радоваться.
Спасибо за чтение. Любые мысли будут оценены. пожалуйста, ПОЖАЛУЙСТА, если вам это понравилось.