본문 바로가기

Terraform/Terraform 101 Study14

3주차 1편 테라폼 기초 - 기본 사용 3/3 3.9 반복문 (2/2) for_each for_each를 사용하면 주어진 map 또는 set 타입의 컬렉션에 있는 각 요소를 개별적으로 처리할 수 있습니다.각 요소에 대해 each.key와 each.value를 통해 해당 요소의 키와 값을 사용할 수 있습니다.each.key: 이 인스턴스에 해당하는 map 타입의 키 값.each.value: 이 인스턴스에 해당하는 map의 값.map 또는 set 타입이 아닌 표현식은 toset 등의 함수를 사용해 이 타입으로 변환해야 합니다.예시 - mapresource "azurerm_resource_group" "rg" { for_each = tomap({ a_group = "eastus" another_group = "westus2" }).. 2024. 6. 30.
2주차 3편 테라폼 기초 - 기본 사용 2/3 3.7 local 지역 값로컬 변수(local variable)는 코드 내에서 선언되고, 코드 내에서만 참조 가능한 값을 의미합니다.로컬 변수는 선언된 모듈 내에서만 접근할 수 있으며, 외부에서는 접근이 불가능합니다.실행 시에 입력값을 받을 수 없습니다. 오직 코드 내에서 선언되고 가공된 값만을 사용합니다.로컬 변수는 테라폼 코드 구현 시 자주 사용하는 값이나 표현식을 반복적으로 사용하기 쉽게 합니다.여러 곳에서 빈번하게 사용될 경우 실제 값에 대한 추적이 어려워질 수 있습니다. 이는 코드의 유지 관리 측면에서 부담이 될 수 있습니다.local 선언선언 블록로컬 변수는 locals 블록으로 시작하여 선언됩니다.선언되는 인수에 표현되는 값은 상수뿐만 아니라 리소스의 속성, 변수의 값들도 조합하여 정의할 수.. 2024. 6. 19.
2주차 2편 테라폼 기초 - 기본 사용 2/3 [실습1] VPC + 보안그룹 + EC2 배포default VPC 대신 새로운 VPC를 생성하고 그 안에 EC2 인스턴스를 배포VPC 생성새 디렉터리와 Terraform 파일 생성mkdir my-vpc-ec2cd my-vpc-ec2touch vpc.tfvpc.tf 파일 수정provider "aws" { region = "ap-northeast-2"}resource "aws_vpc" "myvpc" { cidr_block = "10.10.0.0/16" tags = { Name = "t101-study" }}Terraform 초기화 및 배포terraform initterraform planterraform apply -auto-approveVPC 확인# AWS CLI의 결과를 페이지별로 보여주는.. 2024. 6. 19.
2주차 1편 테라폼 기초 - 기본 사용 2/3 3.5 데이터 소스Terraform에서는 데이터 소스를 사용하여 테라폼 코드 외부에서 정의된 리소스나 저장된 정보를 참조할 수 있습니다.이를 통해 기존 리소스를 활용하거나 외부 데이터를 가져와서 테라폼 코드 내에서 사용할 수 있습니다.데이터 소스 구성데이터 소스 블록은 data로 시작하며, 리소스 블록과 유사하게 구성됩니다.데이터 소스 유형은 '프로바이더_리소스유형' 형태로 정의됩니다.data "local_file" "abc" { filename = "${path.module}/abc.txt"}데이터 소스를 정의할 때 사용할 수 있는 메타인수는 다음과 같습니다depends_on: 종속성을 선언하여 특정 리소스의 생성 시점을 정의합니다.count: 여러 리소스를 생성합니다.for_each: map 또는 .. 2024. 6. 16.