Terraform 개요
Terraform provider란
ECI는 자체 REST API와 함께 공식 Terraform provider elice-dev/eci를 제공합니다. 가상머신·블록 스토리지·네트워크·공인 IP를 선언적으로 정의하고 버전 관리할 수 있습니다.
- 공식 레지스트리: registry.terraform.io/providers/elice-dev/eci
- 소스: github.com/elice-dev/terraform-provider-eci
OpenStack provider는 사용하지 않습니다
ECI는 OpenStack과 호환되지 않습니다. terraform-provider-openstack이 아닌 위의 elice-dev/eci provider를 사용하세요.
사전 준비
- Terraform 1.0 이상 설치
- 사용자 액세스 토큰: 포털 관리 > 사용자 액세스 토큰에서 발급 (만료 30/90일 또는 6/12개월)
- 영역 ID: 가상머신을 배치할 영역의 UUID. 포털 인프라 > 영역 또는 데이터 소스
eci_zone으로 확인
Provider 설정
# versions.tf
terraform {
required_version = ">= 1.0"
required_providers {
eci = {
source = "elice-dev/eci"
}
}
}
# provider.tf
provider "eci" {
api_endpoint = "https://portal.elice.cloud/api"
api_access_token = var.api_access_token # 환경 변수나 tfvars로 주입
zone_id = var.zone_id
}
| 필드 | 설명 |
|---|---|
api_endpoint | 포털 API URL. 민간존 https://portal.elice.cloud/api, 공공존 https://portal.gov.elice.cloud/api, 연동 기관은 https://<organization>.elice.io/api |
api_access_token | 필수. 포털에서 발급한 액세스 토큰. 환경 변수 TF_VAR_api_access_token 권장 |
zone_id | 필수. 자원이 배치될 영역의 UUID |
토큰은 코드에 직접 두지 마세요
api_access_token은 .tfvars(gitignore)나 환경 변수로 주입하세요. 커밋된 토큰은 즉시 포털에서 삭제해야 합니다.
주요 자원과 데이터 소스
| 자원 | 설명 |
|---|---|
eci_virtual_machine | 가상머신 정의 (스펙·이름·인증) |
eci_virtual_machine_allocation | 가상머신을 호스트에 할당해 실행 |
eci_block_storage | 블록 스토리지 (OS 디스크 또는 데이터 디스크) |
eci_block_storage_snapshot | 블록 스토리지 스냅샷 |
eci_virtual_network | 가상 네트워크 |
eci_subnet | 서브넷 |
eci_network_interface | 네트워크 인터페이스 |
eci_public_ip |