terraform 50

테라폼 시리즈 8편. 변경/변경불가능 속성

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. 변경/변경불가능 속성이란? 테라폼 코드를 인프라에 반영 한 후, 일부 속성을 변경하고 다시 인프라에 반영하면 어떻게 될까요? 조건에 따라 결과가 달라집니다. provider에서 변경내용이 적용 불가능하면 해당 리소스를 삭제하고 다시 생성합니다. 바로 적용이 가능하면 리소스 속성만 수정합니다. 예제를 살펴보면서 변경가능/불가능 과정을 상세히 살펴볼게요!. 2. 변경 가능(Mutable) 속성 변경가능 속성은 값이 수정되면, 기존 인프라에 수정된 내용이 바로 반영됩니다. 실습 예제는 AWS EC2 Instance의 태그를 수정해볼게요. 먼저 태그가 없는 ec2인스턴스를 생성하겠습니다. 코드는 아래와 같습니다. cat

연재 시리즈 2022.10.21

테라폼 시리즈 7편. 테라폼 상태파일(tfstate)

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. 상태파일이란? 테라폼은 코드를 인프라로 반영하면, 반영 상태를 파일로 관리합니다. 파일 확장자는 tfstate입니다. 상태파일은 json파일입니다. 2. 상태파일 목록 확인 상태파일에 있는 내용이 매우 많으면 사람이 해석하기 매우 불편합니다. 다행히 테라폼은 상태목록과 내용을 확인하는 명령어를 제공합니다. 상태파일 목록은 terraform state list명령어로 확인할 수 있습니다. list로 보이는 목록은 tf파일의 BLOCK라벨입니다. 주의사항은 tf파일에 정의되어 있다고 state list에 보이는 것이 아니라, terraform apply명령어를 통해 코드가 인프라에 반영되어 있어야 합니다. terraform state lis..

연재 시리즈 2022.10.21

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

참고자료: https://www.terraform.io/language#about-the-terraform-language 테라폼 언어는 BLOCK단위로 구성됩니다. "" "" { # Block body = # Argument } 아래 예제는 provider이라는 BLOCK타입을 사용하여 provider를 설정합니다. provider "aws" { region = "ap-northeast-2" access_key = "my-access-key" secret_key = "my-secret-key" } 아래 예제는 resource라는 BLOCK타입을 이용하여 aws provider의 vpc를 설정합니다. resource BLOCK은 많이 사용하는 BLOCK TYPE입니다. resource "aws_vpc" ..

연재 시리즈 2022.10.19

테라폼 시리즈 4편. 테라폼의 시작 Provider 설정

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. Provider란? 테라폼을 사용하기 위해 Provider 설정이 필요합니다. provider는 코드를 어떤 인프라 환경에 반영할 것인가를 설정합니다. 참고: [테라폼 용어](https://malwareanalysis.tistory.com/425)챕터 아래 예제는 aws에 코드를 반영하기 위해 aws provider를 설정했습니다. 그리고 region, access_key, secret_key를 설정했습니다. # 참고자료: https://registry.terraform.io/providers/hashicorp/aws/latest/docs cat

연재 시리즈 2022.10.19

테라폼 시리즈 3편. 테라폼 설치

테라폼 설치는 간단합니다. 테라폼 바이너리를 다운로드 받으면 됩니다. 공식문서에(https://learn.hashicorp.com/tutorials/terraform/install-cli) 리눅스, 윈도우, 맥 운영체제에 테라폼 바이너리가를 설치하는 방법을 친절히 설명합니다. 저는 MAC을 사용하고 있어 homebrew로 설치 했습니다. brew tap hashicorp/tap brew install hashicorp/tap/terraform 테라폼 바이너리가 정상적으로 인식되면 terraform 명령어를 실행할 수 있습니다. 아래 예제는 테라폼 바이너리 버전을 출력합니다 terraform --version

연재 시리즈 2022.10.19