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
- Launching the demo infrastructure and application
- ntroducing the highly available, scalable, and cost-effective architecture
- Benefits of the architecture
- Overview of the architecture
- Preparing your machine
- 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.