본문으로 건너뛰기

ECI Object Storage 사용법 (rclone & aws-cli)

ECI Object Storage는 S3 호환 API를 제공하는 확장성 높은 스토리지 솔루션입니다. 본 문서는 rcloneaws-cli를 활용하여 Object Storage를 효율적으로 관리하는 방법에 대해서 안내합니다.

1. 사전 요구사항

시작하기 전, ECI 포털 > Object Storage에서 아래 정보를 확인하십시오.

  • Bucket Name: 프로비저닝된 Object Storage의 고유 이름 (e.g., eci-473eb07a-...)
  • Access Key: 발급된 사용자의 Access Key
  • Secret Key: 발급된 사용자의 Secret Key

2. 클라이언트 구성 (Client Configuration)

2.1. rclone (권장)

rclone은 다양한 프로토콜을 지원하는 강력한 클라우드 스토리지 관리 도구입니다. 동기화, 마운트 등 고급 기능을 통해 유연한 데이터 관리가 가능합니다. 자세한 정보는 rclone 공식 웹사이트를 참조하십시오.

2.1.1. 설치

# macOS / Linux
sudo -v ; curl https://rclone.org/install.sh | sudo bash

Windows: 공식 다운로드 페이지에서 바이너리를 다운로드하고 PATH에 등록하십시오.

2.1.2. 구성 (rclone config)

아래 rclone config 명령어를 실행하여 elicecloud라는 이름의 원격(remote)을 구성합니다.

# 설정 시작
$ rclone config

# 새 원격 생성
n) New remote
name> elicecloud
Storage> 4 # Amazon S3 Compliant Storage
provider> 4 # Amazon Web Services (AWS) S3
env_auth> # Enter (false)
access_key_id> YOUR_ACCESS_KEY
secret_access_key> YOUR_SECRET_KEY
region> # Enter (빈칸으로 두고 Enter)
endpoint> https://s3.elice.cloud
location_constraint> # Enter (빈칸으로 두고 Enter)
acl> # Enter (빈칸으로 두고 Enter)
server_side_encryption> # Enter (빈칸으로 두고 Enter)
sse_kms_key_id> # Enter (빈칸으로 두고 Enter)
Edit advanced config? (y/n) n
Keep this "elicecloud" remote? (y/n) y
q) Quit config

2.2. AWS CLI

AWS CLI는 S3 호환 스토리지의 표준 인터페이스로, 자동화 스크립트 작성에 널리 사용됩니다.

2.2.1. 설치

# Linux
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Windows/macOS: AWS CLI 공식 문서를 참조하여 설치하십시오.

2.2.2. 구성 (aws configure & Endpoint 설정)

먼저 자격 증명을 설정합니다.

aws configure
  • AWS Access Key ID: YOUR_ACCESS_KEY
  • AWS Secret Access Key: YOUR_SECRET_KEY
  • Default region name / output format: [Enter]

ECI 엔드포인트를 지정하는 것이 매우 중요합니다. ~/.aws/config 파일에 아래 내용을 추가하여 기본 S3 엔드포인트를 재정의합니다.

[default]
services = s3

[services s3]
s3 =
endpoint_url = https://s3.elice.cloud

3. 핵심 운영 명령어 (Core Operations)

3.1. 기본 데이터 전송

작업rcloneAWS CLI
업로드rclone copy [src] elicecloud:YOUR_BUCKET_NAME/[dest] --s3-no-check-bucket --progressaws s3 cp [src] s3://YOUR_BUCKET_NAME/[dest]
다운로드rclone copy elicecloud:YOUR_BUCKET_NAME/[src] [dest] --s3-no-check-bucket --progressaws s3 cp s3://YOUR_BUCKET_NAME/[src] [dest]
목록 조회rclone ls elicecloud:YOUR_BUCKET_NAME/[path]aws s3 ls s3://YOUR_BUCKET_NAME/[path]
사용량 확인rclone size elicecloud:YOUR_BUCKET_NAMEaws s3 ls --summarize --human-readable --recursive s3://YOUR_BUCKET_NAME
삭제rclone delete elicecloud:YOUR_BUCKET_NAME/[object] --s3-no-check-bucketaws s3 rm s3://YOUR_BUCKET_NAME/[object]

💡 Best Practice: ECI Object Storage는 API를 통한 버킷 생성을 지원하지 않으므로, rclone 사용 시 --s3-no-check-bucket 옵션을 필수로 사용하여 버킷 존재 여부 확인 절차를 건너뛰는 것이 효율적입니다.

3.2. 디렉토리 동기화 (rclone sync)

로컬 디렉토리를 원격지와 일치시키는 가장 강력한 기능입니다. 원본에 없는 파일은 대상에서 삭제되므로 주의가 필요합니다.

# 로컬 'project-data' 디렉토리를 버킷의 'backup' 디렉토리와 동기화
rclone sync ~/project-data elicecloud:YOUR_BUCKET_NAME/backup --s3-no-check-bucket --progress

⚠️ 경고: sync 명령어 실행 전, --dry-run 옵션을 사용하여 변경될 내용을 반드시 시뮬레이션하고 검토하십시오. rclone sync ... --dry-run


4. 고급 활용: 파일시스템 마운트

rclone mount를 사용하여 Object Storage를 VM의 로컬 디렉토리처럼 마운트할 수 있습니다. 이를 통해 기존 애플리케이션 변경 없이 스토리지를 확장할 수 있습니다.

📋 사전 요구사항: 마운트 기능을 사용하기 위해서는 앞서 2.1절에서 설명한 rclone 설치 및 elicecloud 원격 구성이 완료되어 있어야 합니다.

4.1. 마운트 실행

먼저 마운트 포인트로 사용할 빈 디렉토리를 생성합니다.

mkdir -p /path/to/mount/point

이후 rclone mount 명령어를 백그라운드(--daemon)로 실행합니다.

rclone mount elicecloud:YOUR_BUCKET_NAME /path/to/mount/point --daemon
  • --daemon: 백그라운드에서 프로세스를 실행합니다.

4.2. 마운트 관련 주요 고려사항

  • 성능: 마운트된 파일시스템은 네트워크 레이턴시로 인해 로컬 디스크보다 느릴 수 있습니다.
  • 용량 조회: df -h 명령어는 실제 할당량을 표시하지 않고 가상의 큰 값(e.g., 1.0P)을 반환합니다. 정확한 사용량은 rclone size나 ECI 포털을 통해 확인해야 합니다.
  • 대용량 파일 ( > 48GiB): 48GiB를 초과하는 단일 파일을 처리하려면 --s3-chunk-size 옵션을 조정해야 합니다.
    # 예시: 청크 사이즈를 128M으로 설정하여 더 큰 파일 지원
    rclone mount ... --s3-chunk-size=128M

    Trade-off: 청크 사이즈 증가는 메모리 사용량 증가와 실패 시 재전송 비용 증가를 초래하므로 시스템 사양에 맞게 조정해야 합니다.

  • 마운트 해제: 시스템 종료 전, umount 명령어로 안전하게 마운트를 해제해야 합니다.
    umount /path/to/mount/point