티스토리 뷰

반응형

테라폼은 하시코프에서 제공하는 코드형 클라우드 인프라 환경 배포 툴(IaC)이다. IaC 중에서도 서버자체를 구성하기 위한 서버 프로비전 도구에 해당한다.

 

코드로 인프라를 정의하고 해당 코드를 통해 동일한 인프라를 재현해 낼 수 있다는 강점이 있다. (정의형 프로그래밍 언어를 통해 작성된다는 것을 생각할 수 있다.)

 

처음 테라폼을 시작하기 위해서는 다음 단계가 필요하다.

 

1. 대상 Cloud 플랫폼 계정 설정하기. (AWS로 진행한다.)

2. 테라폼 설치하기.

3. Cloud 플랫폼 계정정보 설정하기.

4. tf 파일에 코드로 인프라를 정의하기.

5. 배포하기.

 


1. 대상 Cloud 플랫폼 계정 설정하기.

AWS에 Root 사용자 계정을 생성하고 IAM 사용자를 생성한다.

하면 다음과 같이 Access key ID와 Secret access key를 확인할 수 있다.

 

이제 해당 IAM 사용자에게 권한을 부여한다.

이와 같은 권한을 부여했는데 상황에 맞게 부여하면된다. (예제 진행시 필요한 권한이다.)

 

 

 

2. 테라폼 설치하기

테라폼 공식 홈페이지에서 운영체제별 실행파일을 다운로드 받을 수 있다.

(Windows 10 x64 환경에서 진행했다.)

 

www.terraform.io/

 

Terraform by HashiCorp

Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and ve

www.terraform.io

압축을 해제하면 실행파일 하나만 덩그러니 나타나며, 환경변수 설정을 통해 CMD 창에서 편리하게 사용할 수 있도록 설정했다. CMD 창에서 terraform 명령어를 입력해서 Usage가 뜨면 정상적인거다.

 

 

 

3. Cloud 플랫폼 계정정보 설정하기.

테라폼은 디렉토리 기반으로 컴파일(?)이 진행된다. 때문에 작업을 진행할 디렉토리를 생성 후 그 디렉토리 내부에 .tf 파일들을 모두 생성해주면 된다.

 

1번에서 획득한 Access key와 Secret key에 대한 정보를 aws-provider.tf 파일을 생성해 저장한다.

 

Unix, Linux, macOS의 경우에는 환경변수를 사용해 진행할 수 있지만, 해당 터미널이 종료되면 다시 환경변수 설정을 해줘야한다는 번거로움이 있다. 그냥 파일로 이렇게 Provider를 생성하자.

 

 

 

4. tf파일에 코드로 인프라를 정의하기.

AWS에서 EC2 Instance와 같은 단일 서버를 생성하기 위해 "aws_instance" 리소스를 main.tf에 추가한다. "aws_instance"에서 앞에 aws는 provider 이름이 들어가고 instace자리에는 리소스의 type이 들어가게 된다.

 

Config에 해당하는 변수중에서 ami는 EC2 Instance를 구동하기 위한 이미지를 나타낸다. 이는 AWS 마켓플레이스에서 찾을 수 있으며, 패커를 통해 직접 제작할 수 있다. (스냅샷 떠논 이미지라고 생각하면 된다.)

 

instance_type에 t2.micro는 AWS 프리티어에 속하는 타입이라고만 기억하자. (나중에 다른걸 쓸까..?)

 

 

 

5. 배포하기.

베이스 디렉토리로 사용할 곳으로 이동해서 CMD에서 "terraform init" 명령어를 수행한다.

(이건 최초 한번만 수행하면 되는 듯..?)

 

그리고 이어서 "terraform plan" 명령어를 수행하게 되면 apply를 했을 때 어떻게 진행될지에 대한 정보를 확인할 수 있다.

 

충분히 확인했으면 최종적으로 "terraform apply"를 입력하면 작성한 인프라 코드가 AWS에 실제로 생성되는 것을 확인할 수 있다.

 

이와 같이 정상적으로 EC2 Instance가 추가된 것을 확인할 수 있다.

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함