AWSを利用している方なら基本中の基本だと思いますが、EC2の管理画面を見ているとName
という列があり、Terraformで作成していると空になっています.
これは何故でしょうか?
TL;DR
Name
タグを設定すれば表示される
何故、表示されないのか?
AWSの公式ドキュメントであるAmazon EC2 リソースにタグを付ける - Amazon Elastic Compute Cloudに書いてある通り、キーがName
のタグの値に名前を入れれば、表示されます.
つまり、Name
タグが未設定だったので表示されていませんでした.
resource "aws_instance" "khasegawa" { ami = "${data.aws_ami.image_id}" instance_type = "${var.instance_type}" disable_api_termination = false subnet_id = "${aws_subnet.khasegawa.id}" tags { Administrator = "${var.email}" Environment = "${var.environment}" } lifecycle { "ignore_changes" = ["ami"] } }
tags
に見事にName
を書いてませんね.
Nameタグを設定する
Name
タグを設定した方がEC2インタンスだけでなく、他のAWSリソースでも判別しやすくなります.
適切な名前を設定をしましょう.
先程のtfファイルに追記すると、こうなります.
resource "aws_instance" "khasegawa" { ami = "${data.aws_ami.image_id}" instance_type = "${var.instance_type}" disable_api_termination = false subnet_id = "${aws_subnet.khasegawa.id}" tags { Name = "${var.environment}" # NOTE: 追記 Administrator = "${var.email}" Environment = "${var.environment}" } lifecycle { "ignore_changes" = ["ami"] } }