Skip to main content

Terraform 개요

Terraform provider란

ECI는 자체 REST API와 함께 공식 Terraform provider elice-dev/eci를 제공합니다. 가상머신·블록 스토리지·네트워크·공인 IP를 선언적으로 정의하고 버전 관리할 수 있습니다.

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공인 IP
데이터 소스설명
eci_zone영역 조회
eci_region리전 조회
eci_instance_type인스턴스 타입 (이름·UUID)
eci_pricing가격 정책 (이름·pricing_type)
eci_block_storage_imageOS 이미지

각 자원의 전체 스키마는 공식 provider 문서에서 확인하세요.


다음 단계