Node.js Deploy to Amazon Web Services (AWS) Tutorial (Elastic Beanstalk, Express, Git, CI/CD)

Поділитися
Вставка
  • Опубліковано 25 січ 2025

КОМЕНТАРІ • 185

  • @ThatsPety
    @ThatsPety 4 роки тому +84

    If you're watching this, here's whats going on with the 502 error:
    Don't make a new variable in elastic beanstalk called "port"! Amazon already sets the environment variable for you...but they set the variable "PORT", not "port". So in your app.js code change "process.env.port" to "process.env.PORT" and things will work properly...
    Except they won't. For a lot of you, you're still getting a 502 error. But that isn't because of the port; your application simply can't start, with or without AWS. The issue is that AWS is trying to run a command like "npm start" but it isnt working. On your local machine navigate to the project directory in your terminal and try "npm start". If that fails, then you've found the problem. Here's how you fix it...
    npm start, by default, looks for a file called "server.js", not "app.js" like he told you to name your file. There are two solutions. The first is to change the settings in your project to make it look for "app.js" instead. The second solution is to simply change "app.js" file name to "server.js". I recommend the second option.
    Repush after making these changes and you should be good to go.

    • @valiant7057
      @valiant7057 4 роки тому

      This 100% solved my issue with bad gateway. Thanks!

    • @andrewradulescu
      @andrewradulescu 4 роки тому +1

      +1

    • @garinnmorton9640
      @garinnmorton9640 4 роки тому

      @Pety im still getting the 502 error :( any other suggestions? Im getting both connections just fine, it just won't let me open up the web app

    • @garinnmorton9640
      @garinnmorton9640 4 роки тому

      im also trying to return in an html page, not just a welcome message

    • @ThatsPety
      @ThatsPety 4 роки тому

      @@garinnmorton9640 oh no! when you run "npm start" on your local machine, does it work?

  • @robertgioeli3211
    @robertgioeli3211 2 роки тому +13

    Caleb I know it's 2 years later but thanks for this video bro. You've always had down to earth explanations that people from all learning styles can understand.

  • @sebastianraab4887
    @sebastianraab4887 4 роки тому +4

    You, Sir, are a true hero. Not the hero we deserved, but the hero we needed.

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

    Almost 3 years later, and this is the best tutorial i've ever seen. Thank you so much

  • @cliffvbajo
    @cliffvbajo 3 роки тому +1

    I like that you showed even the errors you encountered so that it can help us debug/fix it. Thank you buddy! I will slap the "like" button and subscribe too!

  • @Chrrxs
    @Chrrxs 4 роки тому +39

    For anyone watching and still getting a 502 error make sure to define a "start" script in your package.json, in my case I did:
    "start":"node app.js"
    Also make sure to define your port in env config and look in the logs to see which port your environment is running on

    • @Heliotropeeee
      @Heliotropeeee 3 роки тому

      god bless you man, the problem was the json file.
      people, be careful even if the "start":"nodemon server.js" looks like this.
      it will BE WRONG because of nodemon, just use node server.js as well or app.js if thats the case

    • @reesharper7506
      @reesharper7506 3 роки тому +1

      @@Heliotropeeee I wish I read the comments earlier, I just found it in the logs that nodemon was the issue. then I came to the comments and immediately saw this hahaha

  • @richie-bonilla
    @richie-bonilla 4 роки тому +38

    >"502 Bad Gateway, yeah!... so that's the end of the tutorial."
    hahahaha

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

    I am halfway to the video, the way you summed up everything. its marvellous and big thank you

  • @SrRunsis
    @SrRunsis 4 роки тому

    Man just what I needed! Thanks!
    If any of you guys is having trouble trying to connect to a RDS Database from an Elastic Beanstalk Node.JS app check the SECURITY GROUP POLICY of the DB to accept traffic from Custom > Your Beanstalk Instance (this must be done manually) . Also check if you have a NPM RUN script in your package.json (it wont work otherwise) and your ENVIRONMENT VARIABLES set in the Beanstalk environment section.

  • @omerlev7776
    @omerlev7776 4 роки тому +7

    FINALLYYYYY, a good tutorial on how to deploy with aws. THANK YOU!!!!

  • @josephwong2832
    @josephwong2832 4 роки тому +3

    Thanks a lot Caleb!
    Love how you celebrate your failures/errors. That's the best attitude

  • @jonjon4796
    @jonjon4796 4 роки тому +21

    Yes caleb we are very interested on a tutorial on how to use mongo db with this. pls do

  • @alexandermichaud957
    @alexandermichaud957 3 роки тому +1

    This was exactly what I needed to get my app up and running. Thank you for a down-to-earth, straightforward tutorial

  • @jaydave791
    @jaydave791 4 роки тому +8

    instead of adding port as env variable you should use PORT(all caps) in your code for it to work also it is a good practice to have environment variables in all caps

  • @jameschhun6200
    @jameschhun6200 3 роки тому +1

    Hey man thanks for this video, I used to watch you alot during my senior year of university for DBMS. Glad to see that 3 years later you're still producing content that is completely relevant to me haha

  • @nicholasdaniel-richards1309
    @nicholasdaniel-richards1309 2 роки тому

    Bloomin eck Caleb - nicely done. I needed a very simple start for my first was deploy - I feel like I learned all the steps waaay beyond this and was missing this critical step. Subscribed. Thank you.

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

    The best tutorial on deployment of node project on AWS! thanks

  • @noobminer3136
    @noobminer3136 4 роки тому +1

    I had a local env with mongoDB/atlas but it was impossible to find a tutorial on how to bring everything live. Your tutorial nailed it thanks!

  • @gavinhatch9991
    @gavinhatch9991 3 роки тому

    9:49 "Maybe it's not. I don't know. I don't know your life!" bro i died.

  • @suhaib404
    @suhaib404 4 роки тому +1

    This video is gold.

  • @adrianfittolani5001
    @adrianfittolani5001 4 роки тому +4

    So good. Thank you. This worked great for me (had been trying to figure it out for a while). Site up and going , until it's time to hit the DB on Atlas! Would be great to see the Mongo DB part you were going to do.

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

    worked first time. great tutorial. keep up the great work. thank you

  • @joeyjohnson4153
    @joeyjohnson4153 4 роки тому

    haven't finished watching this but already loving it. Subscribed straight away. I am in the process of making a complete career re-direction aka "CHANGE" and will need easy-to-follow videos like this one here. Nice one Caleb!!

  • @ThomasFaller
    @ThomasFaller 4 роки тому +1

    Love the video and your attitude! Keep it up!
    When you see the kind of videos AWS Solution Architects make you're happy that they're not the only ones.

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

    Thank you from Brazil! You helped me a lot hehe

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

    thank you , you just made my job 5X easier

  • @tolu-john
    @tolu-john 2 роки тому

    Awesome video. How do I set up staging and development environment using ELB from different branches

  • @НуркасымАязбекулы

    Hi Caleb!
    Could you please help me with deployment my NodeJS application?
    I did everything according to your tutorial, but for some reason only the deploy to the AWS EB does not work

  • @visvm747
    @visvm747 4 роки тому

    Cool Caleb. Tip for beginners, AWS EB considers app.js as default start script. If different, explicitly mention in package.json. "start": "src/app-main.js"

  • @jgvidotto
    @jgvidotto 4 роки тому +3

    tutorial start at 10:36

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

    Hey Caleb, How we can add the mongo db to that workflow?

  • @salmankazi5308
    @salmankazi5308 4 роки тому

    Thank So So So So Sooooo Much Brother... Was Watching and Doing The work at 3:43AM ..And Yes It Worked Perfectly..!!! LIKED + SUBSCRIBED!!1

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

    I have created a express app with around 10 api endpoints and hosted on elastic beanstalk server, how do I check how much compute resource each endpoint is taking?

  • @tolu-john
    @tolu-john 2 роки тому

    This video was exactly what I was looking for. Your the best

  • @QuakerRaze
    @QuakerRaze 4 роки тому +7

    You're the best, God bless.

  • @Justin-te2kg
    @Justin-te2kg 2 роки тому

    20:04 an emotion felt by programmers universally

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

    I know this is later but im having this problem still with the 502 nginx error and the port fix doesnt work but im also using a Postgres db thats on RDS and i think that may be causing the issue as well. any suggestions?

  • @KM-zd6dq
    @KM-zd6dq Рік тому

    Preying is a very important part of the process 20:03

  • @GabeSegura94
    @GabeSegura94 4 роки тому +2

    That deployment reaction is one we all know all too well! 😂😂

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

    Outstanding! Cristal clear :)

  • @MrCoolieification
    @MrCoolieification 4 роки тому +1

    Very informative video, I appreciate you showing us the trial and error and breaking down concepts. Thank you.

  • @kumarvishalben
    @kumarvishalben 3 роки тому

    Beanstalk URL doesn't have HTTPS enabled 😭.
    Is there a way to add SSL in the load balancer without custom domain ???

  • @November17th
    @November17th 3 роки тому

    Happy teacher's day bro 😌😌

  • @hack2crack929
    @hack2crack929 3 роки тому

    you missed to create buildspec.yml , might be that's one failed to deploy
    To update your application to use Express
    On your local computer, create an .ebextensions directory in the top-level directory of your source bundle. In this example, we use node-express/.ebextensions.
    Add a configuration file that sets the Node Command to "npm start":
    node-express/.ebextensions/nodecommand.config
    option_settings:
    aws:elasticbeanstalk:container:nodejs:
    NodeCommand: "npm start"

  • @vivekmankar5823
    @vivekmankar5823 4 роки тому

    I subscribed to the channel as soon as I finished the video! Awesome work Bro !

  • @luisantos1986
    @luisantos1986 4 роки тому +2

    well after a whole day of researching looks like the Proxy server: nginx doesn't recognize my process.env.port so i hardcoded to 8080 and it worked.... not the best practices but it's a start.
    For anyone following this tutorial, wich is very good BTW just change this line of code and i'll be fine.
    const port = process.env.port || 8080

    • @taofeekolalekan3399
      @taofeekolalekan3399 4 роки тому +1

      const port = process.env.PORT || 3000 change to PORT instead of port.

    • @boddulasrikanth6047
      @boddulasrikanth6047 4 роки тому +1

      Thanks man.....after a day of searching this helped me....god bless you

  • @apurvaraghu1597
    @apurvaraghu1597 4 роки тому

    we dont need a ec2 instance here?

  • @valiant7057
    @valiant7057 4 роки тому +1

    Edit: Solution at the bottom of this comment
    Everything went perfect for me besides the part 2 deploy on the CodePipeline. This was my error: "Deployment completed, but with errors: During an aborted deployment, some instances may have deployed the new application version. To ensure all instances are running the same version, re-deploy the appropriate application version. " I did everything the same as the video (will review again) - any advice?
    EDIT: The error in the AWS logs (download by going to environment -> logs) was that my package.json file did not specify a node version. I added "engines":{"node":"12.18.3"}, to my package.json top-level (inside the first {}, right after "name": "project0",). Then I got an error in the logs saying that it couldn't get my dependencies... so then, in my .gitignore, I put a # (comment symbol) in front of the node_modules line under dependencies. Boom problem fixed. Now I'm just dealing with the 502 issue with the help of the comments
    Cheers

  • @PierreAndNick
    @PierreAndNick 4 роки тому +4

    Hey man, I keep getting this error when I try deploy the pipeline, do you know what the issue could be?
    Action execution failed
    Deployment completed, but with errors: During an aborted deployment, some instances may have deployed the new application version. To ensure all instances are running the same version, re-deploy the appropriate application version. Failed to deploy application. Unsuccessful command execution on instance id(s) 'i-08cb1ec6aa6770914'. Aborting the operation. [Instance: i-08cb1ec6aa6770914] Command failed on instance. An unexpected error has occurred [ErrorCode: 0000000001].

    • @xiaoyuelyu8539
      @xiaoyuelyu8539 4 роки тому +1

      get the same issue. did you find way to solve it?

    • @caloski
      @caloski 4 роки тому +1

      @@xiaoyuelyu8539 any news?

    • @manuh8860
      @manuh8860 4 роки тому

      Can anyone help here. I am getting same error

    • @mustkeemk5506
      @mustkeemk5506 4 роки тому

      For someone who is getting this error - the solution is you might have defined node version in your package.json file. Correct it or remove details of node version from your package.json file. Cheers...

  • @bryceblankinship
    @bryceblankinship 3 роки тому

    All the checks passed, my code is the same, but the public url times out every time. Do you have any possible solutions?

  • @sambarvada
    @sambarvada 4 роки тому

    Do we need to use docker or jenkins with elastic beanstalk?

  • @taofeekolalekan3399
    @taofeekolalekan3399 4 роки тому +1

    For any gateway issues.
    const port = process.env.PORT || 3000 use PORT instead of port

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

    solve the problem Caleb, thank you very much.

  • @anillip1
    @anillip1 4 роки тому +3

    100% helpful mate, Could you please revert the mongodb with aws video ulr please ?

  • @mathiusjordan97
    @mathiusjordan97 3 роки тому

    Amazing video! I was so confused with all the different pieces just reading the docs 🥵

  • @juliuspetre4704
    @juliuspetre4704 3 роки тому

    Your awesome dude! I already hit the subscribe button! Please do more Videos just like this one.

  • @brendanmoran1166
    @brendanmoran1166 4 роки тому

    you might have to use port 8080. 8081 caused 502 bad gateway for me.

  • @deian85
    @deian85 3 роки тому

    I’d be interested in the mongodb part

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

    it works but its not free, internally load balance is used with t2.small instance type which is not free and there is no way of stopping application, only termination of application is available. pls suggest some free instance

  • @PrinjuVaidyan
    @PrinjuVaidyan 4 роки тому

    i cant see the container options ,,please help?
    nodejs deployment

  • @kavindumadushanka9802
    @kavindumadushanka9802 4 роки тому

    Thank you so much! btw some differences were there when running this in my case. By the help of the comment section I was able to deploy my app. Great Explanation 🤩❤️

  • @alexlindgren1
    @alexlindgren1 4 роки тому

    Really cool man thanks for the tutorial, just what I needed. I had to open port "8080" in my settings, so guess they are distributed differently, maybe you should put that into the description if someone has the same issue (you find it in the log if anyone missed that).

  • @nikmanzo8569
    @nikmanzo8569 4 роки тому +2

    Yeah! A CRUD app would be great! THanks!

  • @hjab
    @hjab 4 роки тому +1

    it's very useful but still get the error 502! no google answer :( .. What was ur problem share plz.

  • @MuhammadKashif-bq4ht
    @MuhammadKashif-bq4ht 3 роки тому

    thank God you finally did, I thought you would say "We couldn't make it in this tutorial, let me create another one and watch it next week" hah, anyways, Great stuff very helpful!

  • @РомаКовінько
    @РомаКовінько 2 роки тому

    Oh man, thank you very much!!!, now I don’t need any help from devops 😀

  • @demonknightd
    @demonknightd 3 роки тому

    “we want to deploy node.js REST API on AWS. currently using elastic beanstalk service to deploy the api from github. But we want to enable "https" on our api. right now the url that aws gives is http only”

  • @a_b_p97
    @a_b_p97 4 роки тому

    will beanstalk know which command to use to run the node server

  • @bobaashenvale3968
    @bobaashenvale3968 4 роки тому

    You can type in order to open your current directory in VS Code directly.

  • @rahulshimpi8914
    @rahulshimpi8914 4 роки тому

    Thank You So.............................Much Sir. Finally, deploy my node application on AWS and it's working fine. One more time thanks and also subscribe to your channel.

  • @sondaika12
    @sondaika12 4 роки тому

    Thanks Caleb, you're awesome as always. Cheers

  • @CaioEduT
    @CaioEduT 4 роки тому

    How to do it with a monorepo?

  • @eniolotero8808
    @eniolotero8808 3 роки тому

    Thanks a lot for this man. I really needed it

  • @azamsharp
    @azamsharp 3 роки тому +1

    Thank you!

  • @abdur-rakib
    @abdur-rakib 3 роки тому

    Wow! great video👍

  • @louleg23
    @louleg23 3 роки тому

    Great tutorial thanks! Just what I was looking for. Would love one that includes mongo too.

  • @md.mehrabhaque2223
    @md.mehrabhaque2223 4 роки тому

    Brooooooo , it's a gemmmm !!!!!!!!!!!!!!! not only subbed, smashed that bell also !!!!!!!!!!!!!!!!!!!!!!!!!

  • @canadasistersforchrist8656
    @canadasistersforchrist8656 4 роки тому

    Really helped so much. Please keep doing this great work.

  • @bryanoliverosperez8827
    @bryanoliverosperez8827 3 роки тому

    thank you so much, I learned something new

  • @nibhajain3621
    @nibhajain3621 4 роки тому

    Hi ..thank you for making this.. I tried this but my i was failed as my app has express module.. It is quite tough tutorials for express module app ..can you create a tutorial for that too..?

  • @circulgaming
    @circulgaming 4 роки тому +2

    Nice video! I'll be waiting for the next vid about how to include mongo on this setup, thanks!

  • @redvalley99
    @redvalley99 4 роки тому

    youre a life saver sir

  • @Viralstuffzworld
    @Viralstuffzworld 3 роки тому

    how to make http to https in this deployment

  • @HuyLe-pm9tk
    @HuyLe-pm9tk 3 роки тому

    You saved my day. Thank you so much !!

  • @bitsiot
    @bitsiot 3 роки тому

    Great demo, provides value.

  • @salmankazi5308
    @salmankazi5308 4 роки тому

    how to assign domain to this

  • @eddiehernandez70
    @eddiehernandez70 4 роки тому +1

    Great tutorial. Exactly what I needed. Thanks!

  • @nitram_nosnibor
    @nitram_nosnibor 4 роки тому

    Great tutorial, thanks for putting this up. I'm not sure you need to put the picture in picture of you there though, just the monitor screen would be good, means we see more too eh - cheers.

  • @dhananjayawasthi3083
    @dhananjayawasthi3083 4 роки тому

    Do i install less.js first?

  • @stasstas206
    @stasstas206 4 роки тому

    helped me - thanks! in my case - port=8080

  • @derekmab7734
    @derekmab7734 3 роки тому

    Great tutorial thanks. It would be great if it is enhanced to using RDS DB and React front end.

  • @miguelbas
    @miguelbas 4 роки тому

    This tutorial is amazing, thank you

  • @spencerjin8370
    @spencerjin8370 4 роки тому

    Cool tutorial! Thanks man!

  • @alexnim4873
    @alexnim4873 4 роки тому

    hey caleb, thanks for this tutorial.
    i have a problem and was hoping you could help me. I'm extremely new to web dev, so this may be a silly question.
    but i used node js to build a website (basically a blog) that incorporates a load of images.
    my directory contains a public folder than contains my css stylings and images for the website.
    it loads just fine on my computer but i want to deploy it
    can i upload this folder with all the images, etc. directly to amazon and deploy it directly?
    or am i supposed to find a database to store my images and then link it up to my node js application somehow?
    thanks, any help would be much appreciated

  • @rk_nyra
    @rk_nyra 4 роки тому

    Very helpful! Thanks for sharing!!

  • @slal
    @slal 4 роки тому

    Really good information !!

  • @DavisTibbz
    @DavisTibbz 4 роки тому

    very helpful. thanks. plz do one with mongodb

  • @codebreakthrough
    @codebreakthrough  4 роки тому

    I just released a Python version of this video! How to deploy a Python web app (AWS) for beginners - ua-cam.com/video/4tDjVFbi31o/v-deo.html
    Check out ClickUp! Replace all your apps for free! www.calcur.tech/clickup

    • @sharyar_t
      @sharyar_t 4 роки тому

      I click on your links in gratitude)

    • @ayami123
      @ayami123 4 роки тому

      how come your and my elastic beanstalk menu is different zz

  • @frankellyguzman4297
    @frankellyguzman4297 3 роки тому

    Love this videos

  • @madantata
    @madantata 3 роки тому

    perfect , it lookd very nice , please share the source code link for reference as well if possible , i have multiple aws lambda functions in a git repo , any help would be appreciated