Skip to content

E-Commerce Three-Tier App on EKS with Helm

Level:Advanced
Time:30-60 min
Cost:high
Works locally:No
Cloud creds:Yes
Cleanup:No
Reviewed:2026-05-30
Validation:test -f README.md

README-focused EKS/Helm architecture walkthrough.

Outcome Architecture notes plus validation output
Tools used EKS, Helm, Three Tier App, AWS
Best fit Advanced - 30-60 min
Student workstation Repository files Lab steps AWS account Validation proof
  • Install or review: EKS, Helm, Three Tier App, AWS.
  • Use your own cloud account credentials and keep them out of commits.
  • This project expects cloud resources, so verify budget alerts and cleanup first.
  • Open the safety guide before running commands that create infrastructure.
Cost and credential stance

Cost risk is high. Cloud target: AWS. Cloud credentials needed: Yes. Always use your own account, never commit secrets, and confirm cleanup before creating paid infrastructure.

Use this flow before you run commands:

  1. Read the cost and credential warning above.
  2. Review the validation, troubleshooting, cleanup, and portfolio proof sections below.
  3. Follow the original project guide preserved near the bottom of this page.
  4. Return to the validation and cleanup checks before you capture portfolio evidence.

Run the project validation command before and after meaningful changes:

Terminal window
test -f README.md
  • Run test -f README.md first so local tooling issues are visible early.
  • If a command fails, check tool versions, working directory, and required environment variables.
  • For cloud failures, confirm account identity, region, quotas, and least-privilege IAM.

No dedicated cleanup command was detected in the project README. Treat this as a warning: before provisioning anything, write down the exact delete, destroy, or rollback steps for your environment.

  • Validation command output: test -f README.md
  • Screenshot or terminal proof: Architecture notes plus validation output
  • Notes explaining what changed, what failed, and how you fixed it
  • Cleanup evidence, especially for cloud or Kubernetes resources

The original README content is preserved here for lab-specific commands and context. Headings are intentionally demoted so the page outline stays focused on the standard lab flow.

External image reference Source image

In the dynamic landscape of software development, architects and developers constantly seek robust design patterns that ensure scalability, maintainability, and efficient resource utilization. One such time-tested approach is the 3-tier architecture, a well-structured model that divides an application into three interconnected layers. This architectural style has been a cornerstone for building scalable and resilient applications for decades.

Understanding the Basics:

The 3-tier architecture is composed of three primary layers, each with distinct responsibilities:

  1. Presentation Layer:
  • Also known as the user interface layer, this tier is responsible for interacting with end-users.

  • It encompasses the user interface components, such as web pages, mobile apps, or any other interface through which users interact with the application.

  • The goal is to provide a seamless and intuitive user experience while keeping the presentation logic separate from the business logic.

2. Application (or Business Logic) Layer:

  • Positioned between the presentation and data layers, the application layer contains the business logic that processes and manages user requests.

  • It acts as the brain of the application, handling tasks such as data validation, business rules implementation, and decision-making.

  • Separating the business logic from the presentation layer promotes code reusability, maintainability, and adaptability to changes.

3. Data Layer:

  • The data layer is responsible for managing and storing the application’s data.

  • It includes databases, data warehouses, or any other data storage solutions.

  • This layer ensures data integrity, security, and efficient data retrieval for the application.

  • By isolating data-related operations, developers can optimize data access and storage mechanisms independently of the rest of the application.

Benefits of 3-Tier Architecture:

  1. Scalability:
  • The modular nature of 3-tier architecture allows for independent scaling of each layer.

  • This enables efficient resource allocation, ensuring that specific components can be scaled based on demand without affecting the entire application.

2. Maintainability:

  • With clear separation of concerns, developers can make changes to one layer without impacting others.

  • This facilitates easier debugging, updates, and maintenance, as modifications can be confined to the relevant layer.

3. Flexibility and Adaptability:

  • The architecture accommodates technology changes and updates without disrupting the entire system.

  • New technologies can be integrated into specific layers, allowing the application to evolve over time.

  1. kubectl — A command line tool for working with Kubernetes clusters. For more information, see Installing or updating kubectl. https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html

  2. eksctl — A command line tool for working with EKS clusters that automates many individual tasks. For more information, see Installing or updating. https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html

  3. AWS CLI — A command line tool for working with AWS services, including Amazon EKS. For more information, see Installing, updating, and uninstalling the AWS CLI https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html in the AWS Command Line Interface User Guide.

  4. After installing the AWS CLI, I recommend that you also configure it. For more information, see Quick configuration with aws configure in the AWS Command Line Interface User Guide. https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config

Terminal window
eksctl create cluster \
--name your-cluster-name \
--region your-region \
--nodegroup-name your-nodegroup-name \
--node-type t3.small \
--nodes 2 \
--nodes-min 1 \
--nodes-max 3

This will create an EKS Cluster along with the node-group

External image reference Source image
  1. Export Cluster Name and assign oidc_id
Terminal window
export cluster_name=<CLUSTER-NAME>
oidc_id=$(aws eks describe-cluster --name $cluster_name --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)

2. Check if there is an IAM OIDC provider configured already

Terminal window
aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4

3. If not, run the below command.

Terminal window
eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
  1. Download IAM policy.
Terminal window
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.5.4/docs/install/iam_policy.json

2. Create IAM Policy.

Terminal window
aws iam create-policy \
--policy-name AWSLoadBalancerControllerIAMPolicy \
--policy-document file://iam_policy.json
External image reference Source image

3. Create IAM Role.

Terminal window
eksctl create iamserviceaccount \
--cluster=<your-cluster-name> \
--namespace=kube-system \
--name=aws-load-balancer-controller \
--role-name AmazonEKSLoadBalancerControllerRole \
--attach-policy-arn=arn:aws:iam::<your-aws-account-id>:policy/AWSLoadBalancerControllerIAMPolicy \
--approve
External image reference Source image
  1. Add helm repo.
Terminal window
helm repo add eks https://aws.github.io/eks-charts

2. Update the repo.

Terminal window
helm repo update eks
External image reference Source image

3. Install the chart.

Terminal window
helm install aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=<your-cluster-name> \--set serviceAccount.create=false --set serviceAccount.name=aws-load-balancer-controller --set region=<region> --set vpcId=<your-vpc-id>

4. Verify that the deployments are running.

Terminal window
kubectl get deployment -n kube-system aws-load-balancer-controller
External image reference Source image
  1. The Amazon EBS CSI plugin requires IAM permissions to make calls to AWS APIs on your behalf.

  2. Create an IAM role and attach a policy. AWS maintains an AWS managed policy or you can create your own custom policy. You can create an IAM role and attach the AWS managed policy with the following command. Replace my-cluster with the name of your cluster. The command deploys an AWS CloudFormation stack that creates an IAM role and attaches the IAM policy to it.

Terminal window
eksctl create iamserviceaccount \
--name ebs-csi-controller-sa \
--namespace kube-system \
--cluster <YOUR-CLUSTER-NAME> \
--role-name AmazonEKS_EBS_CSI_DriverRole \
--role-only \
--attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--approve
External image reference Source image

3. Run the following command. Replace with the name of your cluster, with your account ID.

Terminal window
eksctl create addon --name aws-ebs-csi-driver --cluster <YOUR-CLUSTER-NAME> --service-account-role-arn arn:aws:iam::<AWS-ACCOUNT-ID>:role/AmazonEKS_EBS_CSI_DriverRole --force
External image reference Source image
  1. Initially Clone the GitHub Repo:
Terminal window
git clone https://github.com/uniquesreedhar/RobotShop-Project.git

2. Then Navigate to the path where chart.yaml exists

Terminal window
cd RobotShop-Project/EKS/helm

3. Create a namespace and then install the helm chart.

Terminal window
kubectl create ns robot-shop
helm install robot-shop --namespace robot-shop .
External image reference Source image

4. Ensure all the pods are running if not troubleshoot the issues.

External image reference Source image
Terminal window
cd /RobotShop-Project/EKS/helm
kubectl apply -f ingress.yaml

This will create a Load Balancer on the AWS console.

External image reference Source image

Paste the DNS-name on your favourite browser and access the application.

External image reference Source image

Get Register and login into the application.

External image reference Source image

Rate the Artificial Intelligence.

External image reference Source image

Add to cart the robots.

External image reference Source image

Checkout them.

External image reference Source image

Select your Location and then calculate the price and confirm the order.

External image reference Source image

Then place the Order.

External image reference Source image

And pay the amount .

External image reference Source image

Congratulations… Your Order has been Successfully placed.. :)

Thank you for taking the time to work on this tutorial/labs. Let me know what you thought!

Ensure to follow me on GitHub. Please star/share this repository
Section titled “Ensure to follow me on GitHub. Please star/share this repository”
External image reference Source image
Use the guide first.

The full learning flow stays on this page. Open GitHub only when a step asks you to inspect code, fork the lab, or download source assets.