Among Us - Yellow Crewmate [Terraform] 테라폼 모듈

DevOps/Terraform

[Terraform] 테라폼 모듈

감쟈! 2021. 4. 6. 10:12

Terraform을 사용하면 인프라를 코드로 만들어서 관리할 수 있다.

 

인프라를 코드로 만들어 관리하는 것은 매우 효율적인데,

운영적인 측면에서는 빠르게 인프라를 배포하고 한번 작성한 코드를 통해서 이후에 발생하는 반복적인 작업을 줄일 수 있다.

개발적인 측면에서 개발자는 인프라를 코드로 관리하며 개발에 좀 더 집중할 수 있게 된다. 

 

 

 

실제 운영 환경에서는 [ 개발 - 테스트 - 운영 ] 의 단계를 거치게 된다.

  • Devlopment (dev) : 개발자들이 테스트하는 단계
  • Staging (stg) : 개발 테스트 이후 통합 테스트 단계
  • Production (prd) : 실제 사용자들이 사용하는 운영 단계

각 단계마다 소스 코드가 다르지만 참조를 하거나 재사용하는 경우가 많다.

 

재사용하는 방법으로는 소스 코드를 복사해서 설정값만 변경해주는 방법이 있고, 소스 코드를 모듈화 시켜서 모듈을 사용하는 방법이 있다.

 

Terraform init 명령어를 실행 했을 때, 기본 실행 경로는 루트 모듈이다. 루트 모듈 아래에 디렉터리를 생성하여 사용자 모듈을 만들고 모듈을 사용해 재사용을 효율적으로 할 수 있다.

 

 

아래 링크에서는 Terraform 에서 제공하는 vpc 모듈에 대한 내용이다.

registry.terraform.io/modules/terraform-aws-modules/vpc/aws/latest

 

https://registry.terraform.io/modules/terraform-aws-modules/vpc/aws/latest

 

registry.terraform.io

 

 

모듈을 사용하지 않을땐 vpc 생성하는데만 몇백줄의 소스코드를 직접 작성하곤 했었다.

나중에야 알게된 모듈이란 녀석은 굉장히 편리했다. 아래의 있는 코드처럼 몇백줄의 코드를 이십줄가량으로 줄일 수가 있게 되었다. 

 

모듈은 terraform에서 제공하는 모듈을 사용할 수 있고, 사용자가 직접 모듈을 만들어서 사용할 수도 있다.

source와 version을 통해 사용할 모듈을 지정하여 사용하면 된다.

 

source = "terraform-aws-modules/vpc/aws" 를 지정하고 terraform에서 제공하는 git에 있는 모듈을 사용할 수 있다.

 

 

 

 

terraform에서 제공하는 모듈을 사용하게 되면 아래의 깃허브에서 코드를 가져와서 사용한다.

물론 이 모듈을 사용하기 위해서는 깃이 설치되어 있어야 한다.

github.com/terraform-aws-modules/terraform-aws-vpc?ref=v2.78.0

 

terraform-aws-modules/terraform-aws-vpc

Terraform module which creates VPC resources on AWS - terraform-aws-modules/terraform-aws-vpc

github.com