Источник
Flask – это веб -структура для Python, что означает, что она обеспечивает простой интерфейс для динамического генерации ответов на веб -запросы. Который включает в себя обслуживание веб -сайтов/ответов API. Собирается облако, будучи последней тенденцией. Давайте начнем с запуска сервера Flask в экземпляре EC2 Amazon Web Services.
Давайте разделим задачу настройки сервера Flask на EC2 как 3
1. Запуск экземпляра EC2
1) Откройте консоль Amazon EC2 в https://console.aws.amazon.com/ec2/ Анкет
2) Выберите Запуск экземпляр Анкет
3) в Шаг 1: Выберите изображение машины Amazon (AMI) , найдите Ubuntu AMI в списке и выберите Выберите Анкет
4) в Шаг 2: Выберите тип экземпляра , выберите Далее: Настройте подробности экземпляра- Выберите тот, который лучше всего соответствует вашим требованиям.
5) в Шаг 3: Настройка деталей экземпляра , Предоставьте следующую информацию:
- Для Сеть , выберите запись для того же VPC, который вы отметили, когда вы создали свою файловую систему EFS в Шаг 1: Создайте свою файловую систему Amazon EFS Анкет
- Для Подсеть Выберите подсеть по умолчанию в любой зоне доступности.
- Для Файловые системы , убедитесь, что файловая система EFS, которую вы создали в Шаг 1: Создайте свою файловую систему Amazon EFS выбран. Путь, показанный рядом с идентификатором файловой системы, является точкой монтирования, которую будет использовать экземпляр EC2, который вы можете изменить. Выберите Добавить в пользовательские данные Для установки файловой системы при запуске EC2.
- Под Расширенные детали , подтвердите, что пользовательские данные присутствуют в Пользовательские данные Анкет
6) Выберите Далее: добавить хранилище Анкет
7) Выберите Далее: добавить теги .- Отметьте его соответствующим образом для будущей ссылки 8) Выберите Далее: Настройка группы безопасности
Настройте группы безопасности, как показано ниже. Эта настройка позволяет доступа к порту 80 (http) из любого места, где вы также можете добавить порт 443 (https), если это необходимо, и доступ к SSH только с любого IP -адреса.
Входящие правила безопасности AWS
Теперь, когда у вас есть Ваш экземпляр настроен Давайте подключимся к нему и установим необходимые требования.
2) Подключитесь к требованиям EC2 и настройке
1) Подключитесь к вашему EC2
Подключите через SSH -терминал
$ ssh -i "yourapp.pem" ubuntu@yourapppublicinstance.compute-1.amazonaws.com
или же
Подключите через интерфейс браузера
2) Обновить Ubuntu и установить Apache Webserver и MOD_WSGI.
$ sudo apt-get update $ sudo apt-get install apache2 $ sudo apt-get install libapache2-mod-wsgi
Теперь, как только это будет сделано, если вы попадете в публичный IP своего EC2 в любом браузере, вы сможете это увидеть.
Теперь, когда работает Apache Server, давайте настраивают PIP и другие зависимости для сервера Flask
$ sudo apt-get **install** python3 $ sudo apt-get **install** python3-pip $ sudo pip **install** flask
Python 3, скорее всего, будет установлен, но команда гарантирует, что он существует и находится в правильной версии.
2) Создайте каталог для приложения Flask
Мы создадим каталог в нашем домашнем каталоге для работы, и ссылки на него из корреации сайта, определенной в конфигурации Apache. Обычно в
/var/www/html
В качестве альтернативы его можно изменить или проверить на
/etc/apache2/sites-enabled/000-default.conf
Убедитесь, что мы находимся в корневом каталоге и
$ cd ~ $ mkdir ~/flaskapp $ sudo ln -sT ~/flaskapp /var/www/html/flaskapp
Чтобы убедиться, что наша операция работает, создайте простой файл index.html.
**$** cd ~/flaskapp **$** echo "Hola" > index.html
Теперь publicip/flaskapp
отобразит экран Hola
2) Настройка приложения Flask и развертывание
1) Создать приложение Анкет Мы будем использовать простой пример «Hello World» из документации Flask. Поместите следующий контент в файл с именем flaskapp.py
**from** flask **import** Flask app = Flask(\_\_name\_\_) **@app.route('/')** **def** **hello\_world** (): **return**'Hello from Flask!' **if** \_\_name\_\_ == '\_\_main\_\_': app.run()
2. Создайте файл .wsgi для загрузки приложения.
Давайте сделаем базовый код WSGI, поместим следующий контент в файл с именем flaskapp.wsgi
#flaskapp.wsgi **import** sys sys.path. **insert** (0, '/var/www/html/flaskapp') **from** flaskapp **import** app **as** application
3. Включить mod_wsgi.
Сервер Apache отображает HTML -страницы по умолчанию, но для обслуживания динамического контента из приложения Flask нам придется внести несколько изменений. В файле конфигурации Apache, расположенном по адресу /etc/apache2/sites-enbabled/000-default.conf , добавьте следующий блок сразу после документации /var/www/html линия:
WSGIDaemonProcess flaskapp threads=5 WSGIScriptAlias / /var/www/html/flaskapp/flaskapp.wsgi **** WSGIProcessGroup flaskapp WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all ** **
4. Перезагрузите веб -сервер.
Используйте эту команду, чтобы перезапустить сервер с новой конфигурацией
$ sudo service apache2 restart
Вуаля! При этом наш сервер Flask теперь работает.
Играйте с Flask и Python и реализуйте все, о чем думает ваш разум.
Лучше всего выучить колбу
Учебное пособие Mega Flask Mega по Мигель Гринберг является идеальным начальным ресурсом для использования этой веб -структуры. Каждый пост фокусируется на одной теме и опирается на предыдущие посты. Серия включает 18 частей: #1 Hello World , #2 шаблоны , #3 веб -формы , #4 База данных , #5 Пользовательские логины , #6 Страница профиля и аватары , #7 ЕДИНЦИОННЫЕ Тестирование , #8 подписчиков, контактов и друзей , #9 Правительство , #10 Полный текстовый поиск , #11 Поддержка по электронной почте , #12 Фейлинга , #13 свиданий и времен , #14 I18N и L10N , #15 Ajax , #16 Отладка, тестирование и профилирование , #17 Развертывание на Linux и #18 развертывание в облаке Heroku Анкет Мигель также написал и записал многочисленные Flask Web Development Content, включая отличную книгу и видео Книга, которые являются отличными ресурсами, стоит того, особенно для поддержки его постоянных изменений в контенте.
Счастливого обдумывания
Оригинал: “https://dev.to/innovationincu/deploy-a-flask-app-on-aws-ec2-13la”