Skip to main content
Nauman Munir
Back to Projects
PortfolioManaged KubernetesMUlti Cloud Strategy & Architecture

AWS RDS and Microservice on EKS for ShopSphere

AMJ Cloud Technologies deployed a managed AWS RDS MySQL database and user management microservice on an AWS EKS cluster for ShopSphere Solutions, an e-commerce startup, ensuring scalable, secure, and automated user data management with Kubernetes ExternalName Service and NodePort access.

4 min read
AWS RDS and Microservice on EKS for ShopSphere

Technologies

AWS EKSAWS RDSMySQLKubernetesMicroservices

Challenges

MySQL Pod Management ComplexityEBS CSI OverheadScalability LimitationsDatabase Maintenance

Solutions

Managed DatabaseAutomationScalabilityMicroservices Architecture

Key Results

Fully automated RDS and microservice deployment

deployment automation

Reduced maintenance with managed RDS

database management

Supports up to 100,000 user accounts

scalability

Reduced from weeks to hours

setup time reduction

Deploying RDS-Backed Microservice on EKS for ShopSphere

AMJ Cloud Technologies delivered a scalable, managed AWS RDS MySQL database and user management microservice on an Amazon Elastic Kubernetes Service (EKS) cluster for ShopSphere Solutions, an e-commerce startup. By leveraging AWS RDS for managed database services, Kubernetes ExternalName Service, and a NodePort-based microservice, we provided an automated, secure, and reliable solution for their user data management platform, addressing challenges with MySQL pod complexity, EBS CSI overhead, and scalability.

Situation

ShopSphere Solutions, an e-commerce startup specializing in online retail, needed a robust and low-maintenance database solution to manage user accounts and authentication for their growing platform. Managing MySQL as a pod with the EBS CSI Driver was complex, requiring manual storage provisioning, backup management, and scaling configurations, which hindered their agility. AMJ Cloud Technologies was tasked with deploying a managed AWS RDS MySQL database integrated with a user management microservice on EKS, ensuring seamless operation, scalability, and reduced maintenance for their e-commerce platform.

Task

The objective was to implement a Kubernetes-based infrastructure with:

  • An AWS RDS MySQL database for managed, scalable, and secure user data storage.
  • A Kubernetes ExternalName Service to connect to the RDS database.
  • A User Management Microservice Deployment with secure credentials and NodePort access.
  • Automated deployment using Kubernetes manifests and API validation with Postman.
  • Security configurations for RDS access within the EKS VPC.
  • Completion within three weeks to align with ShopSphere’s platform launch.

Action

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

Setting Up AWS RDS

  • VPC Review: Confirmed the EKS cluster VPC (eksctl-eksdemo1-cluster/VPC).
  • DB Security Group: Created eks_rds_db_sg with inbound rules for MySQL (port 3306, source: 0.0.0.0/0 for testing).
  • DB Subnet Group: Created eks-rds-db-subnetgroup with subnets in us-east-1a and us-east-1b.
  • RDS Database Creation:
    • Configured a MySQL 5.7.22 instance (usermgmtdb) with Free Tier template.
    • Set master username (dbadmin), password, and VPC settings.
    • Enabled public access for troubleshooting and assigned the security group eks-rds-db-securitygroup.

Creating Kubernetes Manifests

  • ExternalName Service Example (01-MySQL-externalName-Service.yml):
    apiVersion: v1
    kind: Service
    metadata:
      name: mysql
    spec:
      type: ExternalName
      externalName: usermgmtdb.cxojydmxwly6.us-east-1.rds.amazonaws.com
  • User Management Microservice Example (02-UserManagementMicroservice-Deployment-Service.yml):
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: usermgmt-microservice
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: usermgmt-restapp
      template:
        spec:
          initContainers:
            - name: init-db
              image: busybox:1.31
              command: ["sh", "-c", "while ! nc -z mysql 3306; do sleep 1; done;"]
          containers:
            - name: usermgmt-restapp
              env:
                - name: DB_USERNAME
                  value: "dbadmin"
                - name: DB_NAME
                  value: "usermgmt"
  • NodePort Service Example (03-UserManagement-Service.yml):
    apiVersion: v1
    kind: Service
    metadata:
      name: usermgmt-restapp-service
    spec:
      type: NodePort
      ports:
        - port: 8095
          nodePort: 31231
      selector:
        app: usermgmt-restapp
  • Secret Example (04-Kubernetes-Secrets.yml):
    apiVersion: v1
    kind: Secret
    metadata:
      name: mysql-db-password
    type: Opaque
    data:
      db-password: ZGJwYXNzd29yZDEx

Deploying and Testing

  • Connected to RDS and created the usermgmt schema:
    kubectl run -it --rm --image=mysql:latest --restart=Never mysql-client -- mysql -h usermgmtdb.cxojydmxwly6.us-east-1.rds.amazonaws.com -u dbadmin -pdbpassword11
    create database usermgmt;
    show schemas;
  • Applied manifests:
    kubectl apply -f kube-manifests/
  • Verified deployment:
    kubectl get pods
    kubectl logs -f <usermgmt-pod-name>
    kubectl get svc
  • Tested the microservice:
    curl http://<EKS-WorkerNode-Public-IP>:31231/usermgmt/health-status
  • Used Postman with the imported collection for API testing (Health Status, Create User, etc.), configured with url=http://<EKS-WorkerNode-Public-IP>:31231.

Cleanup

  • Removed all resources:
    kubectl delete -f kube-manifests/

Result

AMJ Cloud Technologies delivered a robust solution for ShopSphere Solutions:

  • Deployment Automation: Fully automated RDS and microservice deployment, reducing setup time from weeks to hours.
  • Database Management: Eliminated maintenance overhead with managed RDS MySQL.
  • Scalability: Supported up to 100,000 user accounts with RDS and microservices.
  • Security and Compliance: Ensured secure access with encrypted RDS connections and Kubernetes Secrets.

Technologies Used

  • AWS EKS
  • AWS RDS
  • MySQL
  • Kubernetes
  • Microservices

Architectural Diagram

Need a Similar Solution?

I can help you design and implement similar cloud infrastructure and DevOps solutions for your organization.