Hot off the press: Amazon Web Services in Action Second Edition

Andreas Wittig – 02 Oct 2018

We wrote and published the first edition of Amazon Web Services in Action in 2015. Our book quickly became a bestseller. We are still amazed by the positive feedback we receive from our readers every day. Thanks for that!

Nevertheless, AWS is changing fast and announces new features every week. So we got back to the keyboard and started updating and extending our book.

Today, we are happy to announce that the 2nd edition of AWS in Action is available as printed book and ebook (PDF). Other ebook formats will follow shortly. By the way, if you buy the printed book, you’ll get access to the ebook for free as well.

Amazon Web Services in Action Second Edition

Buy Amazon Web Services in Action Second Edition and use promo code nlaws2e to get 20% off now!

What is the focus of the book?

You will learn about the fundamental parts and concepts of AWS when reading our book. Our book covers virtual machines (EC2), storage systems (EBS, EFS, S3), databases (RDS, DynamoDB), networking (VPC). On top of that, you will learn how to deploy your applications to AWS by using Elastic Beanstalk, OpsWorks or CloudFormation.

We strongly believe in the power of automating every piece of managing your cloud infrastructure. In our opinion, automation helps you to increases efficiency, quality, and conformity in an unprecedented way. That is why we are introducing CloudFormation, allowing you to manage your infrastructure as code, in the first part of our book. Also, most of our examples are using CloudFormation to deploy the needed resources. Consequently, after reading our book and working through the examples, you will be able to automate your cloud infrastructure with CloudFormation.

Besides automation, we also focus on scalable, highly available, and fault tolerant architectures (ELB, SQS, Auto Scaling). And last but not least, you will learn about how to secure each part of your cloud infrastructure (IAM, Security Groups, …).

Which topics are out of scope?

The service portfolio AWS is offering is enormous. We love to build with all the building blocks AWS is offering, from virtual machines to big data analytics, containers, and machine learning. Unfortunately, the maximum size of a book is limited. Therefore, we had to skip some exciting topics entirely. For example, we are not covering containers, big data, machine learning, mobile applications at all. If you are interested in these topics, please let us know to motivate us to write a separate book on that.

What changed in the 2nd edition?

We have completely revised and updated all chapters. As AWS is iterating fast a lot has changed since 2015.

Just a few examples:

  • AWS introduced much simpler ways to save costs with reserved and spot instances.
  • New Load Balancer types: Application Load Balancer and Network Load Balancer.
  • Additional options are available for Auto Scaling.

On top of that, we have rewritten all the CloudFormation templates used in our book in YAML instead of JSON, which increases readability a lot, in our opinion.

What is new in the 2nd edition?

We have not only updated all previous findings we have also added three completely new chapters to the 2nd edition.

Sharing data volumes between machines: Amazon Elastic File System (EFS)

Many legacy applications store state in files on disk. Therefore, using Amazon S3, an object store is not possible by default. Using block storage might be an option, but does not allow you to access files from multiple machines in parallel. Hence you need a way to share the files between virtual machines. With Elastic File System (EFS), you can share data between multiple EC2 instances and your data is replicated between multiple availability zones (AZ). EFS is based on the NFSv4.1 protocol, so you can mount it like any other file system. In this chapter, you learn how to set up EFS, tweak performance, and back your data.

Caching data in memory: Amazon ElastiCache

In this chapter, you will learn how to manage and use ElastiCache to increase the read performance of your applications.

Imagine a relational database being used for a popular mobile game where players’ scores and ranks are updated and read frequently. The read and write pressure to the database will be extremely high, especially when ranking scores across millions of players. Mitigating that pressure by scaling the database may help with load, but not necessarily the latency or cost. Also, relational databases tend to be more expensive than caching data stores. A proven solution used by many gaming companies is leveraging an in-memory data store such as Redis for both caching and ranking player and game metadata. Instead of reading and sorting the leaderboard directly from the relational database, they store an in-memory game leaderboard in Redis, commonly using a Redis Sorted Set, which will sort the data automatically when it’s inserted based on the score parameter. The score value may consist of the actual player ranking or player score in the game.

Automating operational tasks: AWS Lambda

This chapter is about adding a new tool to your toolbox. The tool we’re talking about, AWS Lambda, is as flexible as a swiss army knife. You don’t need a virtual machine to run your own code anymore, as AWS Lambda offers execution environments for Java, Node.js, C#, Python, and Go. All you have to do is to implement a function, upload your code, and configure the execution environment. Afterward, your code is executed within a fully-managed computing environment. AWS Lambda is well-integrated with all parts of AWS, enabling you to easily automate operations tasks within your infrastructure. We use AWS to automate our infrastructure regularly. For example, we use it to add and remove instances to a container cluster based on a custom algorithm, and to process and analyze log files.

In our first example, you will create a Lambda function that performs periodic health checks for your website. This will teach you how to use the Management Console and offer a blueprint for getting started with AWS Lambda quickly. In our second example, you will learn how to write your own Python code and deploy a Lambda function in an automated way using CloudFormation. Your Lambda function will automatically add a tag to newly launched EC2 instances. At the end of the chapter, we will show you additional use cases like building web applications, IoT backends, or processing data with AWS Lambda.


We want to thank all readers who bought the MEAP version of our book. If you ordered the printed book as well, it should be already on it’s way to your postbox. Big thanks to all reviewers who helped us a lot to improve and fine tune the second edition.

Special Offer

All others, please go to Amazon Web Services in Action Second Edition and use promo code nlaws2e to get 20% off when buying our book.

Andreas Wittig

Andreas Wittig

I’ve been building on AWS since 2012 together with my brother Michael. We are sharing our insights into all things AWS on cloudonaut and have written the book AWS in Action. Besides that, we’re currently working on bucketAV,HyperEnv for GitHub Actions, and marbot.

Here are the contact options for feedback and questions.