☁️ Tencent Cloud/☁️ IaC on Tencent cloud

[Terraform] Tencent Cloud Provider 설정

just in here

Terraform with Tencent Cloud

이 섹션은 하시코프사의 IaC(Infrastructure as a code) 도구인 테라폼(Terraform)을 통해서 클라우드 인프라를 관리하는 방법을 간단하게 소개합니다. 테라폼은 Tencent Cloud를 Provider로 지원하고 있으므로 Tencent Cloud의 다양한 상품 모듈을 테라폼에서 쉽게 생성, 관리할 수 있습니다. 이 섹션의 글들은 Tencent Cloud 리소스를 IaC로 구현하는 데에 목적이 있기 때문에 HCL 문법이나 테라폼 코드 관리 같은 것은 설명하지 않고 오직 Tencent Cloud 상품에 초점을 맞추어 작성되었습니다. 

 

테라폼 설치 및 가이드 문서

먼저 테라폼을 설치 합니다. 설치가 끝나면 하시코프 공식 홈페이지의 Terraform Provider 가이드 문서 를 실행합니다. Tencent Cloud가 테라폼을 통해 제공하는 서비스 모듈의 목록과 HCL 작성 예시가 적혀있는데 모든 코드 작성은 이 곳의 예시를 따르면 큰 도움을 받을 수 있습니다.

 

Credential 설정

 

Tencent Cloud CAM 설정을 통해 API Key 를 발급합니다. (SecretId, SecrectKey) 이때 root계정이 아닌 테라폼을 통해 프로비저닝하려는 리소스에 대해 필요한 최소한의 권한만을 가진 Sub-user를 생성해서 API Key를 발급할 수 있습니다.

 

이때 발급한 Key pair 는 아래와 같은 환경변수 설정이나 tccli를 통해 테라폼 코드 작성시 하드코딩 하지 않도록 해야합니다.

 

1) 환경변수 설정

export TENCENTCLOUD_SECRET_ID=<your-secret-id>
export TENCENTCLOUD_SECRET_KEY=<your-secret-key>

 

2) tccli

Tencent Clodud의 CLI 도구인 TCCLI를 사용 중이라면 ~/.tclil 하위 .credential 에 JSON으로 API Key가 저장되어있는걸 확인할 수 있는데

 

main.tf 작성 시 아래와 같이 shared_credentials_dir 값으로 API Key 값을 넣을 수 있습니다.

provider "tencentcloud" {
  shared_credentials_dir = "<.tccli 폴더경로>"
}

 

main.tf 파일 작성

적당한 위치에 디렉토리를 생성하고 Tencent Cloud Provider를 선언할 main.tf 파일을 작성후 저장합니다.

terraform {
  required_providers {
    tencentcloud = {
      source = "tencentcloudstack/tencentcloud"
      version = "1.81.88"
    }
  }
}

provider "tencentcloud" {
  # Configuration options
}

 

main.tf를 작성한 위치에서 terraform init을 실행합니다.

terraform init

 

 

init이 완료되고 나면 이제 가이드 문서를 참고하여 plan과 apply를 진행할 준비가 된 것 입니다.