반응형

IaC 18

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] Provider

Provider와 Provider maintainer Terraform은 Provider라고 하는 플러그인을 통해 클라우드 제공자(AWS, GCP, …)나 기타 서비스와 상호 작용합니다. Provider는 컴퓨팅 머신, 서브넷, 스토리지와 같은 리소스를 개별 단위로 정의합니다. Provider maintainer는 클라우드 제공자나 기타 서비스의 API가 변경되면 provider를 업데이트하고 관리합니다. Terraform Registry에서 Provider들을 확인할 수 있으며 직접 작성할 수도 있습니다. Providr 버전 관리 Provider 버전을 적절히 지정하지 않으면 버전 제약 조건 내에서 최신 버전을 다운로드하며 이로 인해 예상하지 못한 인프라 변경이 발생할 수 있습니다. 여러 사용자가 동일..

IaC/Terraform 2022.09.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
반응형