반응형

terraform 17

TF 101 Study 4주차 정리 - state, module

가시다님이 진행하시는 CloudNeta의 Terraform 101 Study에 참가하며 작성한 내용입니다. 스터디 교재 → 테라폼으로 시작하는 IaC CH 5. State 테라폼은 Stateful한 애플리케이션 → 상태를 관리하는 애플리케이션 프로비저닝 결과를 State에 저장하고 프로비저닝한 모든 내용을 저장된 상태로 추적 terraform.tfstate 파일에 JSON 으로 저장 → 혼자 로컬에서 관리하거나 협업하기 위해 원격 저장소에서 관리 State에는 작업자가 정의한 코드와 실제 프로비저닝 결과를 저장 → 이후후의 리소스 생성, 수정, 삭제에 대한 동작을 판단 5-1. State의 목적과 의미 terraform apply → State를 사용해서 이전에 생성된 리소스와 비교해 생성, 수정, 삭제..

📂 IaC/Terraform 2023.07.29

TF 101 Study 3주차 도전 과제 - 조건식, 함수, 프로비저너, 환경 변수, 프로바이더

CloudNeta의 가시다님이 진행하시는 Terraform 101 Study에 참가하며 작성한 내용입니다. 스터디 교재 → 테라폼으로 시작하는 IaC [3주차 도전과제] 1. 조건문을 활용하여 AWS 리소스 배포 # 입력 변수로 배포 환경(dev, prod)를 구분하여 EC2 인스턴스의 사이즈 조정하기 variable "env" {} resource "aws_instance" "app" { # 배포 환경을 의미하는 env 변수가 prod가 아니면 EC2 인스턴스는 t3.micro로 배포한다. instance_type = var.env != "prod" ? "t3.micro" : "m5.xlarge" ami = "ami-0c9c942bd7bf113a2" tags = { Name = "app" env = v..

📂 IaC/Terraform 2023.07.23

TF 101 Study 3주차 정리 - 조건식, 함수, 프로비저너, 환경 변수, 프로바이더

CloudNeta의 가시다님이 진행하시는 Terraform 101 Study에 참가하며 작성한 내용입니다. 스터디 교재 → 테라폼으로 시작하는 IaC CH3. 기본 사용법 - 3 3-10. 조건식 테라폼의 조건식은 3항 연산자 형태 → ? : 조건식에서 타입이 다른 경우 테라폼은 조건 비교를 위해 형태를 추론하여 자동으로 변환 → 조건식을 명시적인 형태로 작성 입력 변수로 배포 환경(dev, prod)를 구분하여 EC2 인스턴스의 사이즈 조정하기 3-11. 함수 테라폼은 값의 유형을 변경하거나 조함할 수 있는 내장 함수를 제공합니다. 내장함수 외에 사용자 정의 함수는 지원하지 않습니다. terraform console 커맨드를 사용해 테라폼에서 함수를 사용하고 결과를 확인할 수 있다. cidrhost(내..

📂 IaC/Terraform 2023.07.22

Terraform 101 Study - 2주차(2) 도전 과제

CloudNeta의 가시다님이 진행하시는 Terraform 101 Study에 참가하며 작성한 내용입니다. 스터디 교재 → 테라폼으로 시작하는 IaC [2주차 도전과제] 1. 데이터 소스 실습 리전 내에서 사용 가능한 가용영역 목록 가져오기 data "aws_availability_zones" "available" { state = "available" } output "available_az_names" { value = data.aws_availability_zones.available.names } [2주차 도전과제] 2. 리소스 유형과 이름의 차이 vpc와 subnet을 배포하면서 리소스 유형과 이름의 차이를 이해 리소스 블럭은 “_” “”으로 선언 _..으로 참조 provider "aws" { ..

📂 IaC/Terraform 2023.07.14

TF 101 Study 2주차 정리 - data source, variable, local, output, for_each, for, dynamic

가시다님이 진행하시는 CloudNeta의 Terraform 101 Study에 참가하며 작성한 내용입니다. 스터디 교재 → 테라폼으로 시작하는 IaC CH3. 기본 사용법 - 2 3-5. 데이터 소스 데이터 소스 → 테라폼으로 정의되지 않은 외부 리소스 또는 저장된 정보를 테라폼 내에서 참조할 때 사용 외부에서 데이터 소스를 가져오기 위한 조건 → 인수(Arguments) 가져온 데이서 소스의 내용 → 속성(Attributes) # 테라폼 코드 data "" "" { = } # 데이터 소스 참조 data... 데이터 소스로 리전 내에서 사용 가능한 가용영역 목록 가져오기 3-6. 입력 변수(variable) Input Variables → 필요한 속성 값을 정의해 코드의 변경 없이 인프라를 생성하기 위해..

📂 IaC/Terraform 2023.07.14

Terraform 101 Study - 1주차(2) 도전 과제

CloudNeta의 가시다님이 진행하시는 Terraform 101 Study에 참가하며 작성한 내용입니다. 스터디 교재 → 테라폼으로 시작하는 IaC [1주차 도전과제] 1. EC2 웹서버 배포 Ubuntu 에 apache(httpd) 를 설치하고 index.html 생성(닉네임 출력)하는 userdata 를 작성해서 설정 배포 후 웹 접속 provider "aws" { region = "ap-northeast-2" } resource "aws_instance" "apache" { ami = "ami-0c9c942bd7bf113a2" instance_type = "t2.micro" vpc_security_group_ids = [aws_security_group.apache.id] user_data =

📂 IaC/Terraform 2023.07.09

Terraform 101 Study - 1주차(1) 내용정리

CloudNeta의 가시다님이 진행하시는 Terraform 101 Study에 참가하며 작성한 내용입니다. 스터디 교재 → 테라폼으로 시작하는 IaC CH1. IaC와 테라폼 코드로 인프라를 관리한다는 것 → ‘자유롭게 변경’하고, ‘환경을 이해’하고, ‘반복적으로 동일한 상태’를 만들수 있다는 의미 → 명세를 별도의 문서로 정리하지 않아도 인프라가 명확하게 정의되어 남는다는 의미 IaC는 컴퓨터에서 읽을 수 있는 형태의 파일을 사용해 인프라나 서비스를 프로비저닝하는 프로세스 terraform은 하시코프에서 공개한 IaC 도구 Terraform은 Provider라고 하는 플러그인을 통해 클라우드 제공자(AWS, GCP, …)나 기타 서비스와 상호 작용합니다. 테라폼 제공 유형 3가지 On-Premise(..

📂 IaC/Terraform 2023.07.09

[Terraform] 의존성(dependency) 관리

dependency(의존성) 리소스나 모듈로 생성한 자원 간에는 의존성 있을 수 있으며 테라폼은 이를 확인하여 자원을 생성하거나 삭제할 순서를 정합니다. 종속성은 implicit dependency(암시적 의존성)과 explicit dependency(명시적 의존성)이 있습니다. implicit dependency(암시적 의존성) 암시적 종속성은 테라폼이 리소스간의 관계를 이해하는 일반적인 방법입니다. 예를 들어 aws_eip.ip에서 aws_instance.example_a.id를 참조하는 것이 암시적 종속성입니다. resource "aws_instance" "example_a" { ami = "ami-05fa00d4c63e32376" instance_type = "t2.micro" } resource..

📂 IaC/Terraform 2022.09.05

[Terraform] data source

Data Source data source를 사용하면 API나 다른 terraform state backend에서 데이터를 가져올 수 있습니다. 사용 예시는 AWS의 AMI ID, 다른 테라폼 구성의 output 등을 예로 들 수 있습니다. data source는 configurationd을 보다 유연하고 동적으로 만들수 있습니다. data source는 data..으로 참조할 수 있습니다. data source 블럭 aws_availability_zones는 aws에서 가용영역을 조회하는 data source입니다. data "aws_availability_zones" "available" { state = "available" filter { name = "zone-type" values = ["av..

📂 IaC/Terraform 2022.09.04

[Terraform] Output 출력 변수

출력 변수 출력 변수(output values)를 사용하면 리소스에 대한 데이터를 내보낼 수 있으며 child module(자식 모듈)에서 root module(루트 모듈)로 데이터를 공유할때 필요합니다. 내보낸 데이터를 사용하여 다른 인프라의 구성에 활용하거나 데이터 소스로 사용할 수 있습니다. output 선언은 모든 구성파일의 모든 위치에서 가능하지만, outputs.tf에 선언 할 것을 권장합니다. output values는 루트 모듈의 상태 파일에 저장됩니다. terraform output는 output에 query하는 명령입니다. 출력 변수 선언 Output Blocks description은 선택사항이지만 작성할 것을 권장합니다. terraform의 표현식의 결과를 value로 사용할 수도 ..

📂 IaC/Terraform 2022.09.03
반응형