테라폼으로 AWS 서비스 구축하기 1장. 테라폼 설치하기

테라폼의 설치와 유용한 사이트를 작성한 블로그입니다.
2021.02.24

시작하며

이전 글에선 테라폼과 AWS CloudFormation을 비교해보며 테라폼이 무엇인지 간략하게 알아보았습니다.
이번엔 테라폼의 설치와 버전 관리 툴인 tfswitch를 알아보겠습니다.

작업 환경

  • macOS Catalina(10.15.7)
  • Homebrew 3.0.1
  • (Ubuntu)WSL2
  • Visual Studio Code

테라폼 설치

단순히 최신 버전의 terraform을 설치하거나
tfenv, tfswitch, brew의 switch 명령어를 설치하여 버전 관리를 할 수 있습니다.
각 방법에는 장단점이 따로 있으며 이 글에선 따로 설명하지 않습니다.
tfenv의 설치는 한글로 된 자료가 있으니 이 글에선 tfswitch의 설치를 해보겠습니다.

terraform 설치

다운로드 페이지
홈브류에서는 다음과 같이 설치합니다.

# 테라폼 설치
$ brew install terraform

# 설치 후 버전 확인
$ terraform version
  Terraform v0.14.7

우분투에서는 다음과 같습니다.

# 테라폼 설치 및 이동, 버전 확인
$ wget https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
$ unzip terraform_0.14.7_linux_amd64.zip
Archive:  terraform_0.14.7_linux_amd64.zip
inflating: terraform
$ sudo mv terraform /usr/local/bin/

$ terraform -version
Terraform v0.14.7
$ rm terraform_0.14.7_linux_amd64.zip

tfswitch 설치

tfenv나 tfswitch를 설치하기 전 terraform을 삭제하거나 .bash_profile 또는 .zshrc에서 terraform에 대한 참조를 제거하지 않으면 충돌이 날 수 있으니 꼭 삭제 후 진행해주세요.
tfswitch에 대한 자세한 설명은 깃 허브를 참조해주세요.
홈브류에서는 다음과 같이 설치합니다.

$ brew install warrensbox/tap/tfswitch

우분투에서는 다음과 같습니다.

$ curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/release/install.sh | bash

버전 변경에는 다양한 방법이 있습니다. 이 중 편한 방법으로 관리하시면 됩니다.
참고로 저는 버전 정보가 적힌 .tf 파일을 활용합니다.

tfswitch 명령으로 버전 변경하기

설치가 끝났다면 tfswitch 명령으로 버전을 확인후 엔터로 전환이 가능합니다.
선택한 버전이 설치되어 있지 않다면 자동으로 해당 버전을 다운로드합니다.

# 제공되는 버전 확인 후 선택
# 혹은 -l 옵션을 붙여서 베타, 알파, 릴리즈 후보 버전 모두를 확인하여 선택할 수 있습니다.
$ tfswitch
? Select Terraform version:
  ▸ 0.14.7
    0.14.6
    0.14.5
    0.14.4
↓   0.14.3
Switched terraform to version "0.14.7"

# 혹은 버전 정보를 함께 제공하여 사용할 수 도 있습니다.
$ tfswitch 0.14.6
Switched terraform to version "0.14.6"

환경 변수 이용하기

TF_VERSION 이라는 환경 변수를 활용하여 사용할 버전을 지정할 수 있습니다.
아래에 설명하는 .tf파일이나 .tfswitchrc 파일이 없을 때 tfswitch 커맨드를 사용하면
버전 리스트가 나오지 않고 변수에 지정한 버전으로 바로 변경됩니다.

$ terraform -v
Terraform v0.14.6

$ export TF_VERSION=0.14.7
$ tfswitch
Terraform version environment variable: 0.14.7
Switched terraform to version "0.14.7"
$ terraform -v
Terraform v0.14.6

버전 제약정보가 있는 .tf 파일 활용하기

버전 제약이 적혀있는 .tf 파일이 있는 디렉터리에서 tfswitch 명령을 통해 버전 변경이 가능합니다.

$ terraform -v
Terraform v0.14.6

$ cd test
$ ll
drwxrwxrwx 1 --- --- 4096 Feb 24 14:57 ./
drwxrwxrwx 1 --- --- 4096 Feb 24 14:54 ../
-rwxrwxrwx 1 --- ---  104 Feb 24 14:57 provider.tf*

# provider.tf 의 내용
# 파일 이름은 무엇이든 상관없습니다.
# terraform { 
#  required_version = "0.14.5" 
#
#  required_providers { 
#     aws = "> = 2.53.0" 
#   } 
# }

$ tfswitch
Reading required version from terraform file, constraint: 0.14.5
Matched version: 0.14.5
Switched terraform to version "0.14.5"
$ terraform -v
Terraform v0.14.5

.tfswitchrc 파일 사용

테라폼 버전을 따로 관리하기 위해 .tfswitchrc 란 파일로 작성하여 관리할 수 있습니다.

$ cd test2
$ echo "0.14.6" >> .tfswitchrc
$ terraform -v
Terraform v0.14.7
$ tfswitch
Reading file .tfswitchrc
Switched terraform to version "0.14.6"

이 외의 툴

VS Code에서 다운로드 할 수 있는 HashiCorp Terraform을 사용하신다면 작업 효율을 더 높이실 수 있습니다.

도움이 되는 사이트

테라폼을 공부하는데 도움이 되는 사이트를 정리해보았습니다.

  • Awesome Terraform은 awesome-list의 테라폼 버전입니다.
    테라폼과 관련된 자료 대부분을 여기서 확인할 수 있습니다.
  • 44BITS에서 처음 테라폼을 시작할 떄 많은 것을 배울 수 있었습니다. 내용 설명도 쉽게 이해할 수 있도록 작성되어 있습니다.

마치며

다음 글에선 자주 사용하게 될 커맨드를 익히며 간단한 EC2/RDS/S3 구성의 인프라를 배포해보겠습니다.
내용의 피드백 및 오탈자 제보는 언제나 환영합니다! must01940(G메일) 으로 보내주시길 바랍니다.
긴 글 읽어주셔서 감사합니다!

글 목록

0장. 테라폼(terraform)이 뭐야?
1장. 테라폼 설치하기 - 해당 글 2장. EC2 RDS S3 구축하기 - 1 2장. EC2 RDS S3 구축하기 - 2