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:
- 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.
- 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.