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...

КОМЕНТАРІ • 110

  • @klnmn3722
    @klnmn3722 Рік тому +17

    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!

  • @feliperibeiro2342
    @feliperibeiro2342 Місяць тому

    Every time i need i come back in here and this video just save my life

  • @ettionestuckey5463
    @ettionestuckey5463 6 місяців тому +1

    By far the best end to end tutorial on this topic! 🎉

  • @user-fd9hq1cx1f
    @user-fd9hq1cx1f 6 місяців тому

    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.

  • @mithson
    @mithson Рік тому +8

    Clear and crisp to the point man great video🙌🏻 explained very well thanks

  • @mateussantos1041
    @mateussantos1041 Рік тому +1

    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

  • @pulkitpareek
    @pulkitpareek 5 місяців тому +1

    The only tutorial that worked!

  • @adolfoguevara6506
    @adolfoguevara6506 Рік тому

    This is by far one of the most helpful tutorials on AWS that I saw.... thanks!!!

  • @rishu4225
    @rishu4225 11 місяців тому +1

    Thanks for your hard work. Tutorial was really easy to follow-along and informative.

  • @randallhale5529
    @randallhale5529 Рік тому

    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

  • @reginaldcobb4356
    @reginaldcobb4356 Рік тому

    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!!

  • @user-dw5qw3hy1o
    @user-dw5qw3hy1o 10 місяців тому

    The best tutorial so far
    It works with Linux well too

  • @Calmandrelaxmusicvideos
    @Calmandrelaxmusicvideos 8 місяців тому

    Thanks a lot. The tutorial was simple. I made it in 20 minutes. Learned something new in it . Very usefull

  • @bezdras
    @bezdras Рік тому

    Bro you saved me. Had some trouble because my ec2 was centos, but a bit of extra googling and all is fine now! Thanks!

  • @lachlancroll2386
    @lachlancroll2386 Рік тому

    This is an absolute life saver. THANK YOU, YOU ARE A LEGEND!

  • @Mantra-ro9cx
    @Mantra-ro9cx 5 місяців тому

    Awesome, this video cleared lots of my doubts.

  • @xondemingo
    @xondemingo Рік тому

    Thanks Vincent, it was really usefull! It's a joy to follow such a good-explained tutorial

  • @user-hx8ew4gq7v
    @user-hx8ew4gq7v 4 місяці тому

    Can never thank you enough, man!

  • @samfoong3558
    @samfoong3558 Рік тому

    Thank you Vincent! You saved my life.

  • @milosmarkovic4566
    @milosmarkovic4566 11 місяців тому

    Can't thank you enough for this! Awesome!

  • @eminedogan3125
    @eminedogan3125 Рік тому

    Thank you Vincent, awesome video.

  • @QualtarVideo
    @QualtarVideo 2 роки тому

    I've been trying this for hours before I fell across your video. Thank you Vincent.

  • @mattbeglinger
    @mattbeglinger Рік тому

    This is super helpful, thanks for putting this together!!

  • @evegarcianz
    @evegarcianz Рік тому

    mate, your video is brilliant!

  • @blueeyeswhitejesus
    @blueeyeswhitejesus Рік тому

    You're a freaking wizard bro let's be friends 😂😂😂 I got ideas dawg 😂

  • @zzjam
    @zzjam Рік тому

    so crisp and helpful!!!

  • @user-dg8ln2uh4v
    @user-dg8ln2uh4v 8 місяців тому

    Bro, thx so much, you help a lot!!!! Basically you save my life

  • @LeFantasticPlanet
    @LeFantasticPlanet 7 місяців тому

    Amazing, To the point, my webApp is live, Thank you!

  • @abdulazizdeveloper7915
    @abdulazizdeveloper7915 3 місяці тому

    thank u very much , it was very helpful and clear explanation

  • @jameswharton5259
    @jameswharton5259 3 місяці тому

    Job well done 🔥🔥

  • @xuechuanmi5345
    @xuechuanmi5345 Рік тому +1

    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!

  • @wenxuanzhang3545
    @wenxuanzhang3545 11 місяців тому

    Thank you, this works perfectly!

  • @markb255
    @markb255 Рік тому

    Great video!! Very clear and concise. Thx

  • @ax_ai
    @ax_ai Рік тому

    This was beautiful!

  • @szalajable
    @szalajable 11 місяців тому

    Big thanks from Gdańsk

  • @teddyperera8531
    @teddyperera8531 Рік тому

    The video is very helpful. Thank you!

  • @gagikkhalafyan8731
    @gagikkhalafyan8731 Рік тому

    Thanks a lot mate! Really nice video.

  • @hoteny
    @hoteny 10 місяців тому

    I really like this video, its fast.

  • @ignoringyou376
    @ignoringyou376 Рік тому

    LIFE CHANGING

  • @noble6169
    @noble6169 Місяць тому

    awesome video

  • @yuantian8408
    @yuantian8408 2 роки тому +1

    Thanks! This video is helpful.

  • @jeandtx
    @jeandtx 10 місяців тому

    Saved my day !

  • @rishabhchandaliya3028
    @rishabhchandaliya3028 Рік тому +2

    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

    • @pradeeppoojary8792
      @pradeeppoojary8792 Рік тому +1

      for that you need to restart you gunicorn service
      use this command to restart your gunicorn service:
      sudo systemctl restart gunicorn

  • @JoshuaHaley-tw8wc
    @JoshuaHaley-tw8wc Рік тому +2

    im getting this error: curl: (7) Failed to connect to localhost port 8000 after 0 ms: Connection refused
    Any recommendations would be much appreciated!

    • @syedhaideralizaidi4149
      @syedhaideralizaidi4149 Рік тому

      Saame

    • @aashishadhikari8144
      @aashishadhikari8144 Рік тому

      @@syedhaideralizaidi4149 I had the same error and realized later that I forgot to put the colon symbol after the localhost in the curl command.

    • @jacobhill5097
      @jacobhill5097 5 місяців тому

      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

  • @gilbertoyarritu1326
    @gilbertoyarritu1326 Рік тому

    Great tutorial, really helpful!!

    • @TheTORTA31
      @TheTORTA31 Рік тому

      Hello! Did you do something different? It doesn't work for me. I get "This site can't be reached"

    • @gilbertoyarritu1326
      @gilbertoyarritu1326 Рік тому

      @@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

  • @ravikumawat-iitm
    @ravikumawat-iitm 11 місяців тому

    This tutorial is useful.

  • @anuragdhyani1712
    @anuragdhyani1712 Рік тому

    Thanks for everything!

  • @ribo2139
    @ribo2139 Рік тому

    This really helped me - thanks - I'll make a donation when I can. Subscribed and liked.

    • @TheTORTA31
      @TheTORTA31 Рік тому

      Hello! Did you do something different? It doesn't work for me. I get "This site can't be reached"

  • @haroldherrera1
    @haroldherrera1 Рік тому

    Great tutorial, thank you

  • @HenkLeerssen
    @HenkLeerssen Рік тому

    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...

  • @lisasamir3773
    @lisasamir3773 29 днів тому

    👍👍

  • @njbshah
    @njbshah 2 роки тому +1

    kindly make a tutorial on doing exactly same but on Windows EC2 instance

  • @harshvardhan_grandhi
    @harshvardhan_grandhi 7 місяців тому

    wow! thanks a lot

  • @akachukwumba6155
    @akachukwumba6155 Рік тому

    Hey man, thank you soo much !!

  • @agb2557
    @agb2557 Рік тому

    Amazing. Thank you

  • @ifalu
    @ifalu 4 місяці тому

    Thanks!

  • @abbasjafary3443
    @abbasjafary3443 Рік тому

    Thank you very much sir

  • @sheharyaar6338
    @sheharyaar6338 Рік тому

    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?

  • @Sam-tg4ii
    @Sam-tg4ii Рік тому

    This was great thank you. One question: how can we have an actual link starting with www instead of those numbers?

  • @Shehab-Codes
    @Shehab-Codes Рік тому

    Thank you so much

  • @beongky
    @beongky 10 місяців тому

    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?

    • @VincentStevenson
      @VincentStevenson  10 місяців тому

      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.

  • @davidtrokten
    @davidtrokten 11 місяців тому +1

    curl: (7) Failed to connect to localhost port 8000 after 0 ms: Couldn't connect to server

  • @rain-er6537
    @rain-er6537 10 місяців тому

    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?

  • @aashnashroff3094
    @aashnashroff3094 11 місяців тому +2

    I did this and when i try to curl the localhost, it does not give me any response? Can someone help me ?

    • @fahadfayyaz552
      @fahadfayyaz552 10 місяців тому

      same things happened with me

    • @hack-comic
      @hack-comic 9 місяців тому

      same@@fahadfayyaz552

    • @jacobhill5097
      @jacobhill5097 5 місяців тому

      where did you put your virtual environment and what did you name it?

  • @guidocaru
    @guidocaru Рік тому

    thanks!!

  • @aguilarstephenjoaquing.1831
    @aguilarstephenjoaquing.1831 5 місяців тому

    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.

  • @user-lu3xj4mp2n
    @user-lu3xj4mp2n 3 місяці тому

    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 😁🤪🤭

  • @gunot5656
    @gunot5656 3 місяці тому

    Technically don't need nginx, can just start flask/gunicorn on port 80? (For demo)

  • @tapendrasinghdhayal1759
    @tapendrasinghdhayal1759 2 роки тому

    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 ]

    • @TheTORTA31
      @TheTORTA31 Рік тому

      Hello! Did you do something different? It doesn't work for me. I get "This site can't be reached"

  • @aminmohebbi9838
    @aminmohebbi9838 Рік тому

    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?

  • @DrexSux
    @DrexSux 11 місяців тому

    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!

  • @papimarcis8730
    @papimarcis8730 Рік тому

    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?

  • @blueeyeswhitejesus
    @blueeyeswhitejesus Рік тому

    For a simple chat bot for helping people with niche info, would a raspberry pi server suffice?

  • @parthverma5071
    @parthverma5071 Рік тому

    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

  • @muhammadanasrashid2634
    @muhammadanasrashid2634 3 місяці тому

    so I cannot setup more than one server in it ?

  • @ajadavis2000
    @ajadavis2000 Рік тому

    any idea how to check logs from flask server or view print statements? trying to actively debug

  • @ibrahimkezer9451
    @ibrahimkezer9451 Рік тому

    Great video.
    How can i deploy dynamic flask web app?,

  • @Alpheamus
    @Alpheamus Рік тому

    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!

    • @VincentStevenson
      @VincentStevenson  Рік тому +1

      I would double check the security group to make sure ssh traffic is allowed from anywhere on port 22 for the instance.

    • @Alpheamus
      @Alpheamus Рік тому

      @@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.

    • @AchyutJagini
      @AchyutJagini Рік тому

      @@Alpheamus how to deploy server public DNS

  • @FinnBrownc
    @FinnBrownc Рік тому

    Where are logs written to when running flask like this?

  • @rafikemad9114
    @rafikemad9114 Рік тому

    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

  • @AchyutJagini
    @AchyutJagini Рік тому

    how to deploy server public DNS

  • @gabrielroomvm6209
    @gabrielroomvm6209 Місяць тому

    This works for dynamic websites?

  • @LuciaLleraszarza
    @LuciaLleraszarza Рік тому

    Great, now how you join it with front react?.

  • @varunraja9646
    @varunraja9646 4 місяці тому

    hey mate i need your help with my application . happy to pay you

  • @suneelkumar5175
    @suneelkumar5175 Рік тому

    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

  • @user-tj8fs4mv2j
    @user-tj8fs4mv2j Рік тому

    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?

  • @erikfeigin6317
    @erikfeigin6317 2 роки тому

    It was super helpful! Thank you a lot!

  • @bakasura999
    @bakasura999 Рік тому

    Thanks!