Rolling out AMI upgrades with Terraform

Remember that we used the data resource "aws_ami" to pull the latest AMI belonging to the AWS account configured in the template? At that time, we didn't put much effort into it, blindly pulling any existing AMI , as long as it was the latest updated one:

data "aws_ami" "app-ami" { 
  most_recent = true 
  owners = ["self"] 
} 

With Packer building our AMIs, we can put a bit more effort into this resource. We need to make sure that it pulls the image that is suitable for this application. First, simplify the Packer template: remove any variables and make sure that the "ami_name" key looks as simple as the following:

"ami_name": "centos-7-base-puppet-{{timestamp}}", 

Rebake the image and then modify the Terraform ...

Get Getting Started with Terraform - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.