Part 2: Setup NGINX


In the previous post of this series “AWS Application Deployment Basics”, we setup a PostgreSQL database and then we connect to it via a Node.js application.

However, the Node.js application is running on the same machine and database access is local for it. It is a totally valid setup and because it is on the same machine, the access is straight forward. But, have applications and databases running on separate machines is also a very common setup and we will cover that path as well later in this series. …

Part 1: VPC and PostgreSQL Setup


In this series about deploying applications in AWS, I will discuss different methods and steps required to run different applications in AWS. We will be covering different moving parts in AWS as needed to run typical applications.

This series will be arranged in different parts to discuss different services, topics and/or technologies needed for application deployment and execution.

Databases are one of the basic building block of many different type of applications. They can be relational or NoSQL or both. …

Photo by Pankaj Patel on Unsplash


In my previous post about Nodejs — Dependency Management, we looked at basics of what is Nodejs module. How can we use module.exports and require to work with dependencies. How folder dependencies work and why they are useful. We all look at how Nodejs lookup system works to look for dependencies and some basics of NPM.

Today we will continue from that point and see how we use this module system to breakdown an application in multiple modules. What are the benefits of doing so and and how Nodejs handles this.

I will be using some of the learnings from…

Photo by Kevin Ku on Unsplash


Recently I was deploying IdentityServer4 to AWS and I needed self signing certificates for that purpose.

I went online to get the settings for this configuration and there were a lot of articles describing in various different ways and sometimes a lot of extra information was there, which was rather confusing. Here I am describing a very simple way to get this done on windows OS.

Open SSL and Git Bash

I am using windows and windows do not have openSSL utility by default. But I also have Git installed on my machine and with Git you get a Gitbash utility and you can use…


An Important concept, in Node.js is that you want to know the way dependency management is handled. This dependency management is the part of core Node.js experience. In this post, we will learn various pattern of dependency management and how Nodejs load dependencies.

So, we could write our application using a single js file for everything, but that’s not modular. Node.js makes it very simple to write modular code.

Before we dive into the details , the first question to answer , the module. What is it? And why should we care about it?

In simple terms, a module is…

Photo by Shahadat Rahman on Unsplash


Modern JavaScript frameworks like Angular, Vue, etc have a built-in mechanism to structure JavaScript code. When not using these frameworks, we can use simple techniques to structure our JavaScript. In this post, I will show you one of them using the Revealing module pattern.

This pattern is very popular and there are a great many resources online utilizing this design and here I will try to share a simple implementation of the same.

Why Structure JavaScript Code

Encapsulated and modular-based JavaScript code promotes reusability and is better for maintenance. …


Security Groups are one of the fundamental concept you need to learn when you are setting up infrastructure in AWS. Having good understanding of their working will help you not only design proper access for your EC2 instances but you will be also able to quickly spot and deal with issues with existing designs.

We have been using security groups in the earlier posts in this series and today we will learn a little bit more about those.

In my previous post on AWS Basics- Bastian Hosts and NATS, we used security groups to manage access to EC2 instances.



In previous post on AWS Elastic Compute Cloud (EC2) Basics, we launched two EC2 instances. One in public subnet and one is private subnet. With security groups configured, we were able to SSH to EC2 in public subnet.

In this post, we will continue and setup Bastian Host and NAT instance in our VPC. We will learn why we need those and some of the options available to us.

Here is how our architecture is currently setup, for the reference:

Now, if we want to SSH into EC2 instance on private subnet from our home/office (or using development machine), currently…

The basics of AWS Elastic Compute Cloud (EC2)


In my earlier post on AWS Basics, we learnt that the core of the AWS is EC2. You can think of this as service that provides servers where your applications will be running.

We then started setting up our VPC, Subnets, Routing Table and we also setup and Internet Gateway and we have following architecture in place (you can check my earlier post on AWS Internet Gateway and VPC Routing for details):

Now in this post, we will launch EC2 instances. We will start simple and initially launch an Ubuntu instance in our public subnet and another in private subnet.


In the previous post on AWS VPC Basics, we learned about VPC basics and we also setup a VPC with public and private subnets.

In this post, we will learn about another powerful component from AWS, the gift of internet, The Internet Gateway. We will also learn how routing works within VPC, how to setup route to internet gateway and our public subnet. This setup is very common for most of the applications on AWS.

An internet gateway is a service that allows for internet traffic to actually enter into a VPC. Otherwise, a VPC is completely segmented off and…


Hi there! I’m Jawad and I’m a software solutions engineer. I live in Dusseldorf, Germany, have a great interest in books and movies, and Astrophysics as well.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store