Всем привет.
Я еще только учусь, и пытаюсь запустить свое первое приложение на Flask на амазоновском инстансе. Пока хочу использовать встроенный вэб сервер. Локально все работает. Захожу через терминал на инстанс запускаю скрипт и через curl захажу на localhost:5000.
А как сделать это приложение доступным с наружи? (Для проверки я запустила Nginx и стартовая страница доступна ).
Я знаю что Flask рекомендует использовать Elastic Beanstalk, а можно ли обойтись без него? Т.к. не понятно является ли этот сервис бесплатным
PS
Дальше я хотела этоже приложение запустить в докер контейнере, точнее я уже запустила его в контейнере и локально все работает, а как дальше сделать его досупным не понятно.
Иван Шумов
@inoise Куратор тега Amazon Web Services
Solution Architect, AWS Certified, Serverless
Доброй ночи) Beanstalk это просто платформа, которая так же запускает EC2 инстанс, поэтому никакой разницы. Если хочется контейнер то тебе в AWS ECS
Что касается доступности снаружи - EC2 должен быть в публичной подсети, ему должен быть выдан публичный ip и в security group должен быть открыт 80 порт для http
Ну т.е если запускать еще один инстанс то первый надо будет удалить? (Т.к. только один бесплатно на год).
Так вроде security group у меня настроена, т.к стартовая страница Nginx доступна снаружи.
(Когда запускаю фласк приложение, я nginx останавлилваю)
Написано
Иван Шумов
@inoise Куратор тега Amazon Web Services
mashkaJ, можно просто остановить, терминейтить не обязательно (но тогда пойдет расход за storage)
flask работает же на другом порту - значит либо его проксировать через nginx либо просто пробросить 5000 порт через security group. порты, подсказываю еще раз - разные
Иван Шумов,
Спасибо все получилось и в контейнере тоже работает. Только у меня в скрипте используеться flask_sslify , а страница отображется как не защищеная при этом в pythonanywhere все работало.
Написано
Иван Шумов
@inoise Куратор тега Amazon Web Services
mashkaJ, чтобы вешать ssl есть только один по сути грамотный вариант это настраивать CDN, но это делается при подключении application load balancer. Сертификат в aws можно выпустить бесплатно.
Ну, или традиционно можно просто letsencrypt, но я ему не доверяю