AWS Load Balancer Controller - Ingress Groups for VividCart Solutions
AMJ Cloud Technologies deployed Ingress Groups with the AWS Load Balancer Controller on EKS for VividCart Solutions, merging multiple Ingress resources into a single ALB for secure e-commerce microservices.
Technologies
Challenges
Solutions
Key Results
Unified high-traffic microservices under a single ALB
scalability achievement
Fully automated Ingress and DNS setup
automation level
Enforced HTTPS with ACM certificates and health checks
security improvement
Deploying Ingress Groups for VividCart Solutions
AMJ Cloud Technologies partnered with VividCart Solutions, an e-commerce company, to enhance their AWS Elastic Kubernetes Service (EKS) cluster by implementing the Ingress Groups feature of the AWS Load Balancer Controller. This project consolidated multiple Ingress resources for VividCart’s microservices (frontend, backend, and default interfaces) into a single Application Load Balancer (ALB), reducing overhead and simplifying management. Integrated with External DNS and Route 53, the solution ensured secure, scalable access with HTTPS redirection, replacing multiple ALBs and manual DNS configurations.
Situation
VividCart Solutions needed to streamline their e-commerce platform’s networking infrastructure. Their existing setup used separate Ingress resources, each creating its own ALB, leading to increased costs and management complexity. AMJ was tasked with using Ingress Groups to merge three Ingress resources (for /frontend, /backend, and default paths) into a single ALB, automating DNS registration for ingress-groups-demo.vividcartsolutions.com and enforcing HTTPS for secure access.
Task
The objectives were to:
- Configure three Ingress manifests with Ingress Group annotations to merge into a single ALB.
- Assign group orders to prioritize routing (
frontend: 10,backend: 20,default: 30). - Deploy and verify Kubernetes manifests for microservices and Ingress resources.
- Automate Route 53 DNS record creation using External DNS.
- Enforce HTTPS redirection and verify health checks.
- Test application access via the unified DNS name (
ingress-groups-demo.vividcartsolutions.com). - Complete the project within one month.
Action
Our team executed the following steps, adhering to AWS and Kubernetes best practices:
Prerequisites
- Used VividCart’s existing EKS cluster (
ecommerce-cluster, version 1.31) with the AWS Load Balancer Controller (v2.8.0) installed:helm install load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=ecommerce-cluster --set image.tag=v2.8.0 - Installed External DNS on the EKS cluster:
helm install external-dns external-dns/external-dns -n kube-system --set provider=aws --set aws.region=us-east-1
Configure IngressClass
- Used the existing default IngressClass:
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb-ingress-class annotations: ingressclass.kubernetes.io/is-default-class: "true"
Deploy Microservices
- Deployed VividCart’s microservices (frontend, backend, default) with NodePort Services:
apiVersion: v1 kind: Service metadata: name: frontend-service annotations: alb.ingress.kubernetes.io/healthcheck-path: /frontend/index.html spec: type: NodePort ports: - port: 80 - Applied similar configurations for
backend-service(/backend/index.html) anddefault-service(/index.html) using filesfrontend-deployment.yaml,backend-deployment.yaml, anddefault-deployment.yaml.
Configure Ingress with Group Annotations
- Configured three Ingress manifests with Ingress Group annotations:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: frontend-ingress annotations: alb.ingress.kubernetes.io/load-balancer-name: ecommerce-ingress alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]' alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:<account-id>:certificate/<certificate-id> alb.ingress.kubernetes.io/ssl-redirect: "443" alb.ingress.kubernetes.io/healthcheck-protocol: HTTP alb.ingress.kubernetes.io/healthcheck-interval-seconds: "15" alb.ingress.kubernetes.io/healthcheck-timeout-seconds: "5" alb.ingress.kubernetes.io/success-codes: "200" alb.ingress.kubernetes.io/healthy-threshold-count: "2" alb.ingress.kubernetes.io/unhealthy-threshold-count: "2" external-dns.alpha.kubernetes.io/hostname: ingress-groups-demo.vividcartsolutions.com alb.ingress.kubernetes.io/group.name: ecommerce.web alb.ingress.kubernetes.io/group.order: "10" spec: ingressClassName: alb-ingress-class rules: - http: paths: - path: /frontend pathType: Prefix - Configured similar Ingress manifests for
backend-ingress(group order: 20, path:/backend) anddefault-ingress(group order: 30, default backend) in filesfrontend-ingress.yaml,backend-ingress.yaml, anddefault-ingress.yaml. - Applied manifests:
kubectl apply -R -f manifests/
Deploy and Verify
- Verified Kubernetes resources:
kubectl get ingress kubectl get deploy,pods,svc - Confirmed three Ingress resources share the same ALB address.
- Checked External DNS logs for Route 53 record creation:
kubectl logs -f $(kubectl get po -n kube-system | egrep -o 'external-dns[A-Za-z0-9-]+') - Verified Route 53 record set for
ingress-groups-demo.vividcartsolutions.comin the AWS Console. - Confirmed ALB routing rules for
/frontend,/backend, and default backend in the AWS Console (EC2 > Load Balancers).
Test Application Access
- Performed DNS resolution test:
nslookup ingress-groups-demo.vividcartsolutions.com - Verified HTTPS access (HTTP redirects to HTTPS):
https://ingress-groups-demo.vividcartsolutions.com/frontend/index.html https://ingress-groups-demo.vividcartsolutions.com/backend/index.html https://ingress-groups-demo.vividcartsolutions.com/
Result
The project delivered a streamlined, secure solution for VividCart Solutions:
- Scalability Achievement: Unified high-traffic microservices under a single ALB, reducing overhead.
- Automation Level: Fully automated Ingress Group and DNS setup via External DNS and Kubernetes manifests.
- Security Improvement: Enforced HTTPS with ACM certificates, health checks, and restricted IAM permissions.
Technologies Used
- AWS EKS
- AWS Load Balancer Controller
- Kubernetes Ingress
- External DNS
- Application Load Balancer
- AWS Route 53
- AWS Certificate Manager
Key Takeaways
This case study highlights AMJ Cloud Technologies’ expertise in optimizing VividCart Solutions’ e-commerce platform with Ingress Groups. Consolidating multiple Ingress resources into a single ALB simplified management, while External DNS and Route 53 integration ensured secure, scalable access, offering a model for similar industries.
Need a Similar Solution?
I can help you design and implement similar cloud infrastructure and DevOps solutions for your organization.