Clould/Terraform

Terraform 설치

WoongIT 2022. 7. 28. 10:27
반응형
SMALL

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
  • Terraform0.x 버전임에도 불구하고 인프라 선언 도구 분야에서 표준으로 자리 잡았다.
  • HCL이라는 도메인 특화 언어를 통해서 쉽고 일관되게 AWSGCP 등의 퍼블릭 클라우드는 물론 여러 프로바이더의 원하는 인프라 구성을 자동화할 수 있다.

 

Terraform의 장점


Terraform의 장점은 다음과 같다.

  1. 코드로써 인프라를 관리하기 때문에, 생산성, 재사용성이 높아지며, 유지보수에 용이하다.
  2. Git과 같은 VCS를 함께 쓰면 작업 이력이 남기 때문에, 문제 원인 파악이 보다 쉽다.
  3. 업계 표준이기 때문에 예제가 풍부하여 배우기 쉽다.

 

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 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 들을 모두 제거하고 싶을 때 사용하는 명령어입니다.

 

반응형
LIST