DevOps/Terraform

Terraform 개요

devdubu 2023. 8. 5. 10:39

TerraForm

TerraForm은 Write, Plan, Apply에 대한 개념을 강조하고 있다.

Write

TerraForm을 만든 HashiCorp는 다양한 인프라 언어들을 만들었습니다.

그 중에서 YAML 언어와 비슷한 HashiCorp Configuration Language(HCL) 을 통해서 인프라 코드를 작성할 수 있다.

← AWS EC2 서버를 정의하는 HCL이다.

Plan

plan을 통해서 해당 인프라 코드가 어떤 변화를 가져올 지 확인이 가능하다.

맨 하단에 있는 Plan 결과가 가장 중요하다는 것을 알 수 있습니다.

Plan : 1 to add, 0 to change, 0 to destory

라고 하단에 적혀 있는데

이는 인프라 리소스가 1개 추가 될 예정이고, 변경점은 없고, 삭제 될 리소스 또한 하나도 없다라는 뜻이다.

변경사항에 대한 새부 사항들은 왼쪽 #aws_ebs 부터 중괄호 까지 세부사항으로 나와있다.

  • size : AWS의 EBS 볼륨 → 100gib 사이즈의 볼륨을 가지고 있다.

Apply

이런식으로 변경 사항이 확인이 된다면, TerraForm Apply 명령을 실제로 인프라를 구축하면 된다.

Registry

 

Registry는 개발을 하면서 많이 찾아볼 문서이다. 알아두면 많이 도움이 될 것이다.

Registry는 패키지 저장소와 같이 생각을 하면 된다. TerraFrom은 서드파티가 Providers와 Modules를 제공한다.

Providers

 

  • AWS
  • GCP
  • Azure

등 서비스를 제공할 수 있는 플랫폼을 의미한다. 즉, AWS provider를 이용하면 AWS 인프라를 관리 할 수 있는 것이다.

 

해당 Provider 창에 들어가게 되면 이러한 화면이 뜨게 되는데 여기서 github repository를 누르게 된다면 해당 이슈를 알려주게 되고,

Documentation을 누르게 된다면 아래의 창 처럼

 

AWS TerraForm을 어떤 식으로 작성해야하는지에 대한 Reference를 볼 수 있게 된다.

Modules

  • 인프라 리소스의 템플릿
    • 즉, OpenVPN 이라는 명명을 만들고 그 안에
      • AWS EC2 instance
      • security group
      • abs module
  • 등을 묶어서 템플릿 처럼 사용 가능하게 만든 것이다.

 

TerraForm 모듈로 가게 된다면 다른 사람들이 정의 해놓은 모듈도 볼 수 있다.

Terraform의 WorkFlow

The Core Terraform Workflow - Guides | Terraform by HashiCorp

 

 

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

Terraform Cloud  (0) 2023.08.05
TerraForm WorkSpace && Terraform Local Provider  (0) 2023.08.05
Terraform State  (0) 2023.08.05
HCL 문법  (0) 2023.08.05
Terraform && Packer 설치  (0) 2023.08.05