전체 글 36

[T1012] 3주차 - 테라폼 기본 사용 3/3 (프로바이더 구성)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 프로바이더란? 프로바이더가 제공하는 API를 호출해 상호작용을 한다. 여기서 테라폼이 대상과의 상호작용을 할 수 있도록 하는 것이 '프로바이더' aws를 예로 들면 우리는 aws-cli를 사용하거나 aws-sdk등을 사용하여 aws 서비스를 조작할수 있는데 이때 awscli 같은, aws-sdk 같이 terraform 에서 특정 대상과의 중간다리 해주는 역할이 프로바이더 라고 생각한다 악분의 블로그에 테라폼 동작원리에 대한 설명이 쉽게 정리되어 있다 테라폼으로 EKS만들기 프로젝트 3-2편 - 테라폼 동작원리 이 글은 테라폼이 어떻게 동작하는지 설명합니다. 3편에서 실행했던 hello world예제를 ..

[T1012] 3주차 - 테라폼 기본 사용 3/3 (terraform_data, moved, 환경변수)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 3.13 null_resource와 terraform_data 테라폼 프로비저닝 동작을 설계하면서 사용자가 의도적으로 프로비저닝하는 동작을 조율해야 하는 상황이 발생하는데, 프로바이더가 제공하는 리소스 수명주기 관리만으로는 이를 해결하기 어렵기 때문에 해당 리소스가 필요하다 1.3 까지는 null_resource 에 대한 소개가 1.4 부터는 terraform_data 에 대한 소개로 변경되었음을 확인 할수 있습니다 하지만 1.4 이후 소개가 바뀌었을뿐 null_resource 사용 가능 null_resource 대체로 terraform_data에 대한 사용 방법 예제 도 따로 있습니다 null_res..

[T1012] 3주차 - 테라폼 기본 사용 3/3 (조건문,함수,프로비저너)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 3.10 조건문 테라폼에서의 조건식은 3항 연산자 형태를 갖는다. 조건은 true 또는 false 로 확인되는 모든 표현식을 사용할 수 있다 Conditional Expressions - Configuration Language | Terraform | HashiCorp Developer Conditional expressions select one of two values. You can use them to define defaults to replace invalid values. developer.hashicorp.com 일반적으로 비교, 논리 연산자를 사용해 조건을 확인 조건식은 "?" 기호를..

[T1012] 2주차 - 테라폼 기본 사용 2/3 (반복문 + 실습)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 3.9 반복문 list 형태의 값 목록이나 Key-Value 형태의 문자열 집합인 데이터가 있는 경우 동일한 내용에 대해 테라폼 구성 정의를 반복적으로 하지 않고 관리할 수 있다. count 반복문, 정수 값만큼 리소스나 모듈을 생성 리소스 또는 모듈 블록에 count 값이 정수인 인수가 포함된 경우 선언된 정수 값만큼 리소스나 모듈을 생성하게 된다. count에서 생성되는 참조값은 count.index이며, 반복하는 경우 0부터 1씩 증가해 인덱스가 부여된다. # 실습 환경 구성 mkdir 3.9 && cd 3.9 # main.tf 생성 resource "local_file" "abc" { count..

[T1012] 2주차 - 테라폼 기본 사용 2/3 (출력 output)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 3.8 출력 output 출력 값은 주로 테라폼 코드의 프로비저닝 수행 후의 결과 속성 값을 확인하는 용도로 사용된다. 또한 프로그래밍 언어에서 코드 내 요소 간에 제한된 노출을 지원하듯 테라폼 모듈 간, 워크스페이스 간 데이터 접근 요소로도 활용할 수 있다. 루트 모듈에서 사용자가 확인하고자 하는 특정 속성 출력 자식 모듈의 특정 값을 정의하고 루트 모듈에서 결과를 참조 서로 다른 루트 모듈의 결과를 원격으로 읽기 위한 접근 요소 output 선언 모듈 내에서 생성되는 속성 값들은 outout 블록에 정의된다 output "instance_ip_addr" { value = "http://${aws_i..

[T1012] 2주차 - 테라폼 기본 사용 2/3 (local 지역 값 + 실습)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 3.7 local 지역 값 코드 내에서 사용자가 지정한 값 또는 속성 값을 가공해 참조 가능한 local (지역 값)은 외부에서 입력되지 않고, 코드 내에서만 가공되어 동작 하는 값을 선언한다. local은 입력 변수와 달리 선언된 모듈 내에서만 접근 가능 변수처럼 실행시 입력받을수 없음! local은 사용자가 테라폼 코드를 구현할때 값이나 표현식을 반복적으로 사용할수 있는 편의를 제공 단점으로는 무차별하게 사용할경우 값에 대한 추적이 어려워짐 (유지관리 측면에서 부담) local 선언 로컬이 선언되는 블록은 locals로 시작한다. 선언되는 인수에 표현되는 값은 상수만이 아닌 리소스의 속성, 변수의 ..

[T1012] 2주차 - 테라폼 기본 사용 2/3 (데이터 소스 + 실습)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 데이터 소스 데이터 소스 구성 데이터 소스는 테라폼으로 정의되지 않은 외부 리소스 또는 저장된 정보를 테라폼 내에 참조할때 사용 데이터 소스 블록은 data로 시작 하여 데이터 소스 유형을 정의 데이터 소스 유형을 정의한 뒤에는 고유한 이름을 붙인다 (1주차에서 배운 리소스 블록처럼 동일 유형에 대해 이름은 중복될수 없다) # main.tf 파일에 다음과 같이 생성 data "local_file" "abc" { filename = "${path.module}/abc.txt" } # 확인을 위한 abc.txt 생성 echo "t101 study - 2week" > abc.txt terraform init..

[T1012] 2주차 - 테라폼 기본 사용 2/3 (입력변수)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 실습 환경 mkdir 3.5 && cd 3.5 3.6 입력 변수 Variable 입력변수는 인프라를 구성하는데 필요한 속성 값을 정의해 코드 변경없이 여러 인프라를 생성하는 데 목적이 있다. 변수선언 방식 # 3.6장 실습을 위한 사전 준비 mkdir 3.6 && cd 3.6 변수는 variable로 시작되는 블록으로 구성 변수 블록 뒤의 이름 값은 동일 모듈 내 모든 변수 선언에서 고유해야함 # variable 블록 선언의 예 variable "" { = } variable "image_id" { type = string } 참고할 점으로 terraform에서 사용중인 메타 인수를 이름으로 사용할수 ..

[T1012] 1주차 - 테라폼 기본 사용 1/3 (기본 사용법)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 사전구성 [T1012] 1주차 - 테라폼 기본 사용 1/2 (환경구성) 해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 [1. 개요] 첫 스터디 참여 테라폼 설치와, 기본 사용에 대하여 정리 [2. 사전준비] 실행환경 Windows 1 portnumber.tistory.com HCL 이란? HCL HashiCorp configuration language은 하시코프사에서 IaC와 구성 정보를 명시하기 위해 개발된 오픈 소스 도구 실습환경 # workspaces 폴더 생성 후 이동 mkdir workspaces cd workspaces # 03.st..

[T1012] 1주차 - 테라폼 기본 사용 1/2 (환경구성)

해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다 [1. 개요] 첫 스터디 참여 테라폼 설치와, 기본 사용에 대하여 정리 [2. 사전준비] 실행환경 Windows 10 pro WSL2 (Ubuntu-20.04) AWS 계정 [AWS 링크] IAM User 생성 (AdministratorAccess) VSCODE [다운로드 링크] (VSCODE 플러그인) HashiCorp HCL (VSCODE 플러그인) HashiCorp Terraform (VSCODE 플러그인) graphviz Route53 (옵션, 가비아에 이미 사둔게 있어서 Route53에 등록 진행) [WSL 구성] tfenv aws CLI tree, jq install [tfenv 설치] 공식..