728x90
반응형
[Terraform] 데이터 소스(Data Source)
Data Sources - Configuration Language | Terraform | HashiCorp Developer
Data sources allow Terraform to use external data, function output, and data from other configurations. Learn data resource arguments, behavior, and lifecycle.
developer.hashicorp.com
데이터 소스(Data Source)
공급자에서 가져온 읽기 전용 정보를 나타낸다.
데이터 공급자의 API만 물어보고 해당 데이터를 나머지 테라폼 코드에서 사용할 수 있게한다.
각 테라폼 공급자는 다양한 데이터 소스를 제공한다. (ex. VPC, 서브넷, AMI ID, IP 주소 범위 등)
데이터 소스 정의하기
데이터 소스를 공급자에서 가져오기 위해선, 먼저 데이터 소스를 선언을 해줘야한다.
data "aws-vpc" "default" {
default = true
}
output "default_vpc_id" {
value = data.aws_vpc.default.id
}
AMI 소스 가져오기
data "aws_ami" "amzLinux" {
most_recent = true
owners = ["amazon"]
filter {
name = "name"
values = ["amzn2-ami-hvm-*-gp2"]
}
}
위와같이 데이터소스를 선언해주면, amazon linux의 최신 ami 정보를 가져온다.
추가로 disk의 정보가 필요한 경우 filter를 통해 가져올 수 있다.
filter {
name = "root-device-type"
value = ["ebs"]
}
위와같이 데이터 소스를 선언해주면, 인스턴스를 생성하거나 런치템플릿을 생성할 때
변수로 지정할 필요없이 가져올 수 있다.
resource "aws_instance" "web" {
ami = data.aws_ami.amzLinux.id
instance_type = "t2.micro"
vpc_security_group_ids = [aws_security_group.web.id]
subnet_id = aws_subnet.subnet_a.id
key_name = aws_key_pair.tf-key.key_name
user_data = templatefile("userdata.tftpl", {
server_port = var.server_port
})
tags = {
Name = "tf-ec2"
}
}
728x90
반응형
'📚 IaC > Terraform' 카테고리의 다른 글
[Terraform] 의존성 관리 (depends_on) (0) | 2023.09.18 |
---|---|
[Terraform] RDS 생성 (0) | 2023.07.28 |
[Terraform] LoadBalancer 생성 (0) | 2023.07.04 |
[Terraform] Key-Pair 생성 후 EC2 인스턴스 SSH 접속 (0) | 2023.07.03 |
[Terraform] AWS Custom VPC 생성 (0) | 2023.06.28 |