# AWS Compute Services & Use Cases

AWS offers a variety of **compute services** to meet different workload requirements, providing **scalability, flexibility, and cost optimization**. SecureCart’s **e-commerce platform** requires a combination of **EC2 instances, containerized workloads, and serverless computing** to optimize performance, reduce costs, and scale effectively.

✔ **Why does SecureCart need AWS compute services?**

* **Supports dynamic workloads, including traffic spikes and seasonal demand.**
* **Enables cost-efficient, on-demand, and auto-scaling infrastructure.**
* **Facilitates containerized workloads and event-driven applications.**
* **Ensures high availability and performance with auto-scaling and load balancing.**

***

### **🔹 Step 1: Overview of AWS Compute Services**

✔ **AWS provides multiple compute services optimized for different workloads:**

| **AWS Compute Service**                     | **Best For**                                    | **Key Features**                                                     | **SecureCart Use Case**                                                |
| ------------------------------------------- | ----------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| **Amazon EC2**                              | General-purpose workloads with full OS control. | Choose from various instance types, auto-scale, optimize CPU/memory. | **Hosts SecureCart’s web application backend.**                        |
| **Amazon EC2 Auto Scaling**                 | Dynamically adjusts instance count.             | Scale based on CPU, memory, or network traffic.                      | **Automatically scales checkout services during flash sales.**         |
| **AWS Lambda**                              | Serverless compute for event-driven workloads.  | Runs code without managing infrastructure, scales automatically.     | **Processes order confirmations and sends transactional emails.**      |
| **AWS Fargate**                             | Serverless compute for containerized workloads. | Runs containers without managing underlying servers.                 | **Manages SecureCart’s search and cart microservices.**                |
| **Amazon ECS (Elastic Container Service)**  | Orchestrates Docker containers.                 | Managed container service, integrates with EC2 and Fargate.          | **Deploys SecureCart’s microservices with high availability.**         |
| **Amazon EKS (Elastic Kubernetes Service)** | Runs Kubernetes workloads.                      | Fully managed Kubernetes clusters for large-scale apps.              | **Hosts SecureCart’s AI-driven recommendation engine.**                |
| **AWS Batch**                               | Runs batch processing jobs efficiently.         | Dynamically provisions compute resources.                            | **Processes nightly analytics on customer purchasing trends.**         |
| **AWS Elastic Beanstalk**                   | Simplified application deployment.              | Automates provisioning, scaling, and monitoring.                     | **Deploys SecureCart’s internal tools with minimal overhead.**         |
| **AWS Outposts**                            | Runs AWS infrastructure on-premises.            | Hybrid cloud with AWS-managed hardware.                              | **Extends SecureCart’s compute power to data centers for compliance.** |

✅ **Best Practices:**\
✔ **Use EC2 for traditional workloads requiring full OS control.**\
✔ **Leverage Lambda for event-driven applications with minimal overhead.**\
✔ **Use Fargate for managing containers without provisioning EC2 instances.**\
✔ **Implement Auto Scaling to dynamically adjust compute capacity.**

***

### **🔹 Step 2: Choosing Between EC2, Containers, and Serverless Compute**

✔ **SecureCart must select the right compute model based on performance, scalability, and cost.**

| **Compute Model**                | **Best For**                                      | **Advantages**                                       | **SecureCart Use Case**                                            |
| -------------------------------- | ------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------ |
| **EC2 Instances**                | Long-running workloads requiring full OS control. | Fine-tuned performance, full control over instances. | **Hosts SecureCart’s order processing and database servers.**      |
| **Containers (ECS/EKS/Fargate)** | Microservices and highly scalable workloads.      | Optimized resource utilization, auto-scaling.        | **Deploys SecureCart’s product search and recommendation engine.** |
| **Serverless (Lambda)**          | Event-driven and short-lived tasks.               | Fully managed, cost-efficient, automatic scaling.    | **Processes order confirmations and payment notifications.**       |

✅ **Best Practices:**\
✔ **Use EC2 for persistent workloads that require deep customization.**\
✔ **Run microservices in containers for efficient resource utilization.**\
✔ **Use Lambda for lightweight, asynchronous workloads.**

***

### **🔹 Step 3: Scaling Compute with Auto Scaling & Load Balancing**

✔ **Why?** – SecureCart must **ensure high availability and responsiveness** during peak traffic loads.

✔ **AWS Scaling Strategies:**

| **Scaling Approach**        | **Purpose**                                     | **SecureCart Implementation**                    |
| --------------------------- | ----------------------------------------------- | ------------------------------------------------ |
| **Amazon EC2 Auto Scaling** | Automatically scales instances based on demand. | **Expands checkout servers during flash sales.** |
| **AWS Lambda Auto Scaling** | Adjusts execution environment dynamically.      | **Handles sudden spikes in order processing.**   |
| **ECS & EKS Auto Scaling**  | Adjusts container workloads dynamically.        | **Scales SecureCart’s product search services.** |

✔ **AWS Load Balancing Strategies:**

| **Load Balancer Type**              | **Purpose**                               | **SecureCart Implementation**                               |
| ----------------------------------- | ----------------------------------------- | ----------------------------------------------------------- |
| **Application Load Balancer (ALB)** | Routes HTTP/S traffic to microservices.   | **Balances traffic between checkout and catalog services.** |
| **Network Load Balancer (NLB)**     | Handles TCP/UDP traffic with low latency. | **Optimizes SecureCart’s real-time inventory updates.**     |

✅ **Best Practices:**\
✔ **Use ALB for web applications and microservices.**\
✔ **Enable Auto Scaling to dynamically add/remove instances based on demand.**\
✔ **Leverage NLB for high-throughput, latency-sensitive applications.**

***

### **🔹 Step 4: Cost-Optimization Strategies for Compute**

✔ **Why?** – SecureCart **optimizes compute costs by choosing the right pricing model and instance types.**

✔ **AWS Compute Cost-Optimization Strategies:**

| **Optimization Method**          | **Purpose**                                             | **SecureCart Implementation**                        |
| -------------------------------- | ------------------------------------------------------- | ---------------------------------------------------- |
| **Spot Instances**               | Low-cost compute for non-critical workloads.            | **Processes customer behavior analytics.**           |
| **Savings Plans**                | Commit to usage for cost savings.                       | **Optimizes SecureCart’s persistent EC2 workloads.** |
| **AWS Graviton-based Instances** | ARM-based instances with better performance per dollar. | **Runs SecureCart’s web application backend.**       |

✅ **Best Practices:**\
✔ **Use Spot Instances for batch processing and fault-tolerant applications.**\
✔ **Leverage Savings Plans for predictable compute workloads.**\
✔ **Deploy Graviton-based instances (M7g, C7g) for better price-performance ratio.**

***

### **🔹 Step 5: Monitoring & Performance Tuning**

✔ **Why?** – SecureCart **tracks compute performance to ensure high availability and efficiency.**

✔ **AWS Monitoring Tools for Compute Optimization:**

| **Monitoring Tool**       | **Purpose**                                  | **SecureCart Use Case**                                          |
| ------------------------- | -------------------------------------------- | ---------------------------------------------------------------- |
| **Amazon CloudWatch**     | Tracks CPU, memory, and network usage.       | **Monitors EC2 and container performance.**                      |
| **AWS Compute Optimizer** | Recommends right-sized instance types.       | **Suggests switching from M5 to M6g for better performance.**    |
| **AWS X-Ray**             | Traces request latency across microservices. | **Analyzes slow API responses in SecureCart’s checkout system.** |

✅ **Best Practices:**\
✔ **Enable CloudWatch Alarms for high CPU/memory usage.**\
✔ **Use Compute Optimizer to right-size instances for cost efficiency.**\
✔ **Monitor Lambda execution times to optimize performance.**

***

## **🚀 Summary**

✔ **Use EC2 for full OS control, containers for scalable microservices, and Lambda for event-driven workloads.**\
✔ **Implement Auto Scaling to dynamically adjust compute resources.**\
✔ **Optimize costs using Spot Instances, Savings Plans, and Graviton-based instances.**\
✔ **Leverage AWS monitoring tools (CloudWatch, X-Ray, Compute Optimizer) for performance tuning.**

#### **Scenario:**

SecureCart must **choose the best AWS compute service** for different workloads, ensuring **performance, scalability, and cost-efficiency**.

#### **Key Learning Objectives:**

✅ Understand **EC2, AWS Fargate, Lambda, and AWS Batch**\
✅ Learn **when to use on-demand vs. reserved vs. spot instances**\
✅ Explore **compute-intensive workloads with Amazon EMR & AWS Batch**

#### **Hands-on Labs:**

1️⃣ **Deploy an EC2 Instance & Benchmark Performance**\
2️⃣ **Run a Batch Processing Job Using AWS Batch**\
3️⃣ **Compare AWS Lambda & AWS Fargate for Event-Driven Workloads**

🔹 **Outcome:** SecureCart **selects the best AWS compute options for each business requirement**.
