Terraform 생존기(1) - 테라폼이란?

Jinwoo Baek·2021년 12월 12일
1

Terraform

목록 보기
1/2
post-thumbnail

1. Terraform 이란?

테라폼(Terraform)은 Hashicorp에서 오픈소스로 개발 중인 클라우드 인프라스트럭처 자동화를 지향하는 코드로서의 Infrastructure as Code, IaC 도구입니다.

간단하게 설명하자면, 테라폼 코드를 실행하면 aws의 인프라를 생성할 수도 삭제할 수도 있습니다.

ex) 기존에는 stage, beta, dev 환경마다 s3를 생성하려면 aws 콘솔 창에서 3번의 반복적입 작업을 통해서 생성하였지만, 테라폼은 코드 하나로 세개의 환경을 동시에 생성하고 또한 생성한 것을 동시에 제거할 수 도 있습니다.

2. Terraform install

https://www.terraform.io/downloads.html 링크에 들어가서 다운로드 받으면 됩니다.

3. Terraform 기본 개념

  • resource : 실제로 생성할 인프라 자원을 의미합니다.

  • provider : Provider는 리소스들이 배포될 환경을 정의한 것으로 aws, gcp 등이 있다.

  • output : 인프라를 프로비저닝 한 후에 생성된 자원을 output 부분으로 뽑을 수 있습니다. Output으로 추출한 부분은 이후에 remote state에서 활용할 수 있습니다.

  • backend : 백엔드는 Terraform의 상태 snapshot이 저장 되는 위치를 정의 합니다. 백엔드는 주로 Terraform이 상태를 저장하는 위치를 결정 합니다.

  • module : Module은 함께 사용되는 여러 리소스의 컨테이너입니다. Module을 사용하면 변수만 바꿔서 동일한 리소스를 손쉽게 생성할 수 있다는 장점이 있습니다.

  • remote state : remote state를 사용하면 VPC, IAM 등과 같은 공용 서비스를 다른 서비스에서 참조할 수 있습니다. tfstate파일(최신 테라폼 상태정보)이 저장되어 있는 backend 정보를 명시하면, terraform이 해당 backend에서 output 정보들을 가져옵니다.

4. Terraform 명령어

init

  • Terraform 구성 파일이 포함된 작업 디렉토리를 초기화하는 데 사용됩니다.

plan

  • 정의한 코드가 어떤 인프라를 만들게 되는지 미리 예측 결과를 보여줍니다. 단, plan을 한 내용에 에러가 없다고 하더라도, 실제 적용되었을 때는 에러가 발생할 수 있습니다.

apply

  • 실제로 인프라를 배포하기 위한 명령어입니다. apply를 완료하면, AWS 상에 실제로 해당 인프라가 생성되고 작업 결과가 backend의 .tfstate 파일과 local의 .terraform에 저장됩니다.

import

이미 만들어진 자원을 테라폼 state 파일로 옮겨주는 명령어

참고 사이트

https://learn.hashicorp.com/terraform

https://www.44bits.io/ko/keyword/terraform

https://terraform101.inflearn.devopsart.dev/preparation/terraform-basic/

profile
Odds and Ends

0개의 댓글