CS2680 Modern AI Systems: Agents and System Optimizations
AWS: where Assignment 1 gets deployed

AWS

Assignment 1 asks you to deploy the agent console, not just run it on your laptop, and AWS is where it goes. A small EC2 instance is the expected path; anything on AWS that serves your app and can run Claude Code is acceptable.

Register your account, then register it with the course

Two steps, both in week one:

  1. Create an AWS account at aws.amazon.com if you do not already have one. New accounts sit inside the AWS Free Tier, which covers a small instance for far more hours than this assignment needs.
  2. Add your name, email, and AWS account ID to the course sheet — the URL will be posted in the home page announcement. That is how the course knows which accounts belong to the class, and it is the list AWS issues course credit against. TBD: the amount, and when it lands.

Your account ID is the twelve-digit number in the console's account menu, or:

aws sts get-caller-identity --query Account --output text
Do this before Assignment 1 opens on Sep 2. Account verification can take a day, a card is required even for the free tier, and the deadline is not the moment to discover that.

What Assignment 1 actually needs

The console is a web app plus one boundary that shells out to claude -p, so the machine requirements are modest — Claude Code wants a current Linux and 4 GB of RAM, and the model runs somewhere else entirely. A t3.small or t3.medium in the region nearest you is plenty; there is no reason to rent a GPU for this.

  • One region, and remember which. Instances, security groups, and key pairs are all per-region, and half of all “my instance disappeared” reports are a console pointed at the wrong one.
  • Keep the key pair. A lost .pem cannot be re-downloaded; you rebuild the instance instead.
  • Install Claude Code on the instance the same way you did locally, and log in there — the browser flow over SSH gives you a code to paste back, which the Claude Code page covers. Sessions on the instance count as sessions you submit, so archive that machine's ~/.claude/projects/ too.
  • Stop the instance when you are not using it. Stopped instances cost you only their disk.

Two things to get right before you deploy

Your console is remote code execution as a service. claude -p on your instance can read files and run commands, and anyone who can reach the page can make it do so. Put something in front of it — a password, a token, or a security group that admits only your own IP — and keep credentials off the instance and out of the agent's workspace. An open agent endpoint on a public IP is the kind of mistake this course wants you to understand, not make.
Set a billing alarm before you deploy, not after. AWS Budgets will email you at a threshold you choose; pick a number that would annoy you and set it now. The failure mode is not a big instance, it is a small one left running for a month, or an agent loop that keeps calling a paid API.

Two more habits worth forming here, because Assignment 2 grades the second one:

  • Do not work as the root user. Create an IAM user (or use IAM Identity Center) with what you need, turn on MFA for root, and leave root alone.
  • Never paste an access key into a session or commit one. Keys reach the instance through an environment variable, an instance role, or a .env file that is in your .gitignore — not through the chat. Everything Claude reads or prints lands in the transcript you hand in, which is why keeping secrets out of your sessions is a submission requirement and not just advice.