🛠️ Lab 11 — Launch, Benchmark, and Store: Cloud Compute Meets Object Storage (50 pts)

Goal: Get hands-on with real cloud VM provisioning, pricing models, and object storage — using only free-tier and no-cost tools — so you can feel the difference between On-Demand, Spot, and GPU compute, and practice storing your results safely in S3, before you ever spend a dollar. Steps:

  1. Create or log in to your AWS account and confirm you're within the AWS Free Tier. Follow the official EC2 getting-started guide to launch a free-tier t2.micro instance (Amazon Linux or Ubuntu).
  2. Once the instance is running, connect to it using standard ssh from your terminal.
  3. Run a simple CPU/memory benchmark on the instance — for example, time how long it takes to compute a large prime sieve in Python, or use a tool like stress-ng (if available) or a basic dd disk-write test. Record wall-clock time and note the instance's vCPU/RAM specs.
  4. In the EC2 Console, open the Spot Request wizard and configure a Spot Instance request for the same instance type: set a maximum price, choose an interruption behavior (stop or terminate), and review the pricing history shown for your instance type/region. Do not actually launch the Spot instance unless you're comfortable staying within Free Tier limits — capturing a screenshot of the configured request and quoted price is sufficient.
  5. Visit the EC2 Spot Instance Advisor and look up the interruption-frequency rating and Spot discount for a GPU family such as G5. Record the numbers you find.
  6. Stop (do not terminate) your t2.micro instance and check the EC2 console to confirm the attached EBS volume is still listed and still incurring storage cost — this is your live demonstration of the "stopped instance ≠ zero billing" trap from the lecture.
  7. Create a private S3 bucket and enable versioning. Upload your benchmark notes/screenshots as objects, then edit and re-upload one file to create a second version. Add a lifecycle rule that transitions objects to Standard-IA after 30 days and expires noncurrent (old) versions after 60 days.
  8. Free GPU alternative/addition: Open a Kaggle Notebook (30 hrs/week free T4 GPU quota) or Google Colab (free T4 tier) and run a short PyTorch training job on CIFAR-10 or Fashion-MNIST for 1–2 epochs. Record the wall-clock training time.
  9. Terminate your EC2 instance (confirm the EBS volume is deleted) and empty/delete your S3 bucket once you've captured your evidence, so you don't leave anything running or billing.
  10. Write up a short comparison (half a page to one page) covering: your t2.micro benchmark results, the Spot price/interruption data you found, the GPU Advisor numbers, your free-tier GPU notebook training time, your S3 versioning/lifecycle configuration, and one paragraph on when you would choose On-Demand vs. Spot vs. a free-tier notebook for a real ML workload.

Deliverables: Submit your written comparison (online text entry or upload) plus screenshots of (a) your running/stopped t2.micro instance, (b) the configured Spot request with quoted price, (c) the EC2 Spot Instance Advisor results for a GPU family, (d) your free-tier GPU notebook training run, and (e) your S3 bucket's versioning + lifecycle rule configuration.