terraform 50

테라폼 시리즈 34편. 민감정보 보호

영상: https://youtu.be/-ysCr2BsC1I 민감정보 노출되는 부분 테라폼의 민감정보(비밀번호 등)는 외부에 공개되거나 보안사고를 당했을 때 노출이 되는 문제가 있습니다. 민감정보가 노출될 수 있는 위치는 테라폼 코드와 상태파일 2종류입니다. provider block 민감정보 provider block에서 인증정보 설정가 민감정보에 해당합니다. 예로 aws provider에는 access_key와 secret_key가 민감정보입니다. 외부에 공개될 경우 인증정보가 그대로 노출되므로 절대 인증정보를 provider block에 설정하면 안됩니다. provider "aws" { region = "us-west-2" access_key = "my-access-key" secret_key = "..

연재 시리즈 2022.11.24

테라폼 시리즈 33편. for expression을 이용한 반복문

영상: https://youtu.be/Hj_FGLNmXNI for expression이란? For expression은 반복을 이용하여 일괄 변환작업에 사용합니다. 변환작업은 타입 또는 값을 수정하는 작업입니다. 주의사항은 For expression의 결과 타입은 tuple 또는 object입니다. 원본이 list이더라도 결과는 tuple 또는 Object로 변환됩니다. [ ]를 사용하면 tuple 타입, { }를 사용하면 object 타입으로 변환됩니다. [for item in 조회할 expression: 변환작업] --> 리턴값이 tuple {for item in 조회할 expression: 변환작업} --> 리턴값이 object 예제 - s3 bucket이름 일괄 수정 for expression을 ..

연재 시리즈 2022.11.19

테라폼 시리즈 32편. 조건문 - 3항 연산자

사용방법 테라폼은 3항 연산자를 지원합니다. 3항 연산자는 간단한 조건문(타입 검사 등)을 구현할 때 적합합니다. ? : 예제1 - string타입 검사 아래 테라폼 코드는 instance_type을 검사하여 aws EC2 Instance를 생성하는 예제입니다. instance_type은 3항 연산자 조건문 결과로 설정됩니다. 3항 연산자는 variable ec2_type이 빈값이면 t2_nano로 설정합니다. 코드링크: https://github.com/sungwook-practice/terraform-study/tree/main/week5/condition/condition-basic provider "aws" { region = "ap-northeast-2" } variable ec2_type { ..

연재 시리즈 2022.11.19

테라폼 시리즈 31편. for_each를 활용한 반복문

영상: https://youtu.be/fhgGcC7wJoc for_each란? for-each는 반복(for)을 할 때 타입 값에 대해 하나하나 each object로 접근한다는 의미입니다. each object는 key, value 2개의 속성을 가지고 있습니다. each object로 접근한다는 의미가 이해하기 어려운데요. each object를 json과 비교해서 이해하면 쉽습니다. json은 key, value들의 집합입니다. value에 접근하기 위해 key를 사용합니다. 아래 world라는 값에 접근하기 위해 a[”hello”]로 접근합니다. json에서 key를 이용하여 value를 접근한 것처럼 테라폼 each object도 key로 value를 얻을 수 있습니다. 하지만 for_each는..

연재 시리즈 2022.11.18

테라폼 시리즈 30편. count를 이용한 반복문

영상: https://youtu.be/xOSshyyJoZk 사용방법 meta-argument 중 count는 block을 count 값 만큼 반복합니다. 아래 예제에서 EC2 instace가 2대 생성됩니다. count가 2개로 설정되어서 2대 생성됩니다. resource "aws_instance" "server" { count = 2 ... } 예제 아래 예제에서 EC2 instace가 2대 생성됩니다. count가 2개로 설정되어서 2대 생성됩니다. 예제코드 링크: https://github.com/sungwook-practice/terraform-study/tree/main/week5/for-loop/count-meta-argument provider "aws" { region = "ap-north..

연재 시리즈 2022.11.14

테라폼 시리즈 28편. Terraform console

테라폼 console은 대화형(interactive command-line) 콘솔입니다. 테라폼 특정 문법을 실시간으로 테스트할 때 사용합니다. 실행방법 terraform console 명령어를 입력하면 콘솔로 진입합니다. terraform console 변수선언 테라폼 콘솔은 python, nodejs 등 다른 프로그래밍 언어 콘솔과 다르게 콘솔에서 변수 선언이 안됩니다. 변수를 사용하려면 local/var block 사용해야 합니다. var/local block은 테스트하고 싶은 변수를 tf파일에 작성하면 됩니다. locals { map = { a = 1 b = 2 c = 3 } } variable "test" { type = map(any) default = { a = 1 b = 2 c = 3 } ..

연재 시리즈 2022.11.14

테라폼 시리즈 27편. HCL 언어 구조

테라폼 코드는 HCL라는 언어로 작성합니다. HCL은 Block이라는 기본단위를 사용합니다. 테라폼 코드는 Block단위의 집합입니다. Block의 설정(Body)은 Argument로 구성됩니다. Argument는 IDENTIFIER과 EXPRESSION으로 표현할 수 있습니다. 공식문서는 어렵게 설명되어 있는데, 단순하게 “필드이름”=”필드값”이라고 생각하면 됩니다. Argument 중에 특수한 기능을 담당하는 Argument는 Meta-Argument라고 부릅니다. Meta-arguments는 공식문서(https://developer.hashicorp.com/terraform/language)에서 찾을 수 있습니다.

연재 시리즈 2022.11.14