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를 진행할 준비가 된 것 입니다.