Amazon Machine Image
An Amazon Machine Image (AMI) is a special type of virtual appliance that is used to create a virtual machine within the Amazon Elastic Compute Cloud ("EC2"). It serves as the basic unit of deployment for services delivered using EC2.
Like all virtual appliances, the main component of an AMI is a read-only filesystem image that includes an operating system (e.g., Linux, Unix, or Windows) and any additional software required to deliver a service or a portion of it.
An AMI includes the following:
- A template for the root volume for the instance (for example, an operating system, an application server, and applications)
- Launch permissions that control which AWS accounts can use the AMI to launch instances
- A block device mapping that specifies the volumes to attach to the instance when it's launched
The AMI filesystem is compressed, encrypted, signed, split into a series of 10 MB chunks and uploaded into Amazon S3 for storage. An XML manifest file stores information about the AMI, including name, version, architecture, default kernel id, decryption key and digests for all of the filesystem chunks.
An AMI does not include a kernel image, only a pointer to the default kernel id, which can be chosen from an approved list of safe kernels maintained by Amazon and its partners (e.g., Red Hat, Canonical, Microsoft). Users may choose kernels other than the default when booting an AMI.
When it launched in August 2006, the EC2 service offered Linux and later Sun Microsystems' OpenSolaris and Solaris Express Community Edition. In October 2008, EC2 added the Windows Server 2003 and Windows Server 2008 operating systems to the list of available operating systems. As of December 2010, it has also been reported to run FreeBSD; in March 2011, NetBSD AMIs became available. In November 2012, Windows Server 2012 support was added.
Amazon Linux AMI
Amazon has its own Linux distribution that is largely binary compatible with Red Hat Enterprise Linux, and therefore CentOS. This offering has been in production since September 2011, and in development since 2010. The final release of the original Amazon Linux is version 2018.03 and uses version 4.14 of the Linux kernel. Amazon Linux 2 was announced in June 2018, and is updated on a regular basis.
Types of images
- Public: an AMI that can be used by anyone.
- Paid: a for-pay AMI that is registered with Amazon DevPay and can be used by anyone who subscribes for it. DevPay allows developers to mark-up Amazon's usage fees and optionally add monthly subscription fees.
- Shared: a private AMI that can only be used by Amazon EC2 users who are allowed access to it by the developer.
- Amazon. "Amazon EC2 Functionality".
- Amazon. "Creating an Image". Archived from the original on 2009-04-03. Retrieved 2009-03-27.
- AWS Blog post announcing EC2 User Selectable Kernels
- Shankland, Stephen (October 23, 2008). "Amazon's Linux cloud computing out of beta, joined by Windows". CNet News. Retrieved October 24, 2008.
- "Amazon Elastic Compute Cloud (EC2) Running Microsoft Windows Server and SQL Server". Amazon.com. October 23, 2008. Archived from the original on 1 December 2008. Retrieved October 25, 2008.
- FreeBSD on EC2 status. Daemonology.net. Retrieved on 2013-08-09.
- NetBSD Blog. Blog.netbsd.org (2011-03-13). Retrieved on 2013-08-09.
- "Windows Server 2012 Now Available on AWS". Amazon.com. November 19, 2012. Retrieved March 26, 2014.
- "AWS Developer Forums". Amazon Linux AMI - what distro is this based on?. 16 September 2019. Retrieved 9 August 2019.
- Brockmeier, Joe (September 27, 2011). "Amazon's Linux AMI is All Grown Up". readwriteweb. Retrieved October 11, 2011.
- "Amazon Linux AMI 2018.03 Release Notes". Amazon Web Services. Retrieved July 17, 2018.
- "Announcing Amazon Linux 2 with Long Term Support". Amazon Web Services. 26 June 2018. Retrieved 10 February 2020.