반응형
1. Terraform Docs 예시
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet
예시:
인수 예:
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"}"
}
}
결과
반응형
'AWS > Terraform' 카테고리의 다른 글
[AWS Terraform 기초]6. Route Table 생성 (0) | 2023.07.11 |
---|---|
[AWS Terraform 기초]5. Internet Gateway 생성 (0) | 2023.07.11 |
[AWS Terraform 기초]3. Key Pair 생성 (0) | 2023.07.11 |
[AWS Terraform 기초]2. VPC 생성 (0) | 2023.07.10 |
[AWS Terraform 기초]1. Provider 선언(+ terraform 명령어) (0) | 2023.07.10 |