Book Image

AWS Automation Cookbook

By : Nikit Swaraj
5 (1)
Book Image

AWS Automation Cookbook

5 (1)
By: Nikit Swaraj

Overview of this book

AWS CodeDeploy, AWS CodeBuild, and CodePipeline are scalable services offered by AWS that automate an application's build and deployment pipeline. In order to deliver tremendous speed and agility, every organization is moving toward automating their entire application pipeline. This book will cover all the AWS services required to automate your deployment to your instances. You'll begin by setting up and using one of the AWS services for automation –CodeCommit. Next, you'll learn how to build a sample Maven and NodeJS application using CodeBuild. After you've built the application, you'll see how to use CodeDeploy to deploy the application in EC2/Auto Scaling. You'll also build a highly scalable and fault tolerant Continuous Integration (CI)/Continuous Deployment (CD) pipeline using some easy-to-follow recipes. Following this, you'll achieve CI/CD for a microservice application and reduce the risk within your software development life cycle globally. You'll also learn to set up an infrastructure using CloudFormation templates and Ansible, and see how to automate AWS resources using AWS Lambda. Finally, you'll learn to automate instances in AWS and automate the deployment lifecycle of applications. By the end of this book, you'll be able to minimize application downtime and implement CI/CD, gaining total control over your software development lifecycle.
Table of Contents (11 chapters)

Creating an AWS infrastructure using the Ansible EC2 dynamic inventory

Ansible is not only used for configuration management but also for infrastructure automation. It has more than 100 modules to support the AWS infrastructure. The only reason for not recommending Ansible for infrastructure automation is that it does not support rollback or delete function automatically; you have to write the playbook for the creation of the infrastructure as well as the deletion. So, writing the playbook for both the functionalities is bit painful. For small infrastructures in the testing and development environment, you can create a small Ansible playbook.

Now, let me give you a scenario. Suppose you have the requirement to launch an instance and install some packages on top of it in one go, what would be your approach be? You know that to install anything inside a server you should first...