본문 바로가기
카테고리 없음

Terraform & Terraformer

by BTC_MAN 2023. 7. 9.

베하~

안녕하세요 3대 5000의 man, xoxo 입니다.

이번 시간에는 Terraform과 Terrafromer에 대해 알아보도록 하겠습니다

Terraform이란?

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

IaC는 코드로 인프라를 관리한다는 개념으로 테라폼에서는 하시코프 설정 언어HCL, Hashicorp Configuration Language을 사용해 클라우드 리소스를 선언합니다. 아마존 웹 서비스Amazon Web Service가 자체적으로 만든 AWS 클라우드 포메이션AWS CloudFormation의 경우 AWS만 지원하는 것과 달리 테라폼의 경우 아마존 웹 서비스Amazon Web Service, 구글 클라우드 플랫폼Google Cloud Platform, 마이크로소프트 애저Microsoft Azure와 같은 주요 클라우드 서비스를 비롯한 다양한 클라우드 서비스들을 프로바이더 방식으로 제공하고 있습니다. 이를 통해 테라폼만으로 멀티 클라우드의 리소스들을 선언하고 코드로 관리하는 것도 가능합니다.

 

Terraformer란?

Terraformer란 기존의 생성되어 있는 인프라를 테라폼 소스로 가져오는 오픈소스 툴입니다. Terraform 코드와 State파일을 자동으로 생성해줍니다. 초기에는 GCP를 위해 만들어졌으나 현재 AWS,Azure 등 다양한 Cloud를 지원하고 있습니다.  

 

그럼 AWS를 위한 Terraformer 환경세팅과 사용법에 대해 알아보겠습니다.  

Terraformer환경 세팅 (AWS)

1. AWS CLI 설치 필요

설치 링크

 -> https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

 

2. Terraform 설치 필요

설치 링크

-> https://www.terraform.io/

 

3.  go & jq 설치 필요

sudo apt install jq -y
sudo apt install golang-go -y

4. Terraformer 설치

공식 github에서 파일을 다운받아 사용합니다 .

git clone  https://github.com/GoogleCloudPlatform/terraformer.git
cd terraformer
go mod download
go run build/main.go aws #다른 CSP도 가능하다

export PROVIDER=aws
curl -LO "https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-linux-amd64"
chmod +x terraformer-${PROVIDER}-linux-amd64
sudo mv terraformer-${PROVIDER}-linux-amd64 /usr/local/bin/terraformer

 

위의 과정을 완료하면 terraformer를 사용할 수 있는 환경세팅이 끝납니다. 

 

Terraformer 사용방법

provider와 terraform 버전을 지정해준 이후 

terraform init 명령어를 실행하면 사용할 수 있는 모든 준비는 끝납니다. 

 

terraformer import aws --resources=vpc,subnet --regions=ap-southeast-1
terraformer import aws --resources=eks --regions=ap-southeast-1 --filter=ClusterName=eks-dev-cluster

terraformer 명령을 이용하여 원하는 기존 생성된 리소스의 state파일과 tf파일을 불러올 수 있습니다. 

 

이번시간은 terraformer에 대해 알아보았습니다.

기존의 리소스를 테라폼 코드로 관리하고 싶다면 terraformer를 활용하여 코드로 관리하시면 좋을 것 같습니다 .

 

 

 

댓글