밤 늦게까지 여는 카페

terraform 사용하기 - GCP terraform으로 Compute Engine 배포하기 본문

DevOps

terraform 사용하기 - GCP terraform으로 Compute Engine 배포하기

Jㅐ둥이 2022. 11. 19. 23:22
반응형

안녕하세요. 오늘은 terraform을 직접 사용해보려고 합니다!

 

GCP에서 Compute Engine을 생성하는 진짜 진짜 단순한 사례이니 직접 따라하기도 쉬울거에요!

같이 가볼까요?

 

1. 준비 과정

이번 포스팅에서는 terraform cloud를 사용할 것입니다.

terraform cloud를 사용하기 위해서 필요한 소프트웨어 및 준비 과정을 진행해보겠습니다.

 

1.1 terraform 설치하기

wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg 
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list  
sudo apt update && sudo apt install terraform

 

1.2. github 저장소 생성하기

저장소 생성하기!

github 저장소 생성하는 법을 모르시겠다면 git 200% 활용하기 - github 를 참고해주세요 :)

 

1.3 terraform cloud & github 연동하기

terraform cloud & github 연동 완료!

terraform cloud와 github 연동하는 방법은 terraform cloud - 개인 PC에서 terraform 관리는 그만!!! 링크를 참고하시면 알 수 있습니다!

 

1.4 GCP 계정 준비하기

GCP와 연동하기 위해서는 당연히 계정이 필요하겠죠?

그리고 terraform으로 관리할 프로젝트를 생성하고, 해당 프로젝트에서 Compute Engine 기능을 활성화시켜야 합니다.

마지막으로 서비스 계정을 생성하고 키를 생성해줘야 합니다!

  • 서비스 계정을 생성할 때에는 권한을 잘 설정해줘야 해요!

Compute 관리자 역할로 생성!
키 추가 를 클릭해서 json으로 키 생성!

 

2. terraform.tf 만들기

terraform 프로젝트의 시작!

위에 첨부한 그림과 같이 terraform.tf 파일을 만들고 terraform init 명령어를 실행해봅시다!

어라? terraform login?

그러면 terraform login 명령어를 입력하라고 에러 메시지가 출력될 거에요.

 

시키는대로 terraform login 명령어를 입력하면 다음과 같은 메시지가 출력되고,

다시 yes를 입력하면 terraform 로그인 과정이 진행됩니다.

yes를 입력해서 terraform 로그인 진행!

 

로그인을 끝내고 다시 terraform init 명령어를 입력해볼까요?

드디어 terraform init 성공!

드디어 terraform 환경이 준비가 되었습니다!

이제 Compute Engine을 추가해볼까요?

 

3. terraform GCP provider 사용하기

이제 GCP provider 설정 관리하는 terraform 파일을 작성해줍니다.

GCP provider 설정!

아래를 보시면 gcp-credential이라는 variable이 있는데요.

terraform cloud에서 gcp-credential이라는 Variable을 생성해줘야 합니다.

이 때 Sensitive 변수로 생성해주는 것 잊지마세요!

Sensitive로 gcp-credential 변수 생성!

 

4. GCP Computie Engine 추가하기

이제 거의 다 왔습니다!

Compute Engine을 관리하는 terraform 스크립트만 남았습니다!

compute engine을 관리하는 terraform 파일 추가!

저는 프리 티어를 활용하기 위해서 e2-micro를 사용했습니다.

 

5. github에 푸시 & terraform cloud에서 배포 진행하기

이제 추가한 스크립트를 github에 푸시하면 terraform cloud에서 배포를 진행할 수 있습니다!

github에 푸시가 완료되면...!
terraform cloud에서 배포를 진행할 수 있습니다!

 

이런 식으로 배포에 커맨트를 남길 수도 있습니다 ㅋㅋㅋ

커멘트 남기기!

 

 

6. 끝!

짜잔! 이렇게 terraform을 이용해서 compute engine을 배포해봤습니다.

배포 성공!

 

생각보다 사용하기 편리하고, terraform cloud를 사용하니 배포 과정이 체계적으로 관리되는 것 같지 않으신가요?

다음에는 terraform 장단점을 비교해보는 시간을 가져보려구 합니다 ㅎㅎ

반응형