728x90
프로바이더에서 정보를 가져오는 것을 모두 데이터 소스라한다.
data 블록에 작성하며, 리소스와 정의하는 방법은 동일하다.
- owner 필수(required)
- 필터(filter)를 걸어서 검색
다음과 같이 Data Sources를 확인할 수 있다.
💻 실습: aws_ami data source로 ami 생성하기
📝 data_source.tf
data "aws_ami" "ubuntu_image" {
owners = ["099720109477"]
most_recent = true #가장 최신 버전을 사용할 것인가
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-*-amd64-server-*"]
}
filter {
name = "root-device-type"
values = ["ebs"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
}
📝 main.tf
resource "aws_instance" "app_server" {
count = var.instance_count
#aws_instance.app_server[0]
#aws_instance.app_server[1]
ami = data.aws_ami.ubuntu_image.id #이미지
instance_type = "t3.small"
vpc_security_group_ids = [aws_security_group.app_server_sg.id]
key_name = aws_key_pair.app_server_key.key_name
subnet_id = module.app_vpc.public_subnets[count.index % length(module.app_vpc.public_subnets)]
tags = local.common_tags
}
AMI 생성 확인
728x90