AWS/Terraform / / 2023. 7. 11. 21:27

[AWS Terraform 기초]4. Subnet 생성

반응형

이번 포스팅까지의 진행 구성도

 

 

1. Terraform Docs 예시

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet

 

Terraform Registry

 

registry.terraform.io

 

예시:

 

인수 예:

 

 

2. Terraform 코드 작성

 

# 03_sub.tf
resource "aws_subnet" "pmh_puba" {
  vpc_id            = aws_vpc.pmh_vpc.id
  cidr_block        = "10.0.0.0/24"
  availability_zone = "ap-northeast-2a"

  tags = {
    Name = "pmh-puba"
  }
}

resource "aws_subnet" "pmh_pubc" {
  vpc_id            = aws_vpc.pmh_vpc.id
  cidr_block        = "10.0.1.0/24"
  availability_zone = "ap-northeast-2c"

  tags = {
    Name = "pmh-pubc"
  }
}

 

resource "aws_subnet" "pmh_puba"

pmh_puba 라는 이름의 aws_subnet 리소스를 정의

vpc_id

서브넷이 속할 VPC  ID를 지정

(앞서 만들었던 vpc의 id)

cidr_block

서브넷의 CIDR 블록을(IP 범위) 지정

availability_zone

서브넷이 속할 가용 영역(Availability Zone) 지정

 

tags = { Name = "pmh-puba" }

리소스에 태그 지정

(서브넷에 식별 가능한 이름 지정)

 

 

3. Terraform 분석 및 적용

 

terraform 파일이 있는 위치에서 아래 명령어 실행

 

# 변경 사항 검토 및 확인
terraform plan

# (대화형 승인 없이)변경 사용항 적용
terraform apply -auto-approve

 

4. 결과

 

 

 

 

+ 변수처리하는 방법

region, tag 변수 파일 생성

# var.tf
variable "region" {
  type        = string
  description = "region name"
  default     = "ap-northeast-2"
}

variable "tag" {
  type        = string
  default     = "pmh"
}

 

count로 cidr block 및 AZ 순차 지정

 

# 03_sub.tf
resource "aws_subnet" "pmh_pub" {
  count = 2
  vpc_id            = aws_vpc.pmh_vpc.id
  cidr_block        = "10.0.${count.index}.0/24"
  availability_zone = "${var.region}${count.index == 0 ? "a":"c"}"

  tags = {
    Name = "${var.tag}-pub${count.index == 0 ? "a":"c"}"
  }
}

resource "aws_subnet" "pmh_was" {
  count = 2
  vpc_id            = aws_vpc.pmh_vpc.id
  cidr_block        = "10.0.${count.index + 2}.0/24"
  availability_zone = "${var.region}${count.index == 0 ? "a":"c"}"

  tags = {
    Name = "${var.tag}-was${count.index == 0 ? "a":"c"}"
  }
}

resource "aws_subnet" "pmh_db" {
  count = 2
  vpc_id            = aws_vpc.pmh_vpc.id
  cidr_block        = "10.0.${count.index + 4}.0/24"
  availability_zone = "${var.region}${count.index == 0 ? "a":"c"}"

  tags = {
    Name = "${var.tag}-db${count.index == 0 ? "a":"c"}"
  }
}

 

결과

 

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유