본문 바로가기
IaC/Terraform

[Terraform] Terraform

by PhoB 2023. 12. 21.

[Github] The top programming languages

- 2022 가장 빠르게 성장한 언어 1위 HCL(HashiCorp Configuration Language)

 

테라폼이란?

Terraform은 클라우드 및 온프레미스 리소스를 안전하고 효율적으로 구축, 변경, 버전 관리할 수 있는 코드 도구로서의 인프라입니다.

HCL과 JSON을 사용하여 코드를 작성하며 인프라스트럭쳐의 생성 및 관리가 가능합니다.

ex) aws EC2 instance생성하는 테라폼 코드

resource "aws_instance" "example" {
  ami           = #아마존 리눅스, 우분투 등의 ami
  instance_type = "t3.micro"

  tags = {
    Name = "HelloWorld"
  }
}

 

특징

  • 수많은 provider를 지원합니다 ex) aws, azure, gcp 등등...
  • 학습속도가 빠릅니다.
  • Ansible과 같은 구성 관리 도구와 쉽게 통합할 수 있습니다.
  • 다양한 플러그인을 지원하여 쉽게 확장이 가능합니다.
  • 오픈소스입니다(무료)

학습속도가 빠르다는 특징은 개인차가 있겠지만 개인적으로는 언어가 굉장히 직관적이어서 배우기 쉬웠으며, 도큐먼트가 잘 작성되어 있었으며 무엇보다 ChatGPT가 있으니 빠르게 배울 수 있었던 것 같습니다.

 

Terraform Registry

 

registry.terraform.io

 

등급(Tier)

테라폼은 provider로 별로 등급(Tier)을 적용하여 관리 및 제공하고 있습니다.

현재 명시된 등급은 다음과 같습니다.

  • Offical - HashiCorp가 소유하고 관리합니다.
    • ex) aws, azure, gcp, ...
  • Partner - 자체 API에 대해 타사에서 작성, 유지 관리, 검증 및 게시
    • ex) github, ncp, cloudflare
  • Community - 개별 유지관리자, 유지관리자 그룹 또는 Terraform 커뮤니티의 다른 구성원에 의해 관리
  • Archived - HashiCorp 또는 커뮤니티에서 더 이상 유지관리하지 않는 공식 또는 파트너 공급자

명령어(Command)

테라폼에서는 다양한 CLI 명령어들을 제공합니다.

  • terraform init
  • terraform plan
  • terraform apply
  • terraform destroy
  • terraform status
  • terraform fmt
  • 등등...

init, plan, apply 같은 경우에는 terraform을 사용함에 있어서 굉장히 중요한 명령어입니다.

명령어에 대해서는 추후 다음 포스팅을 통해 기술하겠습니다.

 

테라폼에 대한 더 자세한 설명은 아래 공식문서에서 확인하실 수 있습니다.

 

What is Terraform | Terraform | HashiCorp Developer

Terraform is an infrastructure as code tool that lets you build, change, and version cloud and on-prem resources safely and efficiently.

developer.hashicorp.com

 

'IaC > Terraform' 카테고리의 다른 글

[Terraform] terraform init  (1) 2024.01.14
[Terraform] Terraform설치 - Linux  (1) 2023.12.21
[Terraform] Terraform 설치 - Windows  (2) 2023.12.21