Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

JINIers

220830_Terraform Fundamentals 본문

GCP/Qwiklabs

220830_Terraform Fundamentals

JINIers 2022. 8. 31. 11:09

220830_Terraform Fundamentals


[개요]

  1. terraform 시작
  2. 설치 바이너리에서 terraform을 설치
  3. terraform을 사용하여 vm 인스턴스 인프라를 구축


[테라폼이란?]

  • 인프라를 안전하고 효율적으로 구축,변경 및 버전을 관리하기 위한 도구
  • 기존의 인기있는 서비스 제공업체와 맞춤형 사내 솔루션을 관리할 수 있음
  • 구성파일 : 단일 애플리에키션 or 전체 데이터 센터를 실행하는데 필요한 구성요소
  • 원하는 상태에 도달하기 위해 수행할 작업을 설명하는 실행 계획을 생성한 다음 이를 실행ㅎ여 설명된 인프라 구축
  • terraform이 관리할 수 있는 인프라
    - 컴퓨팅 인스턴스, 스토리지 및 네트워킹과 같은 하위 수준 구성 요소
    - DNS 항목 및 SaaS 기능과 같은 상위 수준 구성요소

 

[테라폼의 주요 특징]

1. 코드로서의 인프라
인프라는 높은 수준의 구성 구문을 사용하여 설명됩니다. 이를 통해 데이터 센터의 청사진을 다른 코드와 마찬가지로 버전 관리하고 처리할 수 있습니다. 또한 인프라를 공유하고 재사용할 수 있습니다.


2. 실행 계획
Terraform에는 실행 계획을 생성하는 계획 단계가 있습니다. 실행 계획은 명령을 실행할 때 Terraform이 수행할 작업을 보여줍니다 apply. 이를 통해 Terraform이 인프라를 조작할 때 놀라움을 피할 수 있습니다.


3. 리소스 그래프
Terraform은 모든 리소스의 그래프를 작성하고 모든 비종속 리소스의 생성 및 수정을 병렬화합니다. 이 때문에 Terraform은 인프라를 최대한 효율적으로 구축하고 운영자는 인프라의 종속성에 대한 통찰력을 얻습니다.


4. 변경 자동화
최소한의 인간 상호 작용으로 복잡한 변경 집합을 인프라에 적용할 수 있습니다. 앞서 언급한 실행 계획과 리소스 그래프를 통해 Terraform이 어떤 순서로 변경될지 정확히 알 수 있으므로 많은 인적 오류를 방지하는 데 도움이 됩니다.

 


작업 1. terraform 설치 확인

terraform

terraform


작업 2. 인프라 구축


빈파일 만들기

touch instance.tf

 

instance.tf 내용

resource "google_compute_instance" "terraform" {
  project      = "<프로젝트 ID>"
  name         = "terraform"
  machine_type = "n1-standard-1"
  zone         = "us-west1-c"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  network_interface {
    network = "default"
    access_config {
    }
  }
}

 

 

[초기화]

 

공급자 바이너리 다운로드 하여 설치

terraform init

terraform init

실행계획 생성

terraform plan

terraform plan

변경 승인

terraform apply
yes

terraform apply > yes


테라폼 현재상태 검사

terraform show

terraform show

 

 

Comments