Book: Amazon Web Services In Action

A Book On Building Fast, Scalable, And Highly Available Apps On AWS

Posted by Ryan S. Brown on Tue, Mar 29, 2016
In Book Review
Tags: javascript, nodejs, book, aws, vpc, cloudformation, opsworks

Following my review of Serverless Patterns of Modern Application Design, I just finished Amazon Web Services in Action by Michael and Andreas Wittig. It’s available in e-book and dead tree edition from Manning.

I’ve got two free copies to raffle off, and there are two ways to win.

  1. Tweet about it. Mention @ryan_sb and AWS in Action for one virtual ticket in the raffle.
  2. Tweet @ryan_sb or email about your project that uses Lambda, Google Cloud Functions, IBM OpenWhisk, or is otherwise serverless for five entries.

So if you tell me about your serverless project, you get five times better odds of winning. I’m going to pick winners on April 15th, so last day to enter is April 14th. Good luck, readers!

The Review

Amazon Web Services in Action book cover

This is an ambitious book, it tries to cover everything you need to get running on AWS: from S3 and Glacier to SQS, EC2, and Elastic Beanstalk. At 385 pages AWS in Action doesn’t fall into the “weekend read” category. What it does do is hit most business needs pretty efficiently, and gives the reader (even if they’re new to AWS) enough knowledge to know what to look elsewhere when the book doesn’t solve their particular need.

The book is divided into four sections:

  1. Getting started, where you launch your first instance and get to know the AWS console.
  2. Building virtual infrastructure covers IAM, VPC, CloudFormation, Elastic Beanstalk, and OpsWorks.
  3. Storing data, in this section you learn all about S3, RDS, EBS, and DynamoDB for different storage needs and price ranges.
  4. Architecture, where you build a (comprehensive) example application that handles photo uploads and uses the services outlined early in the book.

There’s a wide audience that could read this book: I learned a few tricks, but the only real prerequisite for picking up AWS in Action is to have some background in information technology whether that’s from a datacenter, web site operations, or running your own hobby projects. The book assumes you have knowledge of what a server is, a passing familiarity with SQL-type datastores, and that’s about it.

After reading, you’ll find yourself ready to take on a broad spectrum of tasks like designing a topology to host your web application or legacy service inn AWS, migrating data into S3 or a database to RDS, and building a web application infrastructure that’s highly available at reasonable cost.

The Good

I highly recommend following along with the examples - they’re almost entirely covered by the AWS Free Tier and you will learn better that way. In the first chapter, there’s a tutorial on setting up a billing alarm so you’ll get alerted if you start incurring any costs, which is a great way to set readers at ease that the examples won’t break the bank.

Throughout the book, the voice and style is everything I look for in a tech book: no-fluff, precise wording that introduces concepts and then explains them as you move through the examples. Explanations accompany every new concept and Michael/Andreas include example scripts (in bash or Node.js) for concepts better explained with code.

CloudFormation is covered in detail, as it’s used in all the examples. A valid alternative title (or subtitle) would be “Learning AWS through CloudFormation,” and it wouldn’t be inaccurate. Every section of the book that has an example also has a CloudFormation template for you to run on your own account.

Anywhere a template is used, lots of annotations are included to help explain why each parameter needs to be included. Take this example from the chapter on Autoscaling Groups.

CloudFormation template, annotated to explain parameters. Screenshot from Amazon Web Services in Action ebook

Beyond just CloudFormation, there’s detailed examples of both Elastic Beanstalk and OpsWorks with an explanation of when you might choose CloudFormation, OpsWorks, or EB for a given task.

While making your way through examples, you’ll also learn about Identity and Access Management (IAM) and security principles like firewalls, network ACLs, security groups, and good practices like using IAM Roles instead of credentials or enabling multi-factor authentication.

There’s just enough information about networking and VPC concepts included to get you into making them, but doesn’t get bogged down explaining concepts like CIDR and routing. Instead there are callouts to online resources if you’d like to learn more, but you’ll be fine even if you don’t do the extra “homework.”

The Less Good

Unlike Ben Rady’s Serverless Single Page Apps, there’s no coverage of testing topics. That’s not a big issue, since software development isn’t the focus of the book.

The nature of technical books, especially when covering fast-moving fields, is that they’re out of date the week after they hit the shelves. Amazon Web Services in Action already has a few callouts that aren’t totally accurate anymore. It mentions that AWS doesn’t provide SSL certificates (false, ACM is a thing now) and suggests running your own NAT (AWS now offers NAT-as-a-Service). When you read any tech book, it’s worth checking to make sure something hasn’t superseded it in the meantime.

Overall Verdict

AWS in Action has the distinction of the first book so far to get a full λλλλλ/5 because it has:

  1. Coverage of CloudFormation, OpsWorks, and Elastic Beanstalk
  2. Diverse, useful examples
  3. Explanations of reasoning behind design patterns
  4. Concise prose with good pacing and a huge number of examples
  5. Just enough networking info to get by

Thanks for reading, don’t forget to enter the raffle for a free copy and get more content like this in your inbox.

Disclosure: I received two codes for free copies of AWS in Action, being raffled as mentioned. Otherwise, I received no compensation for this review, and none of the links in this post are affiliate links.

Tweet this, send to Hackernews, or post on Reddit