ECI CLI 개요
ECI CLI는 Elice Cloud Infrastructure의 명령줄 인터페이스입니다. 가상머신, 네트워크, 스토리지를 터미널에서 관리하고 자동화 스크립트, CI/CD에 통합할 수 있습니다.
설치
릴리스 · 이슈
릴리스 노트 · 버그 리포트는 github.com/elice-dev/eci-cli 에서 확인하세요.
curl -fsSL https://raw.githubusercontent.com/elice-dev/eci-cli/main/scripts/install.sh | sh
eci --version # 설치 확인
지원 플랫폼:
- macOS (arm64, Apple Silicon)
- Linux (x86_64)
설정
사용 환경에 따라 두 가지 방법으로 설정할 수 있습니다.
| 방법 | 명령 | 특징 |
|---|---|---|
| 대화형 | eci config init | 엔드포인트 · 토큰 · 영역을 한 번에 프롬프트로 입력 |
| 비대화형 | eci config set <key> <value> | 각 항목을 개별 명령으로 직접 설정. 스크립트 · AI 에이전트에 적합 |
AI 에이전트와 함께 사용할 때
Claude Code 같은 AI 에이전트는 대화형 프롬프트를 안정적으로 처리하지 못하는 경우가 있어, eci config set을 사용하는 편이 더 잘 동작합니다.
대화형 (eci config init)
eci config init
| 항목 | 입력값 |
|---|---|
| 엔드포인트 | 민간용: https://portal.elice.cloud/api공공기관용: https://portal.gov.elice.cloud/api |
| 토큰(TOKEN) | Portal 로그인 → 사용자 관리 → 사용자 액세스 토큰 메뉴에서 토큰 생성 → 발급된 토큰 복사해 붙여넣기 |
| 영역(ZONE) | 영역이 하나면 자동 선택, 여러 개면 선택지를 표시 |

비대화형 (eci config set)
eci config set api_endpoint https://portal.elice.cloud/api
eci config set api_token <TOKEN>
eci config set zone_id auto # 영역 자동 선택
설정은 ~/.eci/config.yaml(0600 권한)에 저장됩니다.
검증
eci config verify # 인증 + 영역(zone) 검증
검증 실패 시
각 항목별 hint와 setup 명령이 함께 출력되므로 안내대로 따라가면 됩니다.
자원 조회 패턴
모든 자원은 동일한 구조입니다.
eci <group> <resource> list # 목록
eci <group> <resource> get <name|id> # 단건
예시:
eci compute vm list
eci compute vm get my-vm
eci storage block snapshot list --block-storage my-disk
eci image get "Ubuntu 24.04 LTS (Standard)"
| 공통 옵션 | 설명 |
|---|---|
--format {table,json,csv} | 출력 포맷 (기본 table) |
--query col1,col2,... | 컬럼 선택 |
전역 옵션
| 옵션 | 설명 |
|---|---|
-V, --version | 버전 출력 |
--zone <name | uuid> | 이 명령만 다른 zone 사용 |
-h, --help | 도움말 |
환경 변수
우선순위
환경 변수는 ~/.eci/config.yaml 보다 우선 적용됩니다. CI · 컨테이너 환경에서는 config 파일 없이 환경 변수만으로 동작 가능합니다.
| 변수 | 용도 |
|---|---|
ECI_API_ENDPOINT | API 베이스 URL |
ECI_API_TOKEN | Bearer 토큰 |
ECI_ZONE_ID | 기본 zone |
ECI_CONFIG | config 파일 경로 |
ECI_DEBUG | 1이면 내부 경고를 stderr에 출력 |
셸 자동완성
# Bash (~/.bashrc)
eval "$(_ECI_COMPLETE=bash_source eci)"
# Zsh (~/.zshrc)
eval "$(_ECI_COMPLETE=zsh_source eci)"
# Fish (~/.config/fish/config.fish)
_ECI_COMPLETE=fish_source eci | source
업데이트
설치 스크립트를 다시 실행하면 최신 버전으로 갱신됩니다. 특정 버전은 VERSION=0.2.0을 앞에 붙입니다.
curl -fsSL https://raw.githubusercontent.com/elice-dev/eci-cli/main/scripts/install.sh | sh
특징
- 이름으로 자원 참조: UUID 같은 긴 코드 대신 사람이 읽기 쉬운 이름을 그대로 사용할 수 있습니다 (
--image "Ubuntu 24.04 LTS"처럼) launch한 번에 일괄 생성: 가상머신 · 디스크 · NIC · Public IP를 함께 만들고 부팅까지 자동 진행. 도중 실패해도 생성된 자원이 자동으로 정리됩니다- 다양한 출력 포맷: 모든 조회 결과를 표 · JSON · CSV 중 원하는 형식으로 출력하고, 필요한 컬럼만 골라볼 수 있습니다
- 자동 재시도: 서버가 일시적으로 응답하지 못할 때 자동으로 다시 시도합니다 (최대 3회)