Multi-Cloud Setup using WordPress on Kubernetes Platform & RDS on AWS.

Arvind Ramugade
3 min readOct 14, 2020

We need to achieve following using Terraform :

Deploy the WordPress application on Kubernetes and AWS using terraform including the following steps;

1. Write an Infrastructure as code using Terraform, which automatically deploy the WordPress application

2. On AWS, use RDS service for the relational database for WordPress application.

3. Deploy WordPress as a container either on top of Minikube or EKS or Fargate service on AWS

4. The WordPress application should be accessible from the public world if deployed on AWS or through workstation if deployed on Minikube.

We’ll first Set up VPC, Subnet & Firewall in GCP

VPC set up in GCP

Subnet set up in GCP

subnet

Firewall Rule Set up

firewall set up

Now we’ll set up Google Container Engine — K8s Cluster

GCP Cluster Set up

Next step is to set up Amazon RDS DB in AWS.

Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the AWS Cloud. In this demo we’ll use MySQL DB engine & launch RDS instance in across 2 Availability zones.

We’ll create VPC, Subnets, Security Group & Internet Gateway first.

VPC Set up in AWS

VPC

Subnets in VPC

subnets

Internet Gateway Set up

IGW

Security Group for RDS DB

SG for RDS DB

RDS DB instance launched successfully.

RDS DB launched successfully
rdsb db details

Now we need so create WordPress deployment and Load Balancer in GCP

Word Press Deployment & Load Balancer
WP deployed in GCP Cluster
Load Balancer

We can also check services using kubectl commands as under

kubectl commands

This will create the deployment and load balancer. In end, we can see the output in browser

WordPress

Thus using Terraform, we have set up Multi Node cluster with Wordpress on Kubernetes & RDS DB in AWS

--

--

Arvind Ramugade

Cloud Professional experienced in BFSI ,Telecom, Insurance domain with fortune 500 clients spread across USA, Europe, Canada, Australia and India.