목록Infra/Terraform (4)
나의 잡다한 노트 및 메모
Terraform 문법은 **HCL (HashiCorp Configuration Language)**이라고 하며, 비교적 간단합니다! 기본부터 차근차근 알려드릴게요. 🔤 기본 문법 구조 1. 기본 블록 구조 블록타입 "라벨1" "라벨2" { 속성1 = 값1 속성2 = 값2 } 2. 주요 블록 타입들 리소스 블록: resource "aws_instance" "web" { ami = "ami-12345" instance_type = "t3.micro" } 변수 블록: variable "instance_type" { description = "EC2 인스턴스 타입" type = string ..
Terraform을 명령어를 실행하는 위치 Terraform은 현재 디렉터리에서 다음 파일들을 찾습니다: - main.tf - 메인 리소스 정의 - variables.tf - 변수 정의 - terraform.tfvars - 실제 변수 값 - outputs.tf - 출력 정의 예를 들어 environments/dev/ 폴더에는: - 개발 환경용 설정이 들어있고 - terraform.tfvars에는 개발 환경의 VPC ID, 서브넷 ID 등이 설정되어 있습니다 잘못된 경로에서 실행하면: - 루트 폴더(/home/micco/IaC/)에서 실행 → 에러 (main.tf가 없음) - 모듈 폴더(modules/compute/)에서 실행 → 에러 (완전한 구성이 아님) .terr..
1. 초기화 및 검증 관련terraform init설명: 현재 디렉터리를 Terraform 작업 디렉터리로 초기화합니다.프로바이더 플러그인 다운로드백엔드 설정 확인모듈 다운로드 terraform validate설명: .tf 파일 문법과 설정 문법을 검증합니다.문법 오류참조 오류terraform fmt설명: 코드를 Terraform 스타일 가이드(들여쓰기, 줄바꿈 등)에 맞춰 자동 정렬(format) 합니다.예시:2. 계획(Plan) 및 적용(Apply)terraform plan설명: 현재 상태(state)와 구성(configuration)을 비교해 “어떤 변경이 발생할지” 미리 보여줍니다.주요 옵션:-out=: 계획 결과를 바이너리 파일로 저장-var 'key=value': 인라인 변수 지정-var-fi..
HashiCopr에서 개발한 IaC 를 하기 위한 도구이다. Declarative 방식으로 어떤 리소스를 어떻게 프로비저닝할지를 선언하면, Terraform이 현재 상태와비교하여 필요한 변경만 자동으로 수행한다.멀티클라우드를 지원해서 aws, azure, gcp, vmware, k8s 등 수백 개의 프로바이더를 통해 다양한 플랫폼을단일 언어로 관리할 수 있다.코드로 작성되다보니 git에 저장해 변경 이력을 추적할 수 있다. 개념 설명ProviderAWS, Azure 등의 API와 통신해 실제 리소스를 생성·변경·삭제하는 드라이버 역할 (aws, azurerm 등).Resource생성할 대상 리소스 하나하나를 의미 (aws_instance, azurerm_virtual..