728x90
반응형
SMALL

2024/03/06 3

AWS + Terraform (For-Each)

이번에는 HCL의 for-each문을 활용해서 여러개의 리소스를 만들어보자. count 우선, for-each를 사용하기 전 count를 먼저 사용해보자. 이 count는 HCL에서 예전부터 있던 기능인데 이 기능에 대한 문제점을 보완하고자 for-each가 나왔다고 생각하면 된다. 우선 코드를 바로 보자. # --------- # count provider "aws" { region = "ap-northeast-2" } resource "aws_iam_user" "count" { count = 5 name = "count-user-${count.index}" } output "count_user_arns" { value = aws_iam_user.count.*.arn } 이 코드에서 "count = 5..

AWS + Terraform (Variable)

Variables 이번엔 Variable을 사용해서 코드에서 사용할 수 있도록 해보자. 이전 포스팅에서 사용했던 main.tf 파일에서 다음을 추가한다. variable "vpc_name" { } 이 코드는 vpc_name 이라는 변수를 만든 것이다. 여기에 기본값을 설정하지 않으면 Apply를 할 때 변수 이름을 받도록 되어 있다. 그래서 이 변수를 사용해보기 위해 VPC의 name 값을 var.vpc_name 으로 변경해보자. module "vpc" { source = "tedilabs/network/aws//modules/vpc" version = "0.24.0" name = var.vpc_name cidr_block = "10.0.0.0/16" internet_gateway_enabled = tr..

카테고리 없음 2024.03.06

AWS + Terraform (Module)

목표 이번에는 모듈을 사용해서 인프라를 구축해보자. VPC, Subnet, Route Tables 등등을 모듈로 정의하고 가져다가 사용해서 인프라를 구축한다. Module 모듈은 쉽게 말해서, 어떤 특정 컴포넌트(예: VPC)를 만들기 위해 필요한 정보들을 미리 구현해놓은 누군가(또는 나의)의 것을 가져다가 사용한다고 생각하면 된다. 개발할 때 패키지나 모듈을 다운받아서 가져다가 쓰는 원리랑 동일하다. 그래서 테라폼 레지스트리에서 올려놓은 여러 모듈 중 하나를 가져다가 사용해서 인프라를 구성해보자. 테라폼 레지스트리에 등록된 모듈 중 이 모듈을 사용할 것이다. Terraform Registry registry.terraform.io 여기 보면 AWS 네트워크 관련된 모듈들이 있다. Terraform Re..

728x90
반응형
LIST