DESCRIPTION


About the book

Rapid Docker on AWS guides you through deploying your web application on a highly available, scalable, and cost-effective container-based infrastructure provided by Amazon Web Services (AWS). You will learn to leverage three important DevOps techniques—Docker, continuous deployment, and infrastructure as code—to automate the process of deploying your Docker containers and infrastructure to AWS when changes are committed to your source code repository.

The book introduces an architecture consisting of a load balancer, a container cluster, and a scalable relational database. All used AWS building blocks are fully managed services requiring minimal operational effort. You will learn to scale the whole stack, including the Docker containers, the database, and the load balancer. The architecture minimizes your costs for idle components.

You will learn how to bundle your web application into a Docker image by using a Dockerfile. Furthermore, you’ll get access to templates for the cloud infrastructure already defined in code. On top of that, the book ships together with a template for a delivery pipeline, allowing you to deploy your web application as well as the underlying infrastructure after every commit to your source code repository.

The book and templates allow you to dockerize and deploy your web application (PHP, Ruby on Rails, Python Django, Java Spring Boot, and Node.js Express) on a production-ready infrastructure within a day. The templates leverage the CloudFormation modules provided by the open-source project cfn-modules.

In summary, you will get to know the following services in this book: ECS, Fargate, ALB, RDS Aurora Serverless, CloudFormation, CodeCommit, CodeBuild, CloudWatch Logs, and ECR.

Table of Contents

Introducing the highly available, scalable, and cost-effective architecture

Benefits of the architecture

Overview of the architecture

Preparing your machine

Launching the demo infrastructure and application

Dockerizing and spinning up your web application

Getting started with Docker

Building the Docker images for your web application

Testing your web application locally

Pushing your Docker image to the Amazon ECR registry

Launching your web application

Mastering the building blocks of the cloud infrastructure

Managing your stack with infrastructure as code: AWS CloudFormation

Load-balancing requests to your containers: Amazon ALB

Managing and running your containers: ECS and Fargate

Configuring a custom domain name and HTTPS: Route 53 and Certificate Manager

Storing and querying your data: RDS Aurora Serverless

Monitoring and debugging: CloudWatch

Running scheduled jobs (cron) in the background

Deploying your source code and infrastructure continuously

Versioning your source code with Git: AWS CodeCommit

Setting up a deployment pipeline: AWS CodeBuild

About the code

We provide you with Docker examples for different languages and frameworks (PHP, Ruby on Rails, Python Django, Java Spring Boot, and Node.js Express). Those examples help you to dockerize your own web application.

You also get ready to use CloudFormation templates for the infrastructure and deployment pipeline. The CloudFormation templates are based on our healthy open source project cfn-modules.