✔️ 입력 변수 (Input Variable) Input Variables - Configuration Language | Terraform by HashiCorp Input variables allow you to customize modules without altering their source code. Learn how to declare, define, and reference variables in configurations. www.terraform.io Terraform에서의 변수는 Input Variable이다. 변수는 variable이라는 블록을 사용하며 " " 안에 변수명을 지정한다. 변수를 정의할 때 몇가지 속성이 있다. description - 변수에 대한 설명 type - 변수..
✔️ 암시적 의존성 Terraform 코드를 이용해 EIP와 S3 버킷을 생성해보자 # Elastic IP resource resource "aws_eip" "app_server_eip" { instance = aws_instance.app_server.id # app_server 인스턴스를 만들고 그 인스턴스의 id 값을 vpc = true # 참조하라는 의미이다. } # S3 Bucket resource "aws_s3_bucket" "app_bucket" { bucket = "ssh-20220421" } 만들어지지도 않은 instance의 ID를 어떻게 알까 ? Argument reference - 리소스 블록을 선언할 때 사용하는 parameter Attribute reference - 리소스가 만..
✔️ Terraform 상태 확인 terraform.tfstate : 현재 상태 terrafrom.tfstate.backup : 직전 상태 두 파일 모두 절대로 직접 수정해서는 안되며 절대 git에 공유해서는 안되는 파일이다. [vagrant@controller 01]$ ls main.tf terraform.tfstate terraform.tfstate.backup ✔️ 상태 확인 명령어 terraform show terraform state list terraform state show aws_instance.app_server ✔️ 상태 재동기화 terraform refresh terraform show 명령을 통해 현재 인스턴스에 붙은 EBS 볼륨의 크기가 8인것을 확인했다. root_block_d..
✔️ 실행 순서 ✔️ 초기화 terraform init 프로바이더 플러그인을 설치한다. terraform init은 언제 실행하는가 ? 최초로 프로바이더를 설치할 때 프로바이더 버전을 업데이트할 때 더보기 [vagrant@controller 01]$ terraform init Initializing the backend... Initializing provider plugins... - Finding hashicorp/aws versions matching "~> 3.27"... - Installing hashicorp/aws v3.75.1... - Installed hashicorp/aws v3.75.1 (signed by HashiCorp) Terraform has created a lock file..
✔️ Terraform 구성 파일 .tf : HCL .tf.json : Json 형식 인코딩 Unicode 를 사용해야 한다. 디렉토리 현재 작업 디렉토리 위치에 따라 해당 디렉토리의 .tf, .tf.json 를 모두 읽어서 실행한다. 따라서 특정 작업을 하기 위해서는 디렉토리를 따로 만들고 .tf 파일을 만들어야 한다. 사전 준비 To follow this tutorial you will need: The Terraform CLI (0.14.9+) installed. The AWS CLI installed. AWS account and associated credentials that allow you to create resources. 현재 기준 0.13 ~ 1.x 까지는 호환이 된다. AWS를 이..
✔️ Terraform HashiCorp에서 오픈소스로 개발 중인 인프라스트럭쳐 구축 및 운영의 자동화를 지향하는 IaC 도구이다. Cloud, on-prem의 리소스 모두 구성 가능하다. Human-readable configuration을 지향한다. ✔️ Terraform 주요 기능 코드형 인프라 Terraform은 HCL 구성파일로 정의하며, 이를 통해 인프라의 구성을 코드화하고 버전 관리를 통해 관리할 수 있다. 실행 계획 실제로 배포하기 전에 계획 단계를 통해 수행 할 작업을 미리 확인할 수 있다. (Ansible --check와 비슷) 리소스 종속성 내부적으로는 리소스의 종속성이 있을 수 있다. 예를들어 aws vcp와 ec2를 선언했다 ec2가 vcp를 사용할것이다. 그래서 내부적으로 테라폼..