본문 바로가기!

728x90

Terraform/기본 개념 및 문법

(7)
[Terraform] local-exec & remote-exec 프로비저너 Terraform의 프로비저너(provisioner)는 리소스가 생성된 후 추가 작업을 자동으로 수행할 수 있게 합니다.이번 포스트에서는 local-exec, remote-exec 프로비저너와 함께 file 프로비저너를 사용하여 파일 전송을 자동화하는 방법을 설명하겠습니다.  1. local-exec 프로비저너local-exec 프로비저너는 테라폼이 실행되는 환경(local)에서 명령을 실행합니다.예를 들어 다음과 같이 수행할 커맨드를 정의할 수 있습니다.resource "null_resource" "example" { provisioner "local-exec" { command = "echo The server's IP address is ${self.private_ip}" }}   2. l..
[Terraform] terraform_data 리소스 (null_resource 비교) 1. terraform_data 리소스 (null_resource 와의 비교점)Terraform 1.4 버전이 릴리스되면서 기존의 null_resource를 대체하는 terraform_data 리소스가 추가되었습니다.terraform_data는 null_resource와 달리 별도의 프로바이더 구성이 필요하지 않으며, 테라폼 자체에 포함된 기본 수명주기 관리자를 제공합니다.null_resource와 terraform_data는 주로 Terraform 프로비저닝 동작을 설계하는 데 사용됩니다.이는 사용자가 의도적으로 프로비저닝 동작을 조율해야 하는 상황에서, 프로바이더가 제공하는 리소스 수명주기 관리만으로는 해결하기 어려울 때 유용합니다.terraform_data 리소스는 임의의 값(input인수를 통해)..
[Terraform] count, for_each 등 실습예제 Challenge1) 참고 코드 : https://github.com/junho102/Terraform-Study/tree/main/Week2/challenge1리전 내에서 사용 가능한 가용영역 목록 가져오기를 사용한 VPC 리소스 생성data "aws_availability_zones" "az" { state = "available"}resource "aws_vpc" "vpc" { cidr_block = var.vpc_cidr enable_dns_support = true enable_dns_hostnames = true tags = { Name = "${var.env}-vpc" }}resource "aws_subnet" "pub_subnet1" { vpc_id ..
[Terraform] Variables, Outputs, Data, functions Variables and OutputsTerraform에서 변수(variables)는 크게 input, output, local로 볼 수 있음.local 변수는 주로 특정 값들을 연산하여 하나의 변수로 관리하려 할 때 사용. merge, concat, max와 같은 함수를 사용하여 특정 local변수를 생성 가능.# input variablesvariable "eks_version" { default = "1.22"}# output variablesoutput "dmz_subnet_id" { value = aws_subnet.dmz_subnet.*.id}# local variableslocals { common_tags = { Service = local.service_name Owner..
[Terraform] Resource Block 구문 문법(lifecycle, depends_on) resource를 생성하기 위해 필요한 Arguments 외에 모든 resource가 공통적으로 사용할 수 있는 Arguments를 Meta Arguments라 합니다. - Arguments 참조resource를 생성하기 위해 필요한 Arguments 외에 모든 resource가 공통적으로 사용할 수 있는 Arguments를 Meta Arguments라 합니다.Meta Argument 인 lifecycle, depends_on 에 대해 실습을 진행합니다. 1. lifecyclelifecycle Meta Agument는 리소스의 수명 주기 동작을 제어합니다.lifecycle은 다음과 같은 object을 통해 리소스의 수명주기를 제어할 수 있습니다. create_before_destroy업데이트 중에 리소스..
[Terraform] 조건문 - 3항 연산자 1. 조건문 (3항 연산자)Terraform은 3항 연산자 조건문을 지원하며, 인프라를 동적으로 구성하거나 간단한 조건문을 구현할 때 적합합니다. 1-1) 3항 연산자의 기본 문법condition ? true_value : false_value  1-2) 사용 사례환경별 설정 : 개발, 테스트, 프로덕션 환경에 따라 다른 설정 값을 사용할 경우나 가용영역을 다르게 사용해야 할 경우 유용합니다.리소스 조건부 생성 : 특정 조건에 따라 리소스를 생성하거나 변경해야 할때 사용됩니다.  2. 조건문 (3항 연산자) 예시1. 조건문(3항 연산자)을 활용하여 (각자 편리한) AWS 리소스를 배포하는 코드를 작성코드 참고 : https://github.com/junho102/Terraform-Study/tree/ma..
[Terraform] Resource Block 구문 문법(count, for_each) 1. Terraform Resource Block 구문 문법 Terraform의 리소스 블록 구문에는 두 가지 주요 요소가 있습니다. 첫 번째는 Arguments로, 리소스를 생성하기 위해 필요한 특정 정보입니다.필수적으로 명시해야 하는 필수(Required) 항목과 추가 설정을 위한 선택적(Optional) 항목으로 나뉩니다. 각 리소스에 필요한 Arguments는 해당 프로바이더의 docs 페이지에서 확인할 수 있습니다. 두 번째는 Meta Arguments로, 모든 리소스에서 공통적으로 사용할 수 있는 Arguments입니다. 리소스 생성에 필요한 기본 Arguments 외에 추가적인 설정을 가능하게 합니다.ex) count, for_each, depends_on, lifecycle 등등  2. A..

728x90
반응형