Skip to main content
Nauman Munir
Back to Projects
Case StudyE-commerceManaged KubernetesCloud Networking & DNS Management

AWS Load Balancer Controller - External DNS & Service for PeakPulse Retail

AMJ Cloud Technologies deployed External DNS with a Kubernetes LoadBalancer Service on EKS for PeakPulse Retail, enabling automated Route 53 DNS records for a secure e-commerce microservice.

3 min read

Technologies

AWS EKSAWS Load Balancer ControllerKubernetes ServiceExternal DNSApplication Load BalancerAWS Route 53

Challenges

Manual DNS ManagementLimited Service ScalabilityUnsecured Application Access

Solutions

Automated Route 53 DNSLoadBalancer ServiceSecure ALB Integration

Key Results

Handled high traffic for e-commerce microservice

scalability achievement

Fully automated DNS and LoadBalancer Service setup

automation level

Enhanced access with health checks and secure DNS

security improvement

Deploying External DNS and LoadBalancer Service for PeakPulse Retail

AMJ Cloud Technologies partnered with PeakPulse Retail, an e-commerce company, to enhance their AWS Elastic Kubernetes Service (EKS) cluster by deploying a Kubernetes LoadBalancer Service integrated with External DNS. This project automated Route 53 DNS record creation for a single DNS name (externaldns-k8s-service-demo.peakpulseretail.com) to expose PeakPulse’s frontend microservice using an Application Load Balancer (ALB). The solution replaced manual DNS management, improved scalability, and ensured secure access for their e-commerce platform.

Situation

PeakPulse Retail needed to expose their frontend microservice with a custom DNS name to handle growing customer traffic. Their existing setup relied on manual Route 53 DNS configurations, which were error-prone and time-consuming. AMJ was tasked with automating DNS registration using External DNS and a Kubernetes LoadBalancer Service, ensuring seamless integration with the AWS Load Balancer Controller for secure, scalable access to their e-commerce application.

Task

The objectives were to:

  • Create a Kubernetes Service of type LoadBalancer for the frontend microservice.
  • Annotate the Service with an External DNS hostname (externaldns-k8s-service-demo.peakpulseretail.com) for Route 53 integration.
  • Deploy and verify Kubernetes manifests.
  • Automate Route 53 DNS record creation using External DNS.
  • Test application access via the registered DNS name.
  • Complete the project within one month.

Action

Our team executed the following steps, adhering to AWS and Kubernetes best practices:

Prerequisites

  • Used PeakPulse’s 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

Deploy Frontend Microservice

  • Deployed PeakPulse’s frontend microservice with a ClusterIP Service and Deployment:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: frontend-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: frontend
      template:
        metadata:
          labels:
            app: frontend
        spec:
          containers:
            - name: frontend
              image: nginx:latest
              ports:
                - containerPort: 80
  • Configured a LoadBalancer Service with External DNS annotations:
    apiVersion: v1
    kind: Service
    metadata:
      name: frontend-loadbalancer-service
      annotations:
        external-dns.alpha.kubernetes.io/hostname: externaldns-k8s-service-demo.peakpulseretail.com
        service.beta.kubernetes.io/aws-load-balancer-type: external
        service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
        alb.ingress.kubernetes.io/healthcheck-path: /frontend/index.html
    spec:
      type: LoadBalancer
      selector:
        app: frontend
      ports:
        - port: 80
          targetPort: 80
  • Applied manifests:
    kubectl apply -f manifests/

Deploy and Verify

  • Verified Kubernetes resources:
    kubectl get deploy,pods,svc
  • 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-]+')
  • Confirmed Route 53 record set for externaldns-k8s-service-demo.peakpulseretail.com in the AWS Console.
  • Verified ALB settings in the AWS Console (EC2 > Load Balancers).

Test Application Access

  • Performed DNS resolution test:
    nslookup externaldns-k8s-service-demo.peakpulseretail.com
  • Verified HTTP access to the frontend microservice:
    http://externaldns-k8s-service-demo.peakpulseretail.com/frontend/index.html

Result

The project delivered an automated, scalable solution for PeakPulse Retail:

  • Scalability Achievement: Handled high traffic for PeakPulse’s frontend microservice with an ALB-backed LoadBalancer Service.
  • Automation Level: Fully automated DNS and LoadBalancer Service setup via External DNS and Kubernetes manifests.
  • Security Improvement: Enhanced access with health checks and secure DNS registration.

Technologies Used

  • AWS EKS
  • AWS Load Balancer Controller
  • Kubernetes Service
  • External DNS
  • Application Load Balancer
  • AWS Route 53

Key Takeaways

This case study highlights AMJ Cloud Technologies’ expertise in automating DNS management for PeakPulse Retail’s e-commerce platform. The External DNS integration with a Kubernetes LoadBalancer Service streamlined Route 53 record creation, ensuring scalable and secure 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.