Terraform 설치
Terraform이란 무엇인가
- Terraform은 하시코프에서 만든 IaC 도구, 특히 인프라 선언 도구이다.
- Terraform은 안전하고 반복적으로 작업하더라도 인프라스트럭처를 구축, 변경할 수 있게 도와준다.
- 간혹 Ansible이나 Puppet과 같이 비교가 되곤 하는데, 엄밀히 말해서 Ansible과 Puppet은 설정 관리 도구로써 Terraform과는 다른 성격의 도구임을 분명히 알아두는 것이 좋다.
IaC와 Terraform
- IaC란, Infrastructure As Code의 약자로써, 코드로 인프라를 관리하는 것을 말한다.
- 여기서 IaC가 관리하는 것은, 인프라를 이루는 서버, 미들웨어, 서비스 등 인프라를 구성하는 모든 요소들이 그 대상이다. 또한 IaC도구는 크게 다음으로 분류된다.
- 서버 템플릿(Image Build) 예) Packer, Docker
- 컨테이너 오케스트레이션(Container Orchestration) ex) Kubernetes, Apache Mesos
- 서버 설정 관리(Configuration Management) ex) Ansible, Puppet, Chef
- 인프라 선언(Infrastructure Provisioning) ex) Terraform, AWS CloudFormation
- Terraform은 0.x 버전임에도 불구하고 인프라 선언 도구 분야에서 표준으로 자리 잡았다.
- HCL이라는 도메인 특화 언어를 통해서 쉽고 일관되게 AWS, GCP 등의 퍼블릭 클라우드는 물론 여러 프로바이더의 원하는 인프라 구성을 자동화할 수 있다.
Terraform의 장점
Terraform의 장점은 다음과 같다.
- 코드로써 인프라를 관리하기 때문에, 생산성, 재사용성이 높아지며, 유지보수에 용이하다.
- Git과 같은 VCS를 함께 쓰면 작업 이력이 남기 때문에, 문제 원인 파악이 보다 쉽다.
- 업계 표준이기 때문에 예제가 풍부하여 배우기 쉽다.
Terraform의 구성 요소
Terraform의 구성 요소는 크게 다음과 같다.
- provider : 테라폼으로 관리할 인프라의 종류를 의미 (ex) AWS, GCP, Azure ...)
- resource : 테라폼으로 관리할 인프라 자원을 의미 (ex) EC2, IAM, S3, RDS ...)
- state : 테라폼을 통해 생성된 리소스들의 상태를 의미. (= 테라폼 apply 명령어를 실행한 결과물)
- output : 테라폼으로 만든 리소스를 변수 형태로 state에 저장하는 것을 의미
- module : 공통적으로 활용할 수 있는 모듈을 정의하는 것을 의미
- remote : 다른 경로의 state를 참조하는 것을 의미하며, output 변수를 불러올 때 주로 사용
Terraform 설치
테라폼 설치하기
각 컴퓨터에 맞는 OS로 테라폼을 설치합니다.
Downloads | Terraform by HashiCorp
Downloads | Terraform by HashiCorp
Terraform is an open-source infrastructure as code software tool that enables you to safely and predictably create, change, and improve infrastructure.
www.terraform.io
테라폼 CLI 다운로드
[ED01-02] Terraform 설치하기 - CLI 다운로드
[ED01-02] Terraform 설치하기 - CLI 다운로드
2021-04-28 작성완료 개요 본 강의에서는 Terraform 설치방법에 대해 알아보고 실습을 진행해 보도록 하겠습니다. 현재 Terraform 사용가능한 운영체제(OS)는 다음과 같습니다. Linux Solaris Windows Mac OS F..
frostflower-note.tistory.com
Amazon CLI 다운로드
최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface
설치 관리자의 아무 위치에서나 Cmd+L을 눌러 설치에 대한 디버그 로그를 볼 수 있습니다. 이렇게 하면 로그를 필터링하고 저장할 수 있는 로그 창이 열립니다. 로그 파일도 /var/log/install.log에 자
docs.aws.amazon.com
vsCode 설치하기
Documentation for Visual Studio Code
Documentation for Visual Studio Code
Find out how to set-up and get the most from Visual Studio Code. Optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
code.visualstudio.com
Visual Studio Code를 테라폼 추가도구
vsCode를 설치한후 플러그인에서 HashiCorp Terraform 을 설치해줍니다. 테라폼 작업에 용이합니다.
테라폼 실행
[윈도우 CMD] → terraform 입력 |
테라폼 버전 확인하기
버전을 확인하여 제대로 설치가 되었는지 확인합니다.
$ terraform -version
AWS 프로파일 설정하기
테라폼이 리소스를 배포할 계정과 리전을 선택합니다.
$ aws configuration
>> Account ID :
>> Secret Access Key :
>> Region :
>> file format : → 엔터쳐도 됨
Terraform 명령어
$ terraform init
: Terraform을 사용하기 위해, 설정한 provider 나 module 등을 download 받는 initialize 동작을 수행합니다.
$ terraform plan
: 정의한 코드가 어떤 인프라를 만들게 되는지 미리 예측 결과를 보여줍니다. → Plan 명령어는 어떠한 형상에도 변화를 주지 않습니다.
$ terraform apply
: 실제로 인프라를 배포하기 위한 명령어입니다.
→ 해당 결과는 local의 .terraform 파일에도 저장됩니다.
$ terraform destroy
: terraform 으로 생성된 insrastructure resource 들을 모두 제거하고 싶을 때 사용하는 명령어입니다.