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!!!