[Infra] Terraform이란?

나른한 개발자·2023년 1월 28일
0

Terraform이란?

인프라를 코드로써 구축/운영할수 있도록 해주는 IaC도구

💡 IaC (Infra as Code)
수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로비저닝하는 것. 인프라 사양을 담은 구성 파일이 생성되어 구성 편집 및 배포가 보다 용이하다. 또한 매번 동일한 환경을 프로비저닝할 수 있도록 한다. - Redhat


필요성

  • 재사용성: 재사용 가능한 모듈로 패키징할 수 있으므로 매번 처음부터 배포할 필요없이 검증된 모듈로 매번 동일한 환경을 배포할 수 있다.
  • 문서화: 코드 자체가 문서가 되어 누구나 이해할 수 있고 구성요서의 설정값을 관리할 수 있다.
  • 버전 관리: 형상 관리가 용이하며 시스템에 문제가 생겼을 경우 롤백하여 정상화 시킬 수 있다.

테라폼의 기본 개념

  • provider
    테라폼으로 생성할 인프라 종류를 의미한다. aws, Azure, Github 등 다양한 프로바이더를 지원한다.
  • Resource
    프로바이더가 제공하는 인프라 자원한다. aws의 경우에는 vpc, ec2 등이 이에 해당한다.
  • output
    인프라 프로비저닝 후 생성된 자원을 출력할 수 있음.
  • Resource
    프로바이더가 제공하는 인프라 자원한다. aws의 경우에는 vpc, ec2 등이 이에 해당한다.
  • backend
    테라폼의 상태를 저장하는 곳
  • Plan - 테라폼 코드 계획
    위 단계에서 작성한 코드를 기반으로 리소스가 어떻게 구성이 될 것인지 미리 확인하는 단계이다.

  • Apply - 테라폼 코드 적용
    계획에서 확인한 내용을 적용하여 프로비저닝하거나 설정 값을 업데이트 한다.


👉 다음 포스팅: 테라폼 구조 및 블록 쓰임새




참고
[DevOps]테라폼(Terraform)이란?
[Terraform] Terraform이란? 기본 속성
테라폼이란? 간단사용기

profile
Start fast to fail fast

0개의 댓글