Terraform 6

7주차 - 워크플로

테라폼으로 시작하는 IaC - 김민수, 김재준, 이규석, 이유종 저 한빛미디어 모든 실습은 Mac OS 기준으로 작성되었습니다 8. 워크플로 8.1 규모에 따른 워크플로 테라폼 워크플로 : Write → Plan → Apply, 워크스페이스 별로 접근 권한을 관리하고 중앙에서 관리되는 실행 환경을 설계하여 규모에 맞는 워크플로 설계가 필요 개인 워크플로 : 개인이 테라폼으로 일하는 방식의 예 Write : 프로비저닝하려는 목적에 따라 테라폼 코드를 작성 개인 작업이더라도 반복적인 사용성을 고려하자. 인수에 할당되는 값을 입력 변수화하고 반복적인 구조가 발생하는 경우 리소스 단위별로 반복문을 사용할지 다수의 리소스를 모듈화할지 결정한다. Plan : 적용하기 위한 실행 계획을 통해 리뷰 테라폼의 Plan뿐..

6주차 - 협업

테라폼으로 시작하는 IaC - 김민수, 김재준, 이규석, 이유종 저 한빛미디어 모든 실습은 Mac OS 기준으로 작성되었습니다 7. 협업 - 인프라 규모가 커지고 관리 팀원이 늘어날 수록 구성 코드 관리가 필요하다. - 공동 작업자는 작성된 코드를 점검하고 서로의 코드를 학습할 수 있는 협업 환경을 구성하게 된다. - 협업 환경 구성 요소는 코드를 다수의 작업자가 유지 ㅂ수 할 수 있도록 돕는 VCS 와 테라폼 State를 중앙화하는 중앙 저장소가 대표적. - 협업 과정에서 고려 요소(아래 그림 참조) 유형 1 : VCS, 중앙 저장소 없음 동일한 대상을 관리하는 여러 작업자는 동일한 프로비저닝을 위해 각자 자신이 작성한 코드를 수동으로 공유가 필요 작업자의 수가 늘어날수록 코드 동기화는 어려워지고, 각..

4주차 - State & 모듈

테라폼으로 시작하는 IaC - 김민수, 김재준, 이규석, 이유종 저 한빛미디어 모든 실습은 Mac OS 기준으로 작성되었습니다 5. State - 테라폼은 Statefull 애플리케이션이다. - 프로비저닝 결과에 따른 State를 저장하고 프로비저닝한 모든 내용을 저장된 상태로 추적한다. - 로컬 실행 환경에서는 terraform.tfstate파일에 JSON형태로 저장되고 - 팀이나 조직에서의 공동 관리를 위해서는 원격 저장소에 저장해 공유하는 방식을 활용한다. - State에는 작업자가 정의한 코드와 실제 반영된 프로비저닝 결과를 저장하고 - 이 정보를 토대로 이후의 리소스 생성, 수정, 삭제에 대한 동작 판단 작업을 수행한다. 5.1 State 목적과 의미 - 대상 환경에서 어떤 리소스가 테라폼으로 ..

3주차 - Terraform 기본 사용 3/3

테라폼으로 시작하는 IaC - 김민수, 김재준, 이규석, 이유종 저 한빛미디어 모든 실습은 Mac OS 기준으로 작성되었습니다 3.10 조건문 - 테라폼에서의 조건식은 3항 연산자 형태를 갖는다. - 조건은 true 또는 false로 확인되는 모든 표현식을 사용할 수 있다 - 일반적으로 비교, 논리 연산자를 사용해 조건을 확인한다. # ? : var.a != "" ? var.a : "default-a" # var.a가 빈 문자열이 아니라면 var.a를, 비어있을때는 "default-a"를 반환한다. - 조건식의 각 조건은 비교 대상의 형태가 다르면 테라폼 실행시 조건 비교를 위해 형태를 추론하여 자동변환 - 이때 협업자는 작업자 사이에 의미 전달이 명확하지 않아 혼란을 겪을 수 있으므로 명시적인 형태로 ..

2주차 - Terraform 기본 사용 2/3

테라폼으로 시작하는 IaC - 김민수, 김재준, 이규석, 이유종 저 한빛미디어 모든 실습은 Mac OS 기준으로 작성되었습니다 3.5 데이터 소스 - data 블록 - 테라폼으로 정의되지 않은 외부 리소스 또는 저장된 정보를 태라폼 내에서 참조할 때 사용 3.5.1 데이터 소스 구성 # 형식 data "프로바이더 이름_리소스 유형" "고유한 이름" { 구성 인수들.. } 정의 시 사용 가능한 메타 인수 depends_on : 종속성을 선언하며, 선언된 구성요소와의 생성 시점에 대해 정의 count : 선언된 개수에 따라 여러 리소스를 생성 for_each : map 또는 set 타입의 데이터 배열의 값을 기준으로 여러 리소스를 생성 lifecycle : 리소스의 수명주기 관리 실습 # 실습을 위해 디렉토..

1주차 - Terraform 기본 사용 1/3

테라폼으로 시작하는 IaC - 김민수, 김재준, 이규석, 이유종 저 한빛미디어 모든 실습은 Mac OS 기준으로 작성되었습니다 2장 실행환경 구성 Terraform 설치 - 실습1 # tfenv - version 관리 brew install tfenv # tfenv - 설치 가능한 버전 리스트 tfenv list-remote # tfenv - 특정 버전( 1.5.2 )설치 tfenv install 1.5.2 # tfenv로 설치되어있는 버전 확인 tfenv list # Terraform 명령어를 터미널에서 자동완성되도록 설정 terraform -install-autocomplete # 위 스크립트 실행시 # Error executing CLI: Did not find any shells to instal..