This tutorial describes the options AWS provides to automate setup of multi-stage (dev+QA+prod) enterprise environments within EC2.
Manually configure the various components using the AWS Management Console at http://aws.amazon.com/ on internet browsers. See my AWS On-boarding for a tutorial on the AWS Management Console and Consoles on mobile devices.
Elastic Beanstalk for developers to quickly bring up standard server configurations with no SSH capability.
Opsworks "configuration as code service" which sets up servers by running Chef recipies obtained from a Chef Cookbook repository.
CloudFormation for sysadmins to create JSON template files which configure ALL AWS services.
Value-added services outside Amazon, such as Terraform (and licensed Atlas) from Hashicorp.
Before doing this, setup default VPC, subnets, and Security Groups.
NOTE: You can't SSH into individual servers.
PROTIP: Define a convention that applies to apps, such as a project, feature, and version number, such as PS1-bean2-node-v01.
PROTIP: Include in the name a code for the platform being used.
Beanstalk is considered a "Platform-as-a-Service" (PaaS), that does the "heavy lifting" to get infrastructure online, with load balancing, autoscaling, and health monitoring.
The Virtual Machine is for the Platform chosen in the previous step.
The Low cost configuration preset is the default.
In the Scaling section, the Environment type is single instance.
Click the Highly available configuration preset.
Notice the Environment type changed to "loadbalancing, autoscaling" with Scale instance: 1-4.
Beanstalk is free to use. You only pay for servers deployed by it.
Click Modify in the Notifications section and input your email address.
Switch temporarily to your email to confirm the subscription.
Since this is a tutorial, select the Low cost single instance.
Scroll down to click Create app.
The file contains functions definitions such as Fn::GetOptionSetting: with parameters.
Opsworks is a higher level tool than CloudFormation, offering more customization than Elastic Beanstalk.
Click Add your first stack.
NOTE: You cannot mix and match Windows with Linux servers.
Opsworks is called a "configuration as code service" because it sets up servers by running Chef recipies obtained from a Cookbook repository.
NOTE: There is no equivalent for Puppet.
NOTE: Each server has a Chef agent installed.
The lack of agents is why Ansible is becoming more popular.
My tutorial on AWS High-Availability using CloudFormation, which is the current rage (June 2016).
AWS server deployment options was published on June 22, 2016 .