Cloud/Terraform

Terraform - Subnet 적용(1. 직접 입력 / 2. Variable 블록 / 3. Data Source 블록)

잇(IT) 2022. 7. 7. 22:36

- ture로 되어 있으면 나중에 destory로 지우지 못한다.

 

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

resource "aws_security_group" "allow_alb" {
  name        = "allow_alb"
  description = "Allow alb inbound traffic"
  vpc_id      = "vpc-0109ce922ec472fd3"

  ingress {
    description      = "alb from VPC"
    from_port        = 0
    to_port          = 0
    protocol         = "-1"
    cidr_blocks      = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }

  egress {
    from_port        = 0
    to_port          = 0
    protocol         = "-1"
    cidr_blocks      = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }

  tags = {
    Name = "allow_alb"
  }
}

resource "aws_lb" "test" {
  name               = "test-lb-tf"
  internal           = false
  load_balancer_type = "application"
  security_groups    = [aws_security_group.allow_alb.id]
  subnets            = ["subnet-0753446d2129f6ff4", "subnet-0c67e326f5ad5973d"]

  enable_deletion_protection = false

  tags = {
    Name = "alb"
  }
}


- variable block으로 subnet을 인식하도록 실습


- data source block으로 alb에 추가

data "aws_subnet_ids" "example" {
  vpc_id = var.vpc_id
}

data "aws_subnet" "example" {
  for_each = data.aws_subnet_ids.example.ids
  id       = each.value
}

output "subnet_cidr_blocks" {
  value = [for s in data.aws_subnet.example : s.cidr_block]
}

data "aws_vpcs" "foo" {}

- vpc가 하난데 vpcs로 작성하면 오류가 난다.

 

 

data block을 사용할때는 끝에 .id를 붙인다.

 

하지만 현재는 여러개이기 때문에 위의 구문을 사용하지 않고 직접 vpc를 집어 넣는다.

728x90