DevOps/Terraform2022. 4. 22. 18:17[Terraform] 출력값(Output Value), 로컬값(Local Value)

✔️ 출력 값 (Output Value) Output Values - Configuration Language | Terraform by HashiCorp Output values are the return values of a Terraform module. www.terraform.io 출력값을 지정해 자주 확인해야 하는 리소스의 값을 확인할 수 있다. 인스턴스의 퍼블릭 ip나 EIP ip를 알고싶을 때는 어떻게 해야 할까 ? terraform state show aws_eip.app_server_eip ← 해당 명령어로 확인할 수 있다. 하지만, 매번 terraform.tfstate 파일을 열어 보거나 terraform show를 통해서 보는 것은 번거로운 작업이다. 이러한 값들을 출력하기 위해 사..

DevOps/Terraform2022. 4. 22. 17:45[Terraform] 연관된 변수들을 연쇄적으로 참조하기

✔️ 변수의 연쇄 참조 인스턴스의 리전을 정하는 variable 블록을 보자 variable.tf variable "aws_region" { description = "AWS Region" type = string default = "ap-northeast-1" } 리전의 값은 string type이며 default의 값만 바꾸면 ec2 인스턴스를 배치할 리전을 변경할 수 있다. aws ec2 인스턴스를 배치 시킬 때 가용 영역을 인스턴스에 직접 정의하는 방식보다는 어떤 서브넷에 배치 시킬 것이냐를 결정하면 어떤 가용영역에 배치될 것인지가 결정되는 경우가 많다. 즉 가용 영역이 아닌 서브넷에 의해 배치되는 경우가 많다. variable.tf variable "aws_availability_zone" { ..

DevOps/Terraform2022. 4. 21. 23:32[Terraform] 입력 변수 (Input Variable)

✔️ 입력 변수 (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 - 변수..

DevOps/Terraform2022. 4. 21. 21:57[Terraform] 리소스 생성 순서와 의존성

✔️ 암시적 의존성 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 상태 확인
DevOps/Terraform2022. 4. 21. 21:55[Terraform] Terraform 상태 확인

✔️ 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] Terraform 소개 및 설치방법
DevOps/Terraform2022. 4. 21. 19:46[Terraform] Terraform 소개 및 설치방법

✔️ Terraform HashiCorp에서 오픈소스로 개발 중인 인프라스트럭쳐 구축 및 운영의 자동화를 지향하는 IaC 도구이다. Cloud, on-prem의 리소스 모두 구성 가능하다. Human-readable configuration을 지향한다. ✔️ Terraform 주요 기능 코드형 인프라 Terraform은 HCL 구성파일로 정의하며, 이를 통해 인프라의 구성을 코드화하고 버전 관리를 통해 관리할 수 있다. 실행 계획 실제로 배포하기 전에 계획 단계를 통해 수행 할 작업을 미리 확인할 수 있다. (Ansible --check와 비슷) 리소스 종속성 내부적으로는 리소스의 종속성이 있을 수 있다. 예를들어 aws vcp와 ec2를 선언했다 ec2가 vcp를 사용할것이다. 그래서 내부적으로 테라폼..

image