전체 글(54)
-
[기본 구성 요소] state 파일
1. state 파일- Terraform이 관리하는 인프라의 현재 상태를 저장하는 파일이다.- Terraform이 리소스를 추적하고 변경 사항을 계산하며 기존 리소스와의 동기화를 유지하는데 핵심적인 역할을 한다.- 기본적으로 terraform.tfstate라는 이름으로 로컬에 저장된다.- 원격 저장소(ex. S3, Azure Blob 등)에서도 관리할 수 있다. 2. state 파일 주요 특징- 현재 상태 저장 : Terraform이 관리하는 모든 리소스 구성을 저장하여 실제 상태와 동기화한다.- 변경 사항 추적 : terraform plan과 terraform apply를 실행할 때, state 파일을 기준으로 변경 사항 계산한다.- 리소스 간 의존성 관리 : 의존성 추적하여 Terraform이 올바..
2024.11.26 -
[기본 구성 요소] Output
1. Output- 실행 결과를 출력하는 블록이다.- 리소스 생성 후 ID, IP 주소, ARN 등을 출력하여 사용자에게 제공하거나 데이터 전달하는 데 사용된다. 2. Output 주요 특징- 결과 정보 제공 : Terraform 실행 결과로 생성된 리소스의 속성 값을 사용자에게 출력한다.- 모듈 간 데이터 전달 - 가시성 제어 : sensitive 속성을 통해 민감한 데이터를 숨길 수 있다.- CLI에서 확인 3. Output 예제- Output 정의 예제 (outputs.tf)* 예제# 생성된 EC2 인스턴스의 고유 ID 출력output "instance_id" {# 추가 설명 description = "The ID of the created EC2 instance"# 출력할 값을 지정 v..
2024.11.26 -
[기본 구성 요소] Variables
1. Variables- Variables는 반복적이고 동적인 구성을 재사용성과 관리 용이성을 높이기 위해 사용된다.- 유연성과 가독성을 크게 향상시킨다. 2. Variables 주요 특징- 유연한 값 주입 : 명령줄, 환경 변수, 파일을 통해 설정 가능하다.- 다양한 데이터 유형 지원 : string, number, bool, list, map, object 등 지원한다.- 기본값 지원 : 변수가 설정되지 않았을 때 사용할 기본값 정의할 수 있다.- 유효성 검증 : 변수 값의 조건을 설정하여 유효성 검사할 수 있다. 3. Variables 예제- 변수 정의 예제 (varialbes.tf)* 예제variable "region" { ..
2024.11.26 -
[기본 구성 요소] Resource
1. Resource- 실제로 생성되거나 관리되는 인프라 구성 요소를 정의하는 블록이다.- Resource에는 EC2 인스턴스, 데이터베이스, 네트워크, DNS 레코드 등이 될 수 있다.- 이러한 리소스를 코드로 선언하여 인프라를 관리하고 추적 가능하도록 만든다. 2. Resource 주요 특징- 선언적 구성 : 원하는 최종 상태를 정의하면 Terraform이 리소스를 생성, 업데이트, 삭제한다.- ID 기반 관리 : 특정 ID를 기반으로 관리되며, 변경 사항은 Terraform의 상태 파일(State file)을 통해 추적된다.- 모듈화 및 재사용 가능 : 리소스를 모듈로 정의하면 쉽게 재사용할 수 있다.- Dependency 관리 : Terraform은 리소스 간의 의존성을 자동으로 계산하여 올바른..
2024.11.26 -
[기본 구성 요소] Provider
1. Provider- Terraform과 클라우드 서비스 또는 API를 통해 상호작용 할 수 있도록 해주는 플러그인이다.- Provider는 특정 서비스의 API와 Terraform의 명령 간의 다리(연결)를 제공한다.- Provider 블록은 어떤 플랫폼(AWS, Azure, GCP 등)에서 리소스를 생성하고 관리할 것인지를 명시한다. 2. Provider 주요 특징- 다양한 플랫폼 지원 : AWS, Azure, GCP, Kubernetest, GitHub 등에 대한 Provider 제공- 리소스 관리 : 리소스를 생성, 읽기, 업데이트, 삭제(CRUD)할 수 있는 기능 제공- 데이터 소스 : 외부 시스템에서 데이터를 가져와 Terraform 구성에서 사용 가능- 인증 및 설정 : API와 통신하기..
2024.11.25 -
[기본 구성 요소] HCL(HashiCorp Configuration Language)
1. HCL(HashiCorp Configuration Language)- Terraform과 같은 HashiCorp 제품에서 사용되는 구성 언어이다.- 사람에게 읽기 쉬운 문법을 제공하고, JSON 형식으로도 변환 가능하다.- 인프라를 코드로 정의하는 데 최적화되어 있고, 선언적 접근 방식을 지원한다.==> 즉, 최종 상태를 정의하면 Terraform에서 필요한 단계를 자동으로 계산한다. 2. HCL 주요 특징- 사람이 읽기 쉬운 문법 : 직관적이고 간결한 구문- 모듈화 : 재사용 가능한 모듈을 지원- 변수와 출력 지원 : 변수, 출력 값, 조건문을 사용해 유연성 제공- JSON 호환성 - 선언적 접근 : 원하는 상태 정의하면 Terraform에서 구현 3. HCL 구성의 주요 요소- Provide..
2024.11.20