DEV Community

Rutvik Makvana
Rutvik Makvana

Posted on

3

Deploying a Node.js Application on AWS EC2 Using Tabby SSH Client

Deploying a Node.js application on an AWS EC2 instance is a crucial skill for backend developers. This guide walks you through deploying your Node.js application using the Tabby SSH Client. Let’s get started!

Prerequisites

1. AWS EC2 Instance

  • Ensure your EC2 instance is launched with the following:
    • Security Group allowing:
      • SSH (port 22)
      • HTTP (port 80)
      • HTTPS (port 443)

2. Tabby SSH Client

  • Installed and configured on your local machine.

  • Your private key for EC2 access added to Tabby.

3. Dependencies

  • Node.js application code hosted on a Git repository.
  • Optional: A domain name for production HTTPS setup.

Step-by-Step Deployment

Step 1: Connect to the EC2 Instance

  1. Launch the Tabby SSH Client.

  2. Connect to the EC2 instance using:

    • Public IP address
    • Private key associated with the instance.

Step 2: Install Required Dependencies on EC2

Once connected, update the system and install necessary packages.

Update System Packages

sudo apt update && sudo apt upgrade -y
Enter fullscreen mode Exit fullscreen mode

Install Node.js and npm

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
Enter fullscreen mode Exit fullscreen mode

Install Git

sudo apt install git -y
Enter fullscreen mode Exit fullscreen mode

Install PM2 (Optional, for Production Management)

sudo npm install -g pm2
Enter fullscreen mode Exit fullscreen mode

Step 3: Clone Your Node.js Repository

  • Navigate to your desired directory (e.g., /var/www):
cd /var/www
Enter fullscreen mode Exit fullscreen mode
  • Clone the repository:
git clone <your-repo-url> app-name
cd app-name
Enter fullscreen mode Exit fullscreen mode

Step 4: Set Up the Application

Install Node.js Dependencies

npm install
Enter fullscreen mode Exit fullscreen mode

Configure Environment Variables

  • Create an .env file:
touch .env
Enter fullscreen mode Exit fullscreen mode
  • Open the file in a text editor to add your environment variables:
nano .env
Enter fullscreen mode Exit fullscreen mode
  • Save and exit the editor.

Step 5: Start the Application

Run the Application

npm run start
Enter fullscreen mode Exit fullscreen mode

Or Use PM2 for Process Management

pm2 start app.js  # Replace 'app.js' with your main application file
Enter fullscreen mode Exit fullscreen mode

Step 6: Access the Application

  • Open a browser and navigate to:
http://<your-ec2-public-ip>:<port>
Enter fullscreen mode Exit fullscreen mode

Example:

http://13.60.229.203:5001/
Enter fullscreen mode Exit fullscreen mode
  • You should see your application running.

Next Steps

Optional Enhancements

  • Domain Setup: Point your domain to the EC2 public IP using DNS records.
  • SSL with Let’s Encrypt: Use Certbot to enable HTTPS.
  • Load Balancing: Add AWS Elastic Load Balancer for scaling.

Conclusion

Congratulations! You’ve successfully deployed a Node.js application on an AWS EC2 instance using Tabby SSH Client. This setup ensures a reliable and scalable environment for your application.

Share your experiences or ask questions in the comments below. Happy coding!

Billboard image

Synthetic monitoring. Built for developers.

Join Vercel, Render, and thousands of other teams that trust Checkly to streamline monitor creation and configuration with Monitoring as Code.

Start Monitoring

Top comments (1)

Collapse
 
dhruv_patel_0cf0179768db9 profile image
Dhruv Patel

great buddy. you cover all the steps. appreciate your work

Billboard image

Try REST API Generation for MS SQL Server.

DreamFactory generates live REST APIs from database schemas with standardized endpoints for tables, views, and procedures in OpenAPI format. We support on-prem deployment with firewall security and include RBAC for secure, granular security controls.

See more!

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay