Terraformで最新のCentOS 7のAMI IDを取得してEC2を構築する

2019.10.31

はじめに

以前、CLIにてCentOS 7の最新AMI IDを取得する方法をご紹介しましたが、今回はTerraformで最新のCentOS 7のAMI IDを取得してEC2を構築する方法をご紹介したいと思います。

前提

次のバージョンのTerraformを使用しています。

$ terraform --version
Terraform v0.12.12
+ provider.aws v2.33.0

解説

5〜13行目: 見たままですが、以前にご紹介したCLIと同じ条件になっています。most_recentが便利ですね。

16行目: 取得したAMI IDを10行目で使用しています。簡単ですね。

最新のAMI IDが使用されているかを確認したいので、EC2の設定は必要最小限になっています。

provider aws {
  region = "ap-northeast-1"
}

data aws_ami centos7_ami {
  most_recent = true
  owners = [ "aws-marketplace" ]

  filter {
    name = "product-code"
    values = [ "aw0evgkw8e5c1q413zgy5pjce" ]
  }
}

resource aws_instance demo {
  ami = data.aws_ami.centos7_ami.id
  instance_type = "t2.micro"
}

起動してみる

terraform applyでインスタンスを作成し、コンソールから確認してみます。記事執筆時点で最新のAMI IDが使用されていることが確認できました。

さいごに

非常に簡単に実現できました。どなたかの参考になれば幸いです。