Today we shall go through the solution of using ECS to set up MongoDB replica Set. Although it is possible to set up MongoDB in ECS using the Fargate launch type, we will follow the best practices in ECS for persistent workload using the EC2 launch type. To allow reproducible artifacts for this solution, we will use Terraform for all the configurations. You are welcomed to reuse this template and modify it accordingly.

High-level diagram

As illustrated in the diagram above, we will use EC2 as compute resource for our ECS Cluster. For simplicity's sake, only use 1 EC2 to run 3…

MongoDB is one of the most popular document DB in the market. From the Ops perspective, we have so many different options to set up MongoDB. For simple comparison, we will compare in AWS context to test which is the best option for you to set up MongoDB. On the tooling side, we will use the popular YCSB from Yahoo to run the load test. As this article does not demonstrate the Terraform script, we will just simply duplicate the script if required. However, you are welcomed to explore my Terraform setup.


If you like to follow the setup, you…

AWS Fargate is a serverless compute engine for containers that work with both Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS). Fargate makes it easy for you to focus on building your applications. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design. (refer)

In this article, we will use Terraform to provision DotNet container API to ECS using Fargate Launch Type. To make things simpler, I remove all the optional attributes; only fill in the required attribute that helps us…

Serverless Application has become a buzz word for quite some time, but some still claim that it is not compatible with my current code base and need much effort to convert. Some even claim that vendor lock-in is the main reason to avoid using Serverless technology like AWS Lambda. Today I’m going to show you how we can easily convert your existing DotNet Core 3.1 WebApp with Razor view to Serverless Application live in AWS within 5 minutes.


Serverless technology is already a mature technology. Many applications on the internet are now using Serverless technology especially AWS Lambda. Many businesses…

Although Serverless applications become very popular nowadays, EC2 still commonly used in some uses cases. When coming to EC2 monitoring, AWS comes with native CloudWatch metric for some basic metrics, but exclude memory and disk usage metric. This article going to show you how we can simply enable CloudWatch agents to monitor memory and disk usage metric using Terraform. To make things simple we will provision 1 EC2 using Terraform.

Image credit to AWS


If you want to follow this guide, please make sure you have the following tools installed and configure:-


Visual Studio Code

AWS Account


Configure AWS Credential on…

During the release planning, we always face challenges on how to tag our Software Version and how to prepare our release Changelog, and this question becomes a routine during the release flow. Some team will inject a manual process to create a Release PR that includes all the release information and update the version manually. This manual process slows the team down, and it’s not integrated smoothly in the CICD flow. …

In this article, we will build a sample DotNet Core API to run in single-node Docker in EC2, and utilize AWS ECR to store our application image. To provision the infrastructure, we use Terraform to help us provision require components in AWS to run our Docker application. The commands used here had been tested in Linux and Mac environments.


The main force in this article is to learn how to set up a basic terraform script to help us provision EC2 and automatically run our application in the Docker environment. …

Docker Swarm is a simple Docker Orchestration framework, it is the hottest tool to discuss and used before Kubernetes, and it still very popular now in small scale Applications. Today, we will demonstrate how we can use Vagrant to set up Docker Swarm in your local machine without provision cloud or physical environment.

Introduction to Vagrant

Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the “works on my machine” excuse a relic of the past. Learn Vagrant…

reference image from

With Serverless technology developer now with more powers and controls. With IaC using Terraform, create new API no longer need to deal with the Ops team or headache of designing server topology. Today we going to go through step by step API creation using Golang, Lambda, and Terraform.


We going to create one API that can print out Hello world when we invoke the API URL. …

If you are an active contributor to the open-source community, there will be always needed to find a good build server to build your docker image, especially in this dockerize era, if you can dockerize your tool and program, many magic can be happen

Image from twitter


This guide will only focus on Github and Docker:-

You must have Github account

You must be a registered user in Docker Hub

Create a Simple Docker file in Github

Create a new repository in your Github and add the following Dockerfile, it is a simple docker with printing hello world when running it, commit your code and make sure your file name…

Jazz Tong

A software engineer that believe to change the world, first you need to fix the code.

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