terraform module 사용법(route table)
2021. 6. 1. 01:37ㆍTerraform
라우트테이블을 만들어보자.
라우트테이블에는 인터넷 게이트웨이를 연결시킬꺼고 cidr 을 0.0.0.0/0을 줄꺼다.
그리고 퍼블릭 서브넷을 연결시켜보자.
라우트테이블 모듈을 만들기 위해 모듈내에 라우트테이블 디렉터리를 만들어주자.
mkdir ~/test/module/rt
이렇게 디렉터리가 만들어졌으면 main.tf 을 작성해보자..
# ~/test/module/rt/main.tf
resource "aws_route_table" "public" { #라우팅테이블 지정
vpc_id = var.vpc_id #vpc id 지정
route {
cidr_block = "0.0.0.0/0" #대상 cidr 지정
gateway_id = var.internet_gateway_id #대상 igw 지정
}
}
resource "aws_route_table_association" "public" { #서브넷연결 지정
subnet_id = var.subnet_public_id #연결할 서브넷 지정
route_table_id = aws_route_table.public.id #연결시켜줄 라우팅테이블 지정
}
여기에도 변수가 들어갔으니 변수파일도 생성해주자.
# ~/test/module/rt/variables.tf
variable "vpc_id" {} #vpc id 변수 지정
variable "internet_gateway_id" {} #인터넷게이트웨이 변수 지정
variable "subnet_public_id" {} #서브넷 변수 지정
마지막으로 output.tf 파일을 만들어주자
# ~/test/module/rt/output.tf
output "route_table_public_id"{ #라우팅테이블 아우풋 ID
value = aws_route_table.public.id
}
이러면 모듈을 완성됬다. 이제 루트모듈에서 값들을 입력해주자.
provider "aws" { #사용자정보 지정
region = "ap-northeast-2" #사용할 리전 지정
access_key = "access_key" #IAM 사용자 만들때 생성한 엑세스키 정보
secret_key = "secret_key" #IAM 사용자 만들때 생성한 시크릿키 정보
}
module "vpc" { #사용할 모듈
source = "./module/vpc" #모듈 위치
vpc_cidr_block = "10.1.0.0/16" #vpc 모듈에서 지정한 변수의 값 / vpc의 cidr 값
vpc_name = "test_vpc" #vpc 모듈에서 지정한 변수의 값 / vpc의 이름
}
module "subnet" { #사용할 모듈
source = "./module/subnet" #모듈 위치
vpc_id = module.vpc.vpc_id #vpc id 지정
public_subnet_cidr_block = "10.1.1.0/24" #퍼블릭 서브넷 CIDR 블록 지정
public_subnet_AZ = "ap-northeast-2a" #퍼블릭 서브넷 가용영역 지정
publicsb_name = "Pubilc_sb" #퍼블릭 서브넷 이름 지정
private_subnet_cidr_block = "10.1.2.0/24" #프라이빗 서브넷 CIDR 지정
private_subnet_AZ = "ap-northeast-2a" #프라이빗 서브넷 가용영역 지정
privatesb_name = "Private_sb" #프라이빗 서브넷 이름 지정
}
module "igw"{ #사용할 모듈
source = "./module/igw" #모듈 위치
vpc_id = module.vpc.vpc_id #igw 에 사용할 vpc id 지정
}
module "route_table"{ # 사용할 모듈
source = "./module/rt" # 모듈 위치
vpc_id = module.vpc.vpc_id #vpc id 지정
internet_gateway_id = module.igw.internet_gateway_id # 인터넷 게이트웨이 지정
subnet_public_id = module.subnet.public_subnet_id # 서브넷 아이디 지정
}
이제 이러면 완성이다. terraform init , plan , apply 을 통해서 올려보자.
라우팅테이블이 만들어진것을 확인할수있다.
인터넷게이트웨이도 연결이되고
서브넷은 프라이빗은 설정을 안했으니까 연결이 안되있고 퍼블릭만 연결된것을 확인할수 있다.
'Terraform' 카테고리의 다른 글
terraform vpc peering (0) | 2021.06.06 |
---|---|
terraform module 사용법(ec2) (0) | 2021.06.02 |
terraform module 사용법(internet gateway) (0) | 2021.05.31 |
terraform module 사용법(subnet) (0) | 2021.05.30 |
terraform module 사용법(vpc) (1) | 2021.05.29 |