Deploy A Fullstack REACT APP on AWS EC2

Sdílet
Vložit
  • čas přidán 11. 09. 2024
  • How to deploy a Fullstack REACT Application on the AWS EC2 instance
    AWS provides an elegant platform for developers to publicly deploy their applications. This platform is known as the Elastic Compute Cloud. The EC2 instance as it is usually called is a virtual server that makes it possible to develop and deploy applications without concerning oneself with hardware constraints. Although it's a simple platform to set up and get running. It's proven to be quite challenging when you’re a newbie developer who is not really concerned with the technical know-how of how this instance operates and all you’re interested in is deploying your newly built application and having it shared across the internet.
    source : github.com/kse...
    website: kutlosek.xyz
    Buy Me Coffee: www.buymeacoff...

Komentáře • 105

  • @AvikGhosh-mc5yv
    @AvikGhosh-mc5yv Před rokem +6

    Best video I've seen so far. Thanks for posting! One minor step: you need to make sure your inbound rules in your security group allow for http, https, and a database (postgres or mysql) immediately after the server is running. Also make sure your VPC network settings allow for all traffic.

  • @Jonesgoful
    @Jonesgoful Před 11 měsíci +1

    Okay, okay. Very very very good this tutorial. You showed/demonstrated all the steps to nervous beginner! Thanks

  • @nakseungchoi7154
    @nakseungchoi7154 Před rokem +2

    Great content! Keep it up. I've been in your shoes. It may take a while for your channel to go viral but just gotta stay positive and consistent with good contents. Thanks!

    • @koding_101
      @koding_101  Před rokem +3

      It sure does, I've been told that it's especially hard at the beginning stages. But sure I'll continue serving as much content as I could. Thanks for the encouragement.

  • @plazma5343
    @plazma5343 Před rokem

    Thank you so much. Im a front dev who spent the Last week eating tutorials and documentation, trying to make sense of all this new cloud world, and this tutorial actually solved some riddles that tortured me.
    (I get you are South African, i was born in your beautifull country, best regards ;) )

    • @koding_101
      @koding_101  Před rokem +2

      Wow, my pleasure, glad you found my content to be helpful 😄 Im from Botswana but SA is beautiful, i did my degree in SA.

    • @plazma5343
      @plazma5343 Před rokem +2

      @@koding_101 Oh, never had the pleasure of visiting your home country, but nice to see fellow devs from all over the world :)

  • @Ayankhan-uc6gd
    @Ayankhan-uc6gd Před rokem +1

    i wish youTube would allow me to like this thousand time..thanks budyy

  • @emmanuelojima-ojo4873
    @emmanuelojima-ojo4873 Před 11 měsíci

    Thank you very much bro. I've tried this severally without success. Just deployed my api all thanks to you

  • @venkysetty9231
    @venkysetty9231 Před rokem

    awesome! i was going through the video in multiple sessions.. digesting the info slowly.. beautifully done!

  • @manavkhandurie3591
    @manavkhandurie3591 Před rokem +1

    Thank you so so much for this tutorial. I was finally able to deploy my project 😊

    • @koding_101
      @koding_101  Před rokem +1

      Glad to hear it , this is the reason why i make these videos

  • @Lorenzo-ky6yz
    @Lorenzo-ky6yz Před měsícem

    Great video my fellow South African.

  • @blipblop92
    @blipblop92 Před rokem

    very good work. One of the few videos I could find to explain it in action! Thank you so much

  • @theman6429
    @theman6429 Před rokem

    Excellent video tutorial EXACTLY step for step what i've been studying and trying to do in my boot camp. thank you

  • @delpsiphi9
    @delpsiphi9 Před rokem +3

    Amazing content!! Thanking you very much for this tutorial!! Please can you mention where to find the part 2 of this video (where you explain how to set up DNS).

    • @koding_101
      @koding_101  Před rokem +1

      My utmost pleasure, glad to be of service. You can get the part 2 of this video on the next comment.

    • @koding_101
      @koding_101  Před rokem +1

      czcams.com/video/cfzHfazXalo/video.html

    • @delpsiphi9
      @delpsiphi9 Před rokem

      @@koding_101 Thank you so much! One more question, I would like to ask. Here you are serving the static build of the frontend from the index.js file of server and then you are setting a proxy in the config file of nginx to direct the traffic to the port where our server is running. But if I want to separately run the client and host say on port 3000 and 5000 respectively, how do I connect to the server from the client side using ipv4 address of ec2 instance? Assuming that nginx is serving the client side only i.e localhost:3000. I'm new to this stuff, and am learning a lot of new things from your videos.

  • @techybhoot
    @techybhoot Před 25 dny

    your video was amazing helped me to deploy my project thank you very very much

  • @1111ah
    @1111ah Před 2 dny

    Great video. Thanks!

  • @elClubdelas7Cifras
    @elClubdelas7Cifras Před rokem +1

    yo! thank u a lot . Have to go through the minutes 18:40 again but seems doable.
    feeback :
    i think sometimes u just copy code for installation but u dont leave the viewer time to check what u actually are installing.
    few seconds there would be amazing.
    besides that and the blue background in the terminal with blue letters, all great.
    subbed!

    • @koding_101
      @koding_101  Před rokem +1

      Wow, thanks a lot, really appreciate this , your feedback is heard , I'll make sure to wait a few seconds so the viewer can see what is being installed in my next video, thank you for the sub

  • @abhishekagarwal6742
    @abhishekagarwal6742 Před rokem +1

    AWESOME, Great work.

  • @gursahajsinghbedi1150
    @gursahajsinghbedi1150 Před rokem +2

    Great Video, Keep up the good work, this video was very detailed compared to other videos on the EC2 deployment, had fun watching this.
    Can you share the code you pasted on 20:28

    • @koding_101
      @koding_101  Před rokem +1

      server_name yourdomain.com www.yourdomain.com;
      location / {
      proxy_pass localhost:5000; #whatever port your app runs on
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
      }

  • @ahmedsenousy01
    @ahmedsenousy01 Před rokem +1

    Great job bro, I wanna give u a few hints though:
    1- sry to say ur intro is boring😅, what I mean is that it's a long intro so try to say everything u wanna say as fast as possible just not to lose the attention of ur viewers.
    2- if u have the money invest in a good microphone
    3- try to show ur face in the videos sometimes, even if it's only for the intro: this way u create a connection with ur viewers and seem to them like a real person, and it also helps with building a brand to urself
    other than that thanks for the amazing video bro, really!!!

    • @koding_101
      @koding_101  Před rokem

      Thank you Ahmed, those us some great pointers, i've been really trying with my intros lately , cos I've head intros are everything , would you be kind enough to listen to some of my latest content and see whether I've improved in that regard?

    • @koding_101
      @koding_101  Před rokem

      I am saving up for a proper mic and camera so i can deliver quality audio and show my face as well. You're absolutely right.

    • @ahmedsenousy01
      @ahmedsenousy01 Před rokem +1

      @@koding_101 sry to reply that late, but yeah sure, I'll try to free some time and help u if I could

    • @koding_101
      @koding_101  Před rokem

      @@ahmedsenousy01 Sure thing , thanx a lot , appreciate it

    • @art_ik
      @art_ik Před rokem

      @@koding_101 DM me I can help maybe.

  • @AnupumPant
    @AnupumPant Před 10 dny

    How do i configure nginx if my other app is running on other port simultaneously.

  • @MAAAX2211
    @MAAAX2211 Před 4 měsíci

    Great content! Keep it up

  • @netsaosa4973
    @netsaosa4973 Před rokem +1

    thanks bro, got my server to work. had trouble at first because i was trying to connect to my ec2 instance's public ip using https, but it only worked for http

    • @koding_101
      @koding_101  Před rokem

      My absolute pleasure

    • @netsaosa4973
      @netsaosa4973 Před rokem

      @@koding_101 Do you think you make a video of this with docker images?

  • @dennistucker2138
    @dennistucker2138 Před rokem +3

    Great video. Can you post the code for the location for nginx? It was all blue so everything blended in. Also, how can you assign a static IP to the EC2 instance or is that IP already static?

    • @koding_101
      @koding_101  Před rokem

      You need to create what you call an Elastic IP, that's the one you can assign to different EC2 instances. Otherwise an IP will be automatically created for you.

    • @koding_101
      @koding_101  Před rokem

      To access the nginx configuration files, you can either use
      sudo nano /etc/nginx/sites-available/default
      or
      sudo vim /etc/nginx/sites-available/default
      depending on the text editor you prefer.

  • @mindylee5023
    @mindylee5023 Před 5 měsíci

    Thank you for your video. i have successful host my website. but there is a problem that I don't know why it happens. On my local host environment, the contact page functions well, allowing users to send messages to the admin email address. Yet, after deploying it to the server, this functionality does not work, it could not send message. I'm unsure where I might have gone wrong in the deployment process.

  • @DennisTuckersAwesome
    @DennisTuckersAwesome Před rokem +2

    I would like a video on the security please. 🙂

    • @koding_101
      @koding_101  Před rokem

      Security? could you elaborate please...

    • @DennisTuckersAwesome
      @DennisTuckersAwesome Před rokem

      @@koding_101 securing settings to secure the EC2 instance. You mentioned if we wanted a video on security for the EC2 instance, mention it in the comments. Right now, it’s kind of exposed.

    • @koding_101
      @koding_101  Před rokem +2

      @@DennisTuckersAwesome Ohh yeah that's right, like setting up firewalls and security groups, most definitely , that's in my plans , i'll do a complete thing on AWS

  • @lucasmedeiros9755
    @lucasmedeiros9755 Před 7 měsíci

    one question, if i have docker compose, when git cloning my project, can i just type docker-compose up and its done?

  • @RamalekshmiJeyasankar
    @RamalekshmiJeyasankar Před 3 měsíci

    Hi, I'm using mac OS, should I still select ubuntu when I create my instance in AWS

  • @ghulamalishergul562
    @ghulamalishergul562 Před rokem +1

    does it work if your backend is written in python and frontend with react? Sorry, if it's stupid question since it's my first time working with deployment

    • @koding_101
      @koding_101  Před rokem

      No worries, it's not a stupid question at all! Yes, the deployment process should work similarly regardless of the backend language you are using.

  • @lindelanintuli7620
    @lindelanintuli7620 Před rokem

    Thanks for this!

  • @DennisTuckersAwesome
    @DennisTuckersAwesome Před rokem +1

    Great video. Can you post the code for the location and what was commented out, the colors all blended. Also, how do you assign a static IP address to the EC2 instance?

    • @koding_101
      @koding_101  Před rokem +2

      server_name yourdomain.com www.yourdomain.com;
      location / {
      proxy_pass localhost:5000; #whatever port your app runs on
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
      }

    • @koding_101
      @koding_101  Před rokem +1

      I hope I've answered all your questions , If you continue to experience problems, got to my website www.kutlosek.xyz and reach out to me.

  • @oatie4262
    @oatie4262 Před rokem +1

    Thanks so much for this! Does PM2 listen to port 5001? I re-watched the video a couple of times to see if I missed a step but I couldn’t seem to find the step that connects the app to port 5001.

    • @koding_101
      @koding_101  Před rokem

      Not sure i get you but , You connect the app to port 5001 through your Nginx configurations. Watch the next part of this video to get a bit more in depth understanding.
      czcams.com/video/cfzHfazXalo/video.html

  • @TheFearlessGoat
    @TheFearlessGoat Před rokem +1

    If you want to make changes to the application after you already deployed it, do you have to repeat this whole process? Let's say you make a new push to the github repo, can you easily get those changes by doing a git fetch & pull in the EC2 instance?

    • @koding_101
      @koding_101  Před rokem +2

      It's as simple as working on your project locally. You just need to git pull your changes and then use PM2 to restart the application. If the changes do not reflect, restart your Nginx web server. If they still do not reflect , then flush your local DNS settings in your local computer.

    • @TheFearlessGoat
      @TheFearlessGoat Před rokem

      @@koding_101 Hey, I really appreciate you taking the time to answer my questions. After hours of stress, my app is finally deployed because of you. In the app, I have a button that would redirect to localhost:5000/dashboard. It's not working anymore because can’t establish a connection to the server at localhost:3005. I'm guessing I would have to change the redirect link for the button to the Public IPv4 address/dashboard instead of localhost:5000/dashboard? So would it be smart to go to my code and change any link that redirects to localhost to the public ipv4 address?

  • @MacielDev
    @MacielDev Před rokem

    im getting that error on pm2 logs...:
    "GET / HTTP/1.0" 404 139
    console log error on aws ip deploy:
    Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'none'". Either the 'unsafe-inline' keyword, a hash ('sha256-pShsw8meIjhx77fl5AYeHiS3c1TOGl7Bx2eEqNo+OCk='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.
    can you help me please?

  • @ASK-pt4ew
    @ASK-pt4ew Před rokem +1

    First of all thanks for this tutorial!
    I was able to follow each step but still end up with 502 bad gateway error.
    What have I done wrong here?

    • @koding_101
      @koding_101  Před rokem +1

      I suspect your application might not be actively running in the background. Check your pm2 logs to ascertain that your application is indeed running properly.

    • @koding_101
      @koding_101  Před rokem

      Hey did you manage to solve this?

  • @mubashir8036
    @mubashir8036 Před 6 měsíci

    Thank u so much ❤❤❤

  • @lelewei8008
    @lelewei8008 Před 7 měsíci

    Thank you sososososo much

  • @predatorvsprey8962
    @predatorvsprey8962 Před rokem +2

    Thank you

    • @koding_101
      @koding_101  Před rokem

      You are most welcome , my absolute pleasure

  • @shareoi
    @shareoi Před 9 měsíci

    how you edit file /etc/nginx/sites-available/default ? I can't to commit and to write

  • @sairasagnya2901
    @sairasagnya2901 Před 11 měsíci

    can anyone suggest inbound rules for database and one more doubt can anyone please ex[plain why he got node in the application while using terminal in visual studio code

  • @Rikrolled
    @Rikrolled Před 2 měsíci

    Thx Guy

  • @edmundebiyenrin
    @edmundebiyenrin Před rokem +1

    Thanks sir, Pls I deploy my mern stack app on ec2 but the mongodb url is not connecting showing error_connection_refused in console. I'm using atlas mongodb free tier. Help please

    • @koding_101
      @koding_101  Před rokem

      Did you test your application locally, does it work as it should?

    • @koding_101
      @koding_101  Před rokem

      Where did you save your MongoDB URL , is it in an .env file?

    • @edmundebiyenrin
      @edmundebiyenrin Před rokem

      @@koding_101 I directly include it in my node index.js file

    • @jenniferfan8155
      @jenniferfan8155 Před 8 měsíci

      did you get the solution ?

  • @daisytran4813
    @daisytran4813 Před rokem +1

    Is it a good practice that I run the application in a Docker container which is on EC2?

    • @koding_101
      @koding_101  Před rokem

      Yes its good practice but not really necessary if you're a beginner.

    • @daisytran4813
      @daisytran4813 Před rokem +1

      @@koding_101 Thank you for your reply, I have a project to be in prod in the near future, and hosting on Docker will definitely be the easiest way.

    • @koding_101
      @koding_101  Před rokem

      @@daisytran4813 Absolutely, it will really streamline your development process and maintain consistency between production and development environment.

  • @tuananhngyen2985
    @tuananhngyen2985 Před rokem +1

    how can I find part 2 of this video ?

    • @koding_101
      @koding_101  Před rokem

      Hi , thank you for watching , this is part 2 of this series
      czcams.com/video/cfzHfazXalo/video.html

  • @user-rg2yl8en8s
    @user-rg2yl8en8s Před 11 měsíci

    Good day sir, thank you for the amazing video. I have stumbled into a problem, I am South African based and upon deploying my reactjs, nodejs and mysql app on netlify and heroku and realized that there is no data center in SA for Heroku and might have latency issues so I resorted to Aws. I have successfully deployed on ec2 (thanks to your amazing tutorial) and the dB on rds. The issue now is that when I run my node and react independently, the Api work perfectly but they don't work when I run the react from node after the npm run build command. My question is what could be causing this and whether you have any idea if I can deploy on heroku and netlify even though there is no dedicated data center in our region.

  • @fun_factory880
    @fun_factory880 Před 11 měsíci

    I have a issue here what if my react app route and api end point is same..? Eagerly waiting for your answer

    • @eliteturtle6090
      @eliteturtle6090 Před 8 měsíci

      Pretty sure that means your project is in one directory, so all you have to do is skip the first part of the video where he loads the front end build into the backend

  • @TheFearlessGoat
    @TheFearlessGoat Před rokem

    What happens to the absolute path when the app gets deployed? Can you still use the same one as path.join(_dirname , "../client/build")?

    • @koding_101
      @koding_101  Před rokem

      The absolute path _dirname is relative to the file structure from where you have deployed your application, it is dynamic. I don't expect it to change unless you were to hard code it.

  • @user-wt1vw3yu1t
    @user-wt1vw3yu1t Před 9 měsíci

    can you paste the nginx configuration please?

  • @romimaximus
    @romimaximus Před rokem +1

    I gonna have to watch this video about 50 times, cause "aws" is the most complicated cloud in the world, and i have no idea what you just did, specially the part that you didnt explain "Key pair" on the 5:55mins and on, ...but anyway all of it is very complicated for beginners in "aws"... i try it once, but i gave up. and went deploy y app on netlify, ...and only took me 3 mins.... lol...

    • @koding_101
      @koding_101  Před rokem +2

      I can tell you from experience that sometimes that's what it takes to understand something, watch it a couple of times and do your external research.
      A KEY PAIR file is more of a password or a door key that is needed to access your EC2 instance. Your EC2 instance of cos is more of a virtual server that is needed in order to run your applications. Think of a virtual server as more of a separate computer somewhere in the cloud. Let me know if this helps you understand better so I can elaborate more.

  • @safhanalikhan9299
    @safhanalikhan9299 Před rokem

    nice video

  • @balasubramaniam7904
    @balasubramaniam7904 Před 11 měsíci

    is this automatic deployment

  • @Ecity1997
    @Ecity1997 Před 6 měsíci

    does this work with react native?

    • @koding_101
      @koding_101  Před 6 měsíci

      No it doesnt unfortunately , very different environments all together

  • @adambaruch6787
    @adambaruch6787 Před 9 měsíci

    who was the female saying alright