AWS for the Bootcamp Grad

Kerry Sheldon
3 min readMay 6, 2018

--

At the bootcamp I attended, we deployed our Rails apps to Heroku and they magically appeared in the wild. The ridiculous simplicity of a three command deployment process was exactly what we needed. At that point in our learning process, we simply didn’t need to fully understand application servers, web servers and filesystems.

Turing’s curriculum is pretty incredible. Over the course of seven months, students without any prior technical background become employment-ready as web developers. We built Rails app after Rails app, layering on new concepts as the weeks wore on. That experience left me feeling pretty comfortable in my IDE.

But, as a bootcamp grad, in the wild myself, the AWS ecosystems is the place I feel most exposed on-the-job. I don’t feel like an imposter. I’m fortunate to work at a place where being known as a bootcamp grad doesn’t seem to be a thing. Also, I’ve never conflated someone’s lack of experience with a lack of ability, and I extend that same courtesy to myself.

That said, I think there’s a place in the market for a “continuing education” program for bootcamp grads — a place where our bootcamp knowledge gaps get backfilled. For me, the infrastructure gaps are some of the widest and deepest. And, for better or worse, there simply isn’t a lot of opportunity to mess around with your application’s infrastructure on-the-job.

To that end, this series of blog posts consists of a set of exercises I put together to get more comfortable with some of the AWS services my company utilizes. While these exercises “do things”, they make no attempt to do things “the right way” or “the best way”. These are simply exercises I used to help build mental frameworks for what these services are and do. To be clear, they are not tutorials.

The extensive use of acronyms and unfamiliar terminology throughout the AWS ecosystem made the platform feel unnecessarily inaccessible to me. While jargon is exclusionary by design, acronyms are the worst offenders. Acronyms don’t even provide an opportunity to infer meaning based on an understanding of the language. To that end, these exercises are meant to build understanding through practice and exposure, with a bit of terminology coming along for the ride.

These exercises should be accessible to someone with a bootcamp-like background and no prior exposure to these concepts. They are designed to be done in sequence and are deliberately repetitious (I believe in deliberate practice). You’ll need an AWS account to get started.

Part 1 — AWS EC2 (with a bit of S3 and RDS)

  1. Using an EC2 Instance to Host a Static Webpage
  2. Using an EC2 Instance to Host a Static Webpage with Content from Github
  3. Using an EC2 Instance to Host a Static Webpage with Content from S3
  4. Using EC2 Instances to Host a Static Webpage behind a Load Balancer (NEW)
  5. Using an EC2 Instance to Run a Rails App Built on the Instance
  6. Deploying a Rails App to an EC2 Instance Using Capistrano

Part 2 — AWS S3

  1. Hosting a Static Website on S3
  2. Hosting a Static Website on S3 with Content from Another Bucket
  3. Hosting a Static Website on S3 with Content From Another Bucket — Using AWS SDK and Cognito
  4. Adding Objects to a S3 Bucket with Cross Region Replication (NEW)
  5. Adding Objects to a Bucket With Versioning Enabled (NEW)

Part 3 — AWS DynamoDB

  1. Get/Add Items to DynamoDB Tables (NEW)
  2. Using DynamoDB Streams to Capture Changes (coming soon)

Future Parts to include exercises for SQS, SNS, and Lambda.

--

--

Kerry Sheldon

Software Developer. Graduate of Turing School of Software and Design.