One click deployment using Ansible The project implements Infrastructure as Code by deploying and managing the infrastructure using Ansible (Automation Tool). Also includes deploying applications using ansible playbooks. Infrastructure as Code (IAC) means writing code to manage configurations and automate provisioning of infrastructure in addition to deployments. Infrastructure as Code is sometimes referred to as programmable infrastructure.The concept of IAC is similar to programming scripts, which are used to automate important IT processes. However, scripts are primarily used to automate a series of static steps that must be repeated numerous times across multiple servers. For example, IAC that is coded with Ansible could install mysql server, verify that mysql is running properly, create a user account and password, set up a new database and remove unneeded databases all through code. IAC helps IT operations teams manage and provision IT infrastructure automatically through code without relying on manual processes. Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments. Designed for multi-tire deployments. It uses no agents and no additional custom security infrastructure, so it's easy to deploy and most importantly, it uses a very simple language (YAML, in the form of Ansible Playbooks) that allow you to describe your automation jobs in a way that approaches plain English. Ansible’s main goals are simplicity and ease-of-use. It also has a strong focus on security and reliability. Ansible works by connecting to your nodes and pushing out small programs, called "Ansible modules" to them. These programs are written to be resource models of the desired state of the system. Ansible then executes these modules (over SSH by default), and removes them when finished. Playbooks are Ansible’s configuration, deployment, and orchestration language. They can describe a policy you want your remote systems to enforce. Playbooks can be used to manage configurations of and deployments to remote machines. Playbooks are designed to be human-readable and are developed in a basic text language. Playbooks are expressed in YAML format.Each playbook is composed of one or more ‘plays’ in a list.The goal of a play is to map a group of hosts to some well defined roles, represented by things ansible calls tasks. A task is nothing more than a call to an ansible module.By composing a playbook of multiple ‘plays’, it is possible to orchestrate multi-machine deployments, running certain steps on all machines in the webservers group, then certain steps on the database server group, then more commands back on the webservers group, etc. Ansible ships with a number of modules (called the ‘module library’) that can be executed directly on remote hosts or through playbooks.Users can also write their own modules. These modules can control system resources, like services, packages, or files or handle executing system commands. Amazon Web Services (AWS), is a collection of cloud computing services that make up the on-demand computing platform offered by Amazon.com. These services operate from 12 geographical regions across the world. The most central and best-known of these services arguably include Amazon Elastic Compute Cloud, also known as "EC2", and Amazon Simple Storage Service, also known as "S3". AWS now has more than 70 services that range from compute, storage, networking, database, analytics, application services, deployment, management and mobile. Amazon markets AWS as a service to provide large computing capacity quicker and cheaper than a client company building an actual physical server farm. Amazon EC2:Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. Amazon EC2 provides developers the tools to build failure resilient applications and isolate themselves from common failure scenarios.