Terraform

·Terraform
2026 IBM Champion으로 선정되었습니다!!한국에는 많이 알려지지 않은 IBM의 프로그램인데요기본적으로 IBM 제품을 잘 알릴 수 있는 인플루언서가 되는 느낌인데요사실 저는 2026년의 Hashicorp Ambasaddor을 신청했었습니다근데 올해부터는 Hashicorp Ambasaddor가 IBM Champion에 포함된다고 합니다(IBM이 Hashicorp를 인수함) TechXchange라고 여러가지 컨퍼런스나 여러 활동에 참가하게 될거같습니다!
·Terraform
🧱 terraform 블록 terraform 블록은 Terraform 설정의 메타(meta) 정보를 정의하는 부분이다특히 backend나 required_version, provider version constraints 같은 걸 설정할 때 사용된다 backend란? → https://jibinary.tistory.com/780 [Terraform] terraform.tfstate 상태 파일과 Backend 란? 아주 쉽게 정리 (Backend의 종류: local, remote, s3, azurerm,terraform.tfstate 파일terraform.tfstate 파일은 Terraform으로 생성한 인프라를 정보를 기록해두는 상태 파일이다.어떤 리소스가 Terraform으로 만든어졌는지 기록해두기 ..
·Terraform
여러 리전(region)에 배포하는 방법2개의 AWS 리전(region)에 리소스를 배포하려면 provider 블록을 2개 다른 region을 정의해야한다.그리고 각 resource 블록에 어떤 provider를 사용할지 명시하면 된다.기본 provider (aws)는 us-east-1로 사용하고, alias = "west"를 통해 us-west-2에 배포할 수 있도록 구성provider "aws" { region = "us-east-1"}provider "aws" { alias = "west" region = "us-west-2"} provider 블록에 alias 지정할 수 있다.리소스에 provider = aws. 로 명시하면 해당 리전 사용할 수 있다리소스에 provider를 지정하지 않으..
·Terraform
📦 테라폼 모듈(Module)Terraform에서 자주 쓰는 인프라 구성(.tf 코드)을 재사용 가능하게 만든 코드 묶음(똑같은 일반 terraform 코드를 하나의 모듈로써 저장) 📁 Terraform의 모듈 구조 예시 my-module/├── main.tf # 리소스 정의├── variables.tf # 변수 정의├── outputs.tf # 출력 정의├── README.md # 설명 파일└── examples/ └── basic/ └── main.tf # 모듈 사용 예제구성 요소 (파일)설명main.tf리소스 정의 파일 (예: aws_instance, aws_s3_bucket 등)variables.tf모듈에서 사용할 입력..
·Terraform
terraform validate terraform validate는 .tf 파일들의 코드의 문법(syntax)을 검사하는 명령어다.유효한 HCL(HashiCorp Configuration Language) 형식의 문법인지 검사하다. terraform validate 검사 항목 ✅ 문법 오류(Syntax) : 괄호 { 빠짐 등✅ 리소스 구성: 블록 안에 올바른 속성이 있는지 (예시: aws_instance에 ami 빠짐)✅ 중복된 속성: 같은 키를 두 번 사용 (예시: ami = "ami-1" ami = "ami-2")✅ 잘못된 참조: 없는 리소스나 변수 참조 즉 전반적으로 terraform validate를 통해 테라폼 코드에 문제가 있는지 확인할 수 있다.하지만 코드 자체의 문제를 확인하기 때문에, ..
·Terraform
Version constraints테라폼에서 provider 또는 module의 버전 범위를 제한할 때 사용하는 방식이다.provider "github" { version = "~> 2.1" ## 2.1 이상 3.0 미만 (2.2, 2.3 등은 OK, 3.0은 안 됨)} 왜 버전을 제한해야되는가??>>> provider나 module의 버전은 자주 업데이트된다 → 새로운 버전이 호환성 문제를 일으킬 수 있음.>>> 안정적인 버전을 유지하려면 버전을 제한하는 것이 좋음. Version constraints 사용 방식= 2.1.0정확히 2.1.0 버전만 허용>= 2.1.02.1.0 이상 버전 허용2.1.0 이하 버전 허용> 2.1.02.1.0보다 높은 버전 허용2.1.0보다 낮은 버전 허용~> 2.1...
·Terraform
collection type (컬렉션 타입)타입설명Lists/Tuples 순서가 있는 배열. 예시: ["a", "b", "c", 14, true] Mapkey-value 쌍.예시: { name = "web", env = "prod" } Set중복 없는 값들의 집합. 예시: set(["a", "b", "c"]) list 예시 – 리스트 (순서 있고 중복 허용)# 가용 영역(Availability Zone) 리스트 정의variable "az_list" { type = list(string) # 문자열 리스트 타입 default = ["us-east-1a", "us-east-1b", "us-east-1c"]}# 가용 영역마다 하나씩 서브넷 생성resource "aws_subnet" "example..
·Terraform
Locals (로컬)locals는 테라폼 코드에서 반복해서 사용할 값을 변수처럼 저장해두는 기능이다.locals는 기본적으로 variables와 비슷하다. (둘 다 테라폼에서 값을 저장하는 데 사용되는 변수이다)하지만 당연히 차이점이 있다! (아래에 적어 놓았다) ✍ HCL Syntax (Locals 문법)locals { name = "my-instance"}## 참조할 때: local. 😎 Locals 사용 예시)// 로컬 값(local values) 정의locals { name = "my-instance" // 인스턴스 이름 region = "us-east-1" // 리전 정보}resource "aws_instance" "my_instance" { ami ..
람다코드
'Terraform' 카테고리의 글 목록