Terraform

Lee Dong Uk·2023년 5월 13일
0

IaC 도구를 사용하면 GUI를 통하지 않고 구성 파일을 사용하여 를 안전하고 일관되며 반복 가능한 방식으로 빌드, 변경 및 관리할 수 있게 해준다.

Terraform은 IaC 도구이며, 이 도구를 사용하면 사람이 읽기 쉬운 선언적 구성 파일에서 리소스와 인프라를 정의할 수 있으며 인프라의 라이프사이클을 관리할 수 있다.

Terraform의 장점

  • 여러 클라우드 플랫폼에서 인프라를 관리할 수 있다.
  • 사람이 읽기 쉬운 구성 언어를 사용하면 인프라 코드를 빠르게 작성할 수 있다.
  • Terraform의 state를 사용하여 배포 상태에서 리소스 변경 내용을 추적할 수 있습니다
  • configuration을 버전 관리 시스템에 커밋하여 인프라에 대한 협업을 안전하게 진행할 수 있습니다

Terraform의 특징

모든 인프라 관리

Terraform의 프로바이더는 Terraform이 API를 통해 클라우드 플래솦ㅁ이나 다른 서비스와 상호 작용할 수 있게 해준다.
이미 사용 중인 플랫폼이나 서비스에 대한 프로바이더는 Terraform레지스트리에서 찾아볼 수 있다(AWS, Azure, GCP...).


배포 워크플로우 표준화

프로바이더는 인프라 개별 단위를 정의한다(EC2, VPC...). 서로 다른 프로바이더의 리소스를 모듈이라고 불리는 재사용 가능한 Terraform구성으로 조합할 수 있고, 일관된 언어와 워크플로우를 관리할 수 있다.

Terraform의 구성 언어는 선언적으로, 인프라의 원하는 최종 state를 설명해주고, 절차적 프로그래밍 언어와 다르게 단계별 지시사항을 요구하지 않는다.

Terraform 프로바이더는 리소스 간 의존성을 자동으로 계산해서 올바른 순서로 생성하거나 제거할 수 있게 해준다.

테라폼의 배포 워크 플로우

  • scope - 프로젝트에 필요한 인프라 파악.
  • author - 인프라 구송 작성.
  • initialize - 인프라 관리를 위해 Terraform 플러그인(프로바이더)을 설치.
  • plan - Terraform이 변경될 내용을 미리 살펴본다.


인프라 추적

  • Terraform은 state 파일에서 실제 인프라를 추적한다.
  • Terraform은 state 파일을 사용하여 구성에 맞게 인프라에 적용할 변경 사항을 결정한다.


2개의 댓글

comment-user-thumbnail
2023년 5월 13일

제 블로그 글 인용해주셔서 감사합니다 ^^

1개의 답글