Mohan Golla
5 min readJan 8, 2024

HumanGov: Deployment Of HumanGov SaaS Application on AWS Elastic Kubernetes Service (EKS) Using a Route 53 Domain, ALB Ingress, and SSL Endpoint Powered by AWS Certificate Manager.

In this comprehensive project, I tackled the challenge of deploying the HumanGov SaaS application using the Amazon Web Services (AWS) platform, specifically focusing on Elastic Kubernetes Service (EKS) for orchestration, along with Route 53 for domain management, Application Load Balancer (ALB) for ingress, and AWS Certificate Manager for SSL endpoint encryption.

My journey commenced with the foundational work of setting up the AWS VPC and EKS cluster. I proceeded with the installation of kubectl and eksctl on Cloud 9, leveraging these tools to interact with the EKS cluster.

The application was containerized using Docker, which involved writing Dockerfiles and optimizing the build process for the HumanGov app. Once containerized, the images were pushed to the Amazon Elastic Container Registry (ECR), ensuring they were ready for deployment.

With the ECR set, I crafted Kubernetes deployment and service manifests. This allowed me to define the desired state of the application, including the number of pods, resource limits, and the necessary environment variables.

For domain management and traffic routing, I configured a Route 53 hosted zone and records. This was integral for domain name resolution and providing a user-friendly URL for the application.

To manage incoming traffic, I set up an ALB and configured ingress resources. This step was crucial for directing traffic to the correct services within the EKS cluster and for enabling SSL termination at the ALB level.

I utilized AWS Certificate Manager to provision and manage the SSL certificate, ensuring encrypted and secure communication to and from the application.

The outcome was a highly available, secure, and scalable HumanGov SaaS application on AWS EKS, accessible via a secure domain. This deployment not only showcased the efficiency of Kubernetes on AWS but also the robustness of AWS’s networking and security services.

Key takeaways from this project include a deepened understanding of Kubernetes on AWS, domain and traffic management, SSL encryption, containerization.

Below are few screenshots:

HumanGov Logo

Creating a Kubernetes Cluster

Creating a user for creating a Elastic Kubernetes Service(EKS)

Terraform Apply for creating the infrastructure for the state of California

Creating EKS Cluster

EKS Cluster is ready

EKS Cluster in AWS

Configuring EKS with AWS Cloud 9

Creating a IAM role for the EKS Cluster

Load Balance created

Created a public repository in Amazon Elastic Container Registry

Push commands for humangov-app

Docker push

Images pushed to humangov-app

Kubernestes apply for the state of California

Domain Registration on Route 53

Domain registered

Created a certificate in AWS Certficate Manager

Route 53 DNS registration

AWS Certificate Manager (ACM) certificate issued

Kubectl Ingress apply for the state of California

Load balancer is created for high availability

Record created for humangovmg for the state of California

HumanGov application Up and running for the state of California

Secured connection

Added a record in the application for the state of California

Terraform Apply for the state of Florida

Kubectl apply for the state of Florida

Kubectl Ingress apply for the state of Florida

Record created for humangovmg for the state of Florida

HumanGov application Up and running for the state of Florida

Secured connection

We can see both states — California and Florida whose infrastructure is provisioned, and they are independent of each other. Like this we can provision infrastructure for all 50 states in minutes which is Amazing!!!

Mohan Golla
Mohan Golla

No responses yet