분류 전체보기

·Terraform
Variable (베리어블, 변수)Terraform의 variable은 인프라에 여러번 사용되는 변수의 값을 선언하고 할당하는 데 사용되는 기능이다. → 즉 인프라에 필요한 변수는 variable 여기에 저장하면 된다. (매번 값을 하드코딩할 필요 없다) 사용 예시)개발하는 어플리케이션 이름이 "google"이라면, 이름을 variable에 저장한다. (variable = google) 개발 도중에 이름을 호출해야 할 때 마다 variables에서 값을 가져오면 된다.👓 variable 특징✍ HCL Syntax (variable 문법 예시)variable "instance_type" { #instance_type라는 변수 description = "EC2 인스턴스 타입" type ..
·Terraform
terraform force-unlock 명령어terraform force-unlock는 Terraform에서 terraform.tfstate(상태 파일)에 걸린 잠금(lock)을 강제로 해제하는 명령어이다.🔒 Terraform의 잠금(lock)이란?Terraform의 lock이란 동시에 여러 사용자가 같은 상태 파일을 변경하는 것을 방지하기 위해 "잠금(lock)"을 거는거다.📌일반적인 예시:terraform apply 중에 다른 사용자가 다른 작업을 하지 못하도록 막는다. 보통은 작업이 끝나면 자동으로 잠금이 해제되지만, ⚠️적용 도중 오류가 발생하거나 강제 종료되면 잠금이 풀리지 않을 수 있다.이때 terraform force-unlock 명령으로 강제로 잠금을 해제할 수 있다. 😶‍🌫️ ..
·Terraform
terraform import 명령어terraform import는 클라우드에 이미 존재하는 리소스(예: 인프라, 네트워크 등)를 terraform.tfstate 상태 파일에 등록하여 관리 대상으로 포함시키는 명령어이다 terraform import는 기존에 수동으로 만든 리소스를 Terraform으로 관리하고 싶을 때 가장 많이 사용된다. 🎯 예시:AWS Console에서 수동으로 만든 S3 버킷 a가 존재함(이 버킷은 Terraform으로 만든 게 아님 → 코드도 없음)하지만 이제부터 Terraform으로 관리하고 싶다. 1. Terraform 코드 작성 (main.tf)기존에 bucket의 configuration을 최대한 비슷하게 코드를 작성한다resource "aws_s3_bucket" "a..
·Terraform
String FunctionTerraform의 String Function은 tf 파일(코드) 안에서 문자열을 다룰 때 사용하는 Terraform 내장 함수이다.문자열(String)을 합치거나, 변경하거나, 추출하거나, 형식화할 수 있다. 📌예시: "abcDEF"를 "ABCDEF"로 바꾸기variable "mixed_case" { default = "abcDEF"}## Terraform의 upper() 함수를 사용하면 된다output "upper_case" { value = upper(var.mixed_case)} String Function 종류함수 이름설명예시join()문자열 리스트를 하나의 문자열로 합침join("-", ["a", "b", "c"]) → "a-b-c"split()문자열을 구분..
·Terraform
Output (아웃풋, 출력)Terraform의 Output은 Terraform 코드를 실행하여 생성한 인프라의 특정 값을 추출/표시하고자 할 때 사용한다.즉, 사용자가 Terraform을 적용한 후 결과값을 확인하고 싶을 때 사용하는 변수이다. 대표적인 예시) 생성된 EC2 인스턴스의 IP 주소를 output을 통해 확인output 문법output { value = } Terraform의 output 변수를 잘 설정해두면, terraform apply 할 때 필요한 정보를 콘솔에서 확인할 수 있다📄 main.tf 파일 예시# 입력 변수 정의variable "name" { default = "Terraform"}# 로컬 값 정의locals { greeting = "Hello, ${var.nam..
·Terraform
Terraform RegistryTerraform Registry는 공식 Terraform의 모듈(module) 저장소로, 전 세계 사용자들이 만든 Terraform 모듈들을 모아둔 웹사이트/서비스이다 📦 "모듈(Module)"이란?Terraform에서 자주 쓰는 인프라 구성(코드)을 재사용 가능하게 만든 코드 묶음(똑같은 일반 terraform 코드를 하나의 모듈로써 저장) 예시:project/├── main.tf├── modules/│ └── ec2/│ ├── main.tf│ ├── variables.tf│ └── outputs.tf Terraform Registry의 public(공개) 모듈은 다음과 같은 내용을 모듈로써 포함하고 있다.모듈 이름사용하는 P..
·Terraform
terraform.tfstate란? > https://jibinary.tistory.com/780 terraform refresh terraform refresh는 클라우드(AWS, Azure 등) 인프라의 현재 상태를 조회하여 상태 파일(terraform.tfstate)을 최신 상태로 업데이트한다.Terraform이 저장하고 있던 상태(terraform.tfstate)와 비교해서 변경된 부분이 있다면 .tfstate를 자동으로 업데이트한다.(그러나 테라폼 코드(.tf 파일)는 변경되지 않으며, 리소스를 생성/삭제하지도 않는다.) 예시)테라폼 코드 (이미 terraform apply 한 상태)resource "aws_instance" "example" { ami = "ami-0c55b..
·Terraform
infrastructure as codeIaC의 핵심 원칙 1. Idempotence멱등성: 컴퓨터 과학,수학에서 같은 연산을 여러 번 수행해도 결과가 변하지 않는 성질같은 코드를 여러 번 실행해도 결과는 항상 동일해야 한다.예: 같은 코드로 terraform apply(테라폼 실행)을 여러 번 해도 리소스는 그대로 유지됨 (변경 없음). 2. Versioned Infrastructure 버전 관리되는 인프라인프라 구성도 코드처럼 Git 등으로 버전 관리해야 함.변경 이력 추적, 롤백, 협업 가능해진다. 3. Self-describing(설명없이) 자체 설명이 가능한 인프라 코드만 보면 어떤 인프라가 구성되는지 명확히 알 수 있어야 함.문서/설명이 없이도 코드만으로 개발자가 인프라 상태를 이해 가능. ..
찌르비
'분류 전체보기' 카테고리의 글 목록