In this video, Jeff Winesett introduces Amazon Machine Images, AMIs. AMIs provide full image snaphots of application servers and a way to replicate EC2 instances across availability zones, regions and accounts.
- The next topic to cover in the exploration on how to design for failure, is Amazon Machine Image, or often shortened to AMI, or sometimes pronounced "Ahmee". An AMI is basically a packaged environment containing a software stack, along with all the necessary parts to properly set up and boot up an EC2 instance. AMIs are the unit of deployment. AMIs are specified when launching an instance, and as many instances can be launched from an AMI as needed.
An AMI typically includes the following. A template for the root volume for the instance, for example an operating system, an application server, and supporting application libraries. Launch permissions that control which AWS accounts can use the AMI to launch instances. A block device mapping that specifies the elastic block storage volumes to attach to the instance when it's launched. Amazon EC2 provides a number of tools to make creating an AMI easy, including the AWS management console.
Let me show the management console now to make all of this a little more concrete. Here I have logged into the AWS management console in the browser. The console shows all of the AWS services available. AMIs are part of the EC2 service. I get there by going to the EC2 service and clicking on AMIs in the left-hand navigation. From this view, I see a list of available AMIs. This default view shows me the AMIs that I have created, but I can filter by other AMIs.
I can look at the ones that are public images, or private images. And if I click into the search box, it provides me a long list of filters from which I can choose to find other available AMIs. When creating a new EC2 instance, an AMI is specified that is responsible for setting up and booting up that instance. Let me demonstrate. If I go back over to the left-hand menu to instances, and click there, I can go immediately up here to launch instance, which will launch an instance for me.
The very first step that I have to do in launching an instance, is choose an AMI. And here, along the left, there are tabs that show me different AMIs available. This first tab, quick start, are all of the packaged Amazon AMIs. The next tab, my AMIs, are exactly as you might think. AMIs that I have previously created. This next tab offers AMIs that are available in the AWS marketplace.
The AWS marketplace is a catalog that contains a curated section of the open source and commercially available software from well-known vendors. These AMIs have undergone vetting for quality and are generally available for purchase. Then, there are community AMIs, which are contributed by individuals and developed by teams for the purpose of sharing development projects. Generally, once an EC2 instance is up and running, and configured exactly as needed for a specific application.
An AMI is created of that instance. This AMI is then used to easily recreate the instance as many times as needed across multiple availability zones. This can be done programmatically using the API, or the console. So let me demonstrate that too. I go back to the AMI listing by going back to services, EC2, and AMIs on the left-hand menu.
To launch a new instance from an existing AMI, all I need to do is right click that AMI and choose launch instance. Right click it and choose launch, I can also choose the AMI I'm interested in and go to actions and choose launch. And in just a matter of minutes, I'll have a new instance based on that AMI up and running. Okay, I'll be showing all of this in more detail again later in this course. Hopefully seeing this in the console now helps solidify the concept a little bit.
Design for failure, lesson number three. Maintain an Amazon Image so that you can restore and clone environments very easily across multiple availability zones.
- Benefits of cloud services
- Making architectures scalable
- Examining cloud constraints
- Virtual servers, EC2, and Elastic IP
- Using the Amazon machine image
- Elastic load balancing
- Using CloudWatch for monitoring
- Security Models
- Elastic block storage
- S3, CloudFront, and Elastic Beanstalk
- Handling queues, workflows, and notifications
- Caching options and services
- Identity and access management
- Creating a custom server image
- Application deployment strategies
- Serverless architectures