Creating a Flask Web Server in EC2 on the AWS Free Tier from scratch!
Вставка
- Опубліковано 20 сер 2024
- I show how to deploy a Python Flask app on an EC2 instance in the AWS free tier. I walk through each step that is needed to configure security group rules and prepare the Ubuntu OS with gunicorn and nginx to successful host your website.
To see the commands I ran in this video, go to this link: / step-by-step-visual-gu...
Only halfway through and this has already been one of the most helpful programming tutorials I've ever watched. Wow, good job skipping over all the useless crap, like telling me how to sign up for an AWS account for 5 minutes, while expanding on the stuff that's actually important to know, like what a worker is (never knew that). Thank you!
Every time i need i come back in here and this video just save my life
By far the best end to end tutorial on this topic! 🎉
many sleepness nights and hours and hours of trying to get this to work and your tut was the ONE that did it. Thank you sir. You are God send.
Clear and crisp to the point man great video🙌🏻 explained very well thanks
This is one of the best tutorials I've seen in my entire life. Absolutely clear and straightforward. It worked perfectly, I love this video, I love this guy. Thank you very much
The only tutorial that worked!
This is by far one of the most helpful tutorials on AWS that I saw.... thanks!!!
Thanks for your hard work. Tutorial was really easy to follow-along and informative.
dude you are by far my favorite person ever for learning this shit from. You have such a great personality and you're so easy to understand. Thank you shawty
What a great consise tutorial for setting up Flask on AWS! I started a few tutorials, but this one was perfect and to the point. Thank you so much!!
The best tutorial so far
It works with Linux well too
Thanks a lot. The tutorial was simple. I made it in 20 minutes. Learned something new in it . Very usefull
Bro you saved me. Had some trouble because my ec2 was centos, but a bit of extra googling and all is fine now! Thanks!
This is an absolute life saver. THANK YOU, YOU ARE A LEGEND!
Awesome, this video cleared lots of my doubts.
Thanks Vincent, it was really usefull! It's a joy to follow such a good-explained tutorial
Can never thank you enough, man!
Thank you Vincent! You saved my life.
Can't thank you enough for this! Awesome!
Thank you Vincent, awesome video.
I've been trying this for hours before I fell across your video. Thank you Vincent.
This is super helpful, thanks for putting this together!!
mate, your video is brilliant!
You're a freaking wizard bro let's be friends 😂😂😂 I got ideas dawg 😂
so crisp and helpful!!!
Bro, thx so much, you help a lot!!!! Basically you save my life
Amazing, To the point, my webApp is live, Thank you!
thank u very much , it was very helpful and clear explanation
Job well done 🔥🔥
Hey there, Hope you are having a wonderful life!
Your video and blog are super helpful!
I have one question: why is port 8000 working from outside? I didn't see you set it open in the aws console.
Without nginx, will the server be accessible to public browsers? I understand the reverse-proxy but, how is 8000 open to the outside? sorrt for the naive question, been a noob in this area XD
thanks!
Thank you, this works perfectly!
Great video!! Very clear and concise. Thx
This was beautiful!
Big thanks from Gdańsk
The video is very helpful. Thank you!
Thanks a lot mate! Really nice video.
I really like this video, its fast.
LIFE CHANGING
awesome video
Thanks! This video is helpful.
Saved my day !
how to push new code to flask app in order to reflect it on our web app as I tried updating the code of hello world using git push and also tried restarting nginx server still its showing old app on server
for that you need to restart you gunicorn service
use this command to restart your gunicorn service:
sudo systemctl restart gunicorn
im getting this error: curl: (7) Failed to connect to localhost port 8000 after 0 ms: Connection refused
Any recommendations would be much appreciated!
Saame
@@syedhaideralizaidi4149 I had the same error and realized later that I forgot to put the colon symbol after the localhost in the curl command.
I was getting the same error. I had created my virtual environment as .venv instead of venv so I had to change a single line in the helloworld.service file to ExecStart=/home/ubuntu/helloworld/.venv/bin/gunicorn -b localhost:8000 app:app
Note the .venv
Hope that was your problem too
Great tutorial, really helpful!!
Hello! Did you do something different? It doesn't work for me. I get "This site can't be reached"
@@TheTORTA31 There could be many things affecting wether it works or not. For starters are you trying it in a network that may block some connections. I first tried it in my college network and it didn't work. Also make you sure yo have all the right permissions
This tutorial is useful.
Thanks for everything!
This really helped me - thanks - I'll make a donation when I can. Subscribed and liked.
Hello! Did you do something different? It doesn't work for me. I get "This site can't be reached"
Great tutorial, thank you
Concise.. only one thing. The "systemctl" command is not available with your tutorial (I use Frankfurt AWS node).. you can work your way around things with "service" command... but that does not restart things automatically after a reboot...
👍👍
kindly make a tutorial on doing exactly same but on Windows EC2 instance
wow! thanks a lot
Hey man, thank you soo much !!
Amazing. Thank you
Thanks!
Thank you very much sir
you really did well. But i have a question that is when you bind nginx with this app only, what if i have multiple scripts and want to run those within the same server?
This was great thank you. One question: how can we have an actual link starting with www instead of those numbers?
Thank you so much
Thanks for the useful tutorial.
Just one question here... After restarting the instance, it doesn't work anymore, should we have to start manually any of these services?
Yes - depending on how you’ve configured the OS, the services need to be restated. Linux does have ways of making services run automatically when the system boots.
curl: (7) Failed to connect to localhost port 8000 after 0 ms: Couldn't connect to server
same
How does the service work, if it needs flask. I see that you provide path for gunicorn launch command from the created venv, but how does service know to use the actual venv?
I did this and when i try to curl the localhost, it does not give me any response? Can someone help me ?
same things happened with me
same@@fahadfayyaz552
where did you put your virtual environment and what did you name it?
thanks!!
thank you for helping me, but i've just changed my source code, then i restarted gunicorn and nginx, why still i get the previous one when i curl it in localhost:8000 gunicorn, but if i curl in localhost:5000 when im running it on dev server, i get the changed one.
Hey buddy much thanks for this very helpful tutorial I really appreciate it . Please keep it up and keep sharing useful info like this .
I like, subsucribe and comment you 😁🤪🤭
Technically don't need nginx, can just start flask/gunicorn on port 80? (For demo)
hello sir
thank you so much provide the best content, your content help to use get good knowledge.
I created a python flask app and I want to deploy AWS ec2 ubuntu,
I undersend all things as you told in this video, and I successfully deployed.
please provide content with MySQL database connection [ flask and MySQL ]
Hello! Did you do something different? It doesn't work for me. I get "This site can't be reached"
I have an ML model with its CSV file. I used the Pickle method and created a flask application. How can I upload new files and update them?
I love the video, thank you so much! I am having trouble with the src/link tags on HTML though; it seems any ref or href won't link (might be due to relative pathing) so I'm unable to display any JS or CSS or static images. Does anyone have any insight on why this might be/the correct syntax? Thank you in advance!
Hi, i just want to ask if is possible to deploy 2 or more flasks apps in the same ec2 instance with this method, and if that's the case, how?
For a simple chat bot for helping people with niche info, would a raspberry pi server suffice?
Hi Vincent,
Can you please help me with how to deploy the api which takes a parameter as input and has a URI and returns back an object. What are the changes that I have to make?
Please help me asap as I am stuck on a project.
Regards,
Parth Verma
so I cannot setup more than one server in it ?
any idea how to check logs from flask server or view print statements? trying to actively debug
Great video.
How can i deploy dynamic flask web app?,
My father and I are having trouble connecting to our EC2 instance via SSH, and also are attempting to connect to it to send files via SCP. Seems like passing our keys in with the SSH command doesn't work, despite running the same command the Amazon supplies us with (the SSH command). We're also trying to set up Remote SSH to our EC2 instance using VSCode's extension for Remote SSH by Microsoft.
Any tips you can give us? Much appreciated!
I would double check the security group to make sure ssh traffic is allowed from anywhere on port 22 for the instance.
@@VincentStevenson We had an unfortunate problem where, once we had gotten fed up with the pem/ppk key files not working, we opened it to be access via password and user, and we believe someone used a web spider, discovered us, and hacked our instance because it slowed down tremendously and continuously crashed when we attempted to do anything.
We started a new one following your tutorial once again and managed to get our pem/ppk key files to work properly. To anyone in the future, definitely don't open the servers for use with user/pass, and download VSCode Remote SSH extension and connect it to the instance. It makes working on it so much simpler.
Thanks for your tutorial, Vincent. Looking forward to more.
@@Alpheamus how to deploy server public DNS
Where are logs written to when running flask like this?
anyone can help me on how to get the link of the app after it is up on AWS? like a link to send to someone to use the app
how to deploy server public DNS
This works for dynamic websites?
Great, now how you join it with front react?.
easy
hey mate i need your help with my application . happy to pay you
Hi Stevenson thanks for the great tutorial, I am facing problem while creating the service file as I check the status of the service I am getting the following error
Loaded: loaded (/etc/systemd/system/app.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2023-07-30 17:36:18 UTC; 7s ago
Main PID: 1781 (code=exited, status=203/EXEC)
Jul 30 17:36:18 ip-172-31-86-5 systemd[1]: app.service: Scheduled restart job, restart counter is at 5.
Jul 30 17:36:18 ip-172-31-86-5 systemd[1]: Stopped Implementing python using gunicorn.
Jul 30 17:36:18 ip-172-31-86-5 systemd[1]: app.service: Start request repeated too quickly.
Jul 30 17:36:18 ip-172-31-86-5 systemd[1]: app.service: Failed with result 'exit-code'.
Jul 30 17:36:18 ip-172-31-86-5 systemd[1]: Failed to start Implementing python using gunicorn.
can anyone help me how to resolve this issue.
Thankyou
This was great except when I got to the NGINX part in the last few minutes, I keep getting " [ Directory '/etc/nginx/sites-available' does not exist ]" I ran this a few times but keep getting the same thing. Did I miss a step?
Did u sudo
It was super helpful! Thank you a lot!
Thanks!