How to Provision EC2 Instances in AWS

AWS is known for its great scalability, flexibility and automation but how does it all actually work? In this post we cover the basics of provisioning in AWS. The first diagram (below) shows the stack creation in AWS- the piece that actually procures and purchases AWS virtual hardware. Three instances are shown in this example, but the same concept can apply to any number of VMs, including ones created through auto-scaling (ASG).

AWS INFRASTRUCTURE AS CODE

Once the overall infrastructure is complete, it’s time to provision the instances. When an EC2 instance gets spun-up, software such as Chef will configure each VM to whatever its dedicated purpose is, whether it’s a database, web server or something else. The diagram below describes the process: the EC2 instance boots up, connects to the Chef server and determines the appropriate configuration. Chef then installs recipes and sets attributes and the VMs purpose. The end result is an EC2 instance with a directed configuration. The time consuming piece is properly setting up Chef recipes which requires deep expertise in JSON, Ruby, AWSCLI, as well as Linux and Windows command line tools. Without this knowledge provisioning new EC2 instances may prove to be quite challenging.