I was very surprised to see how incredibly hard it is to determine an AMI ID in AWS for use with Packer.
I generally use Centos 7 marketplace images for my servers; e.g. CentOS 7 (x86_64) – with Updates HVM. There is no place anywhere in the AWS UI or the linked Centos product page to actually find what the AMI ID is in a given region (and it does change per region).
I came across this stack-overflow post which was a life-saver though. Basically, for us-east-1 as an example, you can run this command using the AWS CLI (yeah, you actually have to use the CLI – that’s how wrong this is).
aws ec2 describe-images \ --owners aws-marketplace \ --filters Name=product-code,Values=aw0evgkw8e5c1q413zgy5pjce \ --query 'Images[*].[CreationDate,Name,ImageId]' \ --filters "Name=name,Values=CentOS Linux 7*" \ --region us-east-1 \ --output table \ | sort -r
And you get output like this:
| 2019-01-30T23:40:58.000Z| CentOS Linux 7 x86_64 HVM EBS ENA 1901_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-05713873c6794f575.4 | ami-02eac2c0129f6376b | | 2018-06-13T15:53:24.000Z| CentOS Linux 7 x86_64 HVM EBS ENA 1805_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-77ec9308.4 | ami-9887c6e7 | | 2018-05-17T08:59:21.000Z| CentOS Linux 7 x86_64 HVM EBS ENA 1804_2-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-55a2322a.4 | ami-d5bf2caa | | 2018-04-04T00:06:30.000Z| CentOS Linux 7 x86_64 HVM EBS ENA 1803_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-8274d6ff.4 | ami-b81dbfc5 | | 2017-12-05T14:46:53.000Z| CentOS Linux 7 x86_64 HVM EBS 1708_11.01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-95096eef.4 | ami-02e98f78 |
The upper one will be the newest and probably the one you want (at least in my case).
I hope that saves you some precious googling time; it took me a while to find it since AWS’s less than admirable documentation on the subject shows up first.