본문 바로가기
Terrform

[terraform] terraform module( VPC) 사용

by aws-evan 2024. 11. 13.
반응형

 

 

 

  • 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