背景

EC2を複数台使用したいという要件がありました。

webサーバならオートスケールを組んだりするのですが、1台1台sshしたいとのこと。

どうするか?

手っ取り早くcountを使用します。

resource "aws_instance" "raido-rec" {
  count = 2
  ami                     = data.aws_ssm_parameter.amzn2_latest_ami.value # last parameter is the default value
  instance_type           = "t3.nano"
  disable_api_termination = false
  monitoring              = false
  key_name                = "radio"
  subnet_id       = aws_subnet.public_subnet_1a.id
  security_groups = [aws_security_group.radio_sg.id]
  tags = {
    Name = "${format("proxy%002d", count.index + 1)}"
  }
}

作成したEC2のグローバルIPアドレス表示する

terraformに以下を記述。

output "ec2_global_ips" {
  value = ["${aws_instance.raido-rec.*.public_ip}"]
}

以下のように出力される。

ec2_global_ips = [
  [
    "13.231.230.46",
    "43.206.235.74",
  ],
]