반응형
- terraform varialbe -> moudel 방식 적용
- Providor 정의
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 5.6" # which means any version equal & above
}
}
required_version = ">= 0.13"
}
provider "aws" {
region = "ap-northeast-2"
access_key = ""
secret_key = ""
}
- Module VPC
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.15.0"
}
- terrafrom 초기화
- 초기화를 진행하게 되면 .terraform -> modules -> vpc 폴더가 자동으로 생성된다.
terraform init
- terraform plan
- module 코드에 적용된 기본 cidr로 vpc 생성
terraform plan
- custom module vpc 정의
- 원하는 값들로 변경하기 위해서는 별도 정의하여 배포
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.15.0"
# Details
name = "dev-vpc"
cidr = "10.0.0.0/16"
azs = ["ap-northeast-2a","ap-northeast-2c"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24"]
enable_nat_gateway = true
single_nat_gateway = true
one_nat_gateway_per_az = false
tags = {
Terraform = "true"
Environment = "dev"
}
}
- output을 통한 custom module 정보 호출
- vpc name , vpc cidr, private-subnet
output "vpc-name" {
value = module.vpc.name
}
output "vpc-cidr" {
value = module.vpc.vpc_cidr_block
}
output "private-subnet" {
value = module.vpc.private_subnets_cidr_blocks
}
module을 사용하게 되면 필요한 정보들이 모두 정의된 상태이며, 필요한 정보들만 정의하여 사용하면 쉽게 정의하여 배포 가능,
그 외에 조건들이 많지만 그부분은 공부하면서 알아봐야될 거 같습니다.
반응형
'Terrform' 카테고리의 다른 글
AWS Terraform tfstate 파일 원격 관리(S3, DynamoDB) (0) | 2024.11.11 |
---|---|
Terraform VPC 생성 (0) | 2021.08.03 |
Terraform Application Load Balancer(ALB)생성 (0) | 2021.08.02 |
Terraform EC2 생성 (0) | 2021.08.02 |
Terraform 정의 (0) | 2021.07.28 |