EBS Volume
is the underlying disk behind EC2. Snapshot
is a point in time backup of specific volume
while AMI is is backup of the entire EC2 instance that might have multiple attached volumes, exactly like virtual machines.
With Packer, you can build automated machine images including AMIs for EC2, VMDK/VMX files for VMware, OVF exports for VirtualBox, etc.
EC2 <-- EBS Volume (Boot) + EBS Volume
^
|
Snapshot (only of specific volume)
^
|
AMI (Combined snapshots of all volumes, snapshot must have boot volume)
^
|
Launch a new Instance (same installed softwares and configs, different specs)
Snapshots can be used to backup drives/volumes. It is incremental backup operation which means every time you take a snapshot of a volume, it will add only the new changes added/introduced to the volume since your last backup (not entire backup), that saves backup time, space and ultimately the cost.
Snapshots can be used in:
Custom AMIs can be used in:
For disaster recovery in case current running EC2 instance corrupted and couldn't run for no reason.
Standard company's AMIs that have all installed prerequisites softwares that simplifies the process of deployment (e.g. configured to connect to `Splunk, has some monitoring and observability softwares installed, has docker installed, or it's configured to connect Puppet or Chef in startup)
AMIs could be used to deploy your applications in different regions easily.
Upgrade your server to higher or different specs with all installed softwares and their configs
AMIs can be publicly shared across AWS accounts.