In this project, we will be building and provisioning a 2-tiers AWS VPC and 3-tiers AWS VPC from scratch. If you may use it as a reference for your own AWS VPC or use it as a learning tutorial. Feel free to take advantage of it! :)

For your convenience, 2 free giveaways :)

Git Repos for you!



What and why are AWS VPC being used?

Amazon Virtual Private Cloud (Amazon VPC) is a service that lets you launch AWS resources in a logically isolated virtual network that you define. You have complete control over your virtual networking environment, including selection of your own IP address…

Why Docker?

It makes development efficient and predictable

Docker takes away repetitive, mundane configuration tasks and is used throughout the development lifecycle for fast, easy and portable application development — desktop and cloud. Docker’s comprehensive end to end platform includes UIs, CLIs, APIs and security that are engineered to work together across the entire application delivery lifecycle

Why AWS S3 Bucket?

Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance. This means customers of all sizes and industries can use it to store and protect any amount of data for a range of use cases…

Before we even get started, I’d like to discuss the objective of the project — explore varities of methods to provision VPC using IaC and find out the pros and cons of each option. At the end of the day, choose the one that fits you and your organization

Boto3 (AWS SDK for Python)

You use the AWS SDK for Python (Boto3) to create, configure, and manage AWS services, such as Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3). The SDK provides an object-oriented API as well as low-level access to AWS services



Project infrastructure

As shown by our infrastructure diagram, what we intend to do in this project is to accomplish data transfer from a source server (Redhat 7.6) with Oracle database installed to a target server (RDS Aurora Postgresql) using Terraform. We may use Windows Server sitting in an EC2 instance as a medium to deploy this data transfer with AWS Schema Conversion Tool

This whole project is on Cloud using AWS, you may use your own Windows System to achieve data transfer from on-premise server to an Aurora Postgresql

Why using Aurora Postgresql over Oracle Database?

Amazon Aurora is a relational database service that combines the speed and availability…

Project Infrastructure

What is Terraform and why we use it?

Terraform is an open-source infrastructure as code software tool created by HashiCorp. Users define and provide data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language, or optionally JSON

Terraform, the leading force in IaC, allows to provision infrastructures in a seamless manner.

Advantages of Terraform:

  • Prevents configuration drift: Terraform binds you to make sure changes are firstly made in your container before it deploys the new ones across every server. By doing so, it separates server configuration from any dependency, which may cause identical instances across infrastructures
  • Easy collaboration: The terraform registry (Terraform’s central registry version…

Project Infrastructure

Before we begin AWS Disaster Recovery, let us discuss where majority of organizations are standing in terms of disaster recovery. As we all know, on-premise server has long been there store the critical data of an organization. But cloud, as one of the booming industry, gives organizations the edge to take advantage of completing storing and disaster discovery in more efficient and cost-effective manner. AWS Disaster Recovery is no doubt among the list

How Disaster Recovery is not “one solution fits all”. Depending on the sizes, nature, requirements and other factors of a business. The strategies could be varied. …

A comprehensive EC2 management with Boto3 and Lambda

What is AWS SDK for Python (Boto3) ?

You use the AWS SDK for Python (Boto3) to create, configure, and manage AWS services, such as Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3). The SDK provides an object-oriented API as well as low-level access to AWS services

Why using it?

To fully take advantage of Python’s automation in AWS EC2 management, we’ll be exploring the power of Boto3

In this project, we will be touching upon almost all aspects of EC2 management. We’ll starting from single task based project such as how to manage start, stop your EC2 all the way to using Linux crontab to…

Diagram of project infrastructure

As we kick off this project, let us discuss why we would adopt Serverless application rather than provisioning a server or instance?

Here we will be discussing the pros and cons of Serverless Applications


1 No server management is necessary

One of the biggest advantage of serverless application is to reduce the human and financial costs of an organization by freeing them from server management. Instead, the resources can be allocated to what matters most in terms of business operation

2 Developers are only charged for the server space they use, reducing costs

For developers in, specific, the deployment…


The LEMP software stack is a group of software that can be used to serve dynamic web pages and web applications. The LEMP stands for a Linux operating system, with an Nginx (pronounced like “Engine-X”) web server. The backend data is stored in the MySQL database and the dynamic processing is handled by PHP.

Diagram of tools

CLB vs. ALB vs. NLB

Today, let us make it theoretical. We’re going to dive deep into the differences in between ALB, NLB and CLB(ELB). Though it may benefit us in terms of exam taking or interviews, the usages are still pretty much practical.

In order to maintain HA, we need to adopt LB in front of at least two instances of our app

Features for all:

(1) Health Checks

(2) Distribute incoming requests to a number of targets could be either EC2 instances or docker containers

(3) HA and Elastic, which means scaling up or down in a couple of minutes

(4) TLS termination

Paul Zhao

Amazon Web Service Certified Solutions Architect Professional & Devops Engineer, Digital Designer

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