Micah Kamla

Houston, TX Web Developer

Setting Up a Node.js Server on EC2

A barebones guide to setting up a Node.js server on AWS EC2.

Initial AWS Setup

Follow the AWS EC2 Getting Started guide. This article assumes an Amazon Linux AMI configuration (2017.03.0 HVM). Follow the AWS documentation through Step 3 (Configure your instance).

SSH EC2 Instance

Move your newly created PEM file to your root SSH folder.

mv ./your-app-key.pem /.ssh

Access your EC2 instance via SSH by providing your local PEM file and the DNS or IP address of your instance. The command below uses the AWS domain name instead of IP. If you're using a Ubuntu server, connect with user name ubuntu.

ssh -i ~/.ssh/your-app-key.pem ubuntu@ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com

Installing dependencies

Install git

sudo apt-get install git

Install Node

sudo apt-get install nodejs

To access Node and check the version installed, run the following command

nodejs --version

Install NPM

sudo apt-get install npm

Install your Node.js project via Git. For this example, we'll clone the repository for this site.

git clone https://github.com/mkamla/node-portfolio.git

Next, change your working directory and install the projects dependencies

cd ./node-portfolio
npm install

Configuration

Finally, if there are configuration files, such as .env, set those values for production as specified by your project.

If you cloned the repository for this site, please continue reading, otherwise skip ahead to the Starting your server section.

This project utilizes Wakatime and several other AWS services. You will be required to provide your own API access keys. Once the access keys have been created, copy the .example.env in the root directory and name this newly created file .env. Finally, edit the file in nano and replace the psuedo keys with your API access keys.

cp ./.example.env ./.env
nano .env

Starting your server

nodejs index.js