ECI Object Storage 사용법 (rclone & aws-cli)
ECI Object Storage는 S3 호환 API를 제공하는 확장성 높은 스토리지 솔루션입니다. 본 문서는 rclone
과 aws-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. 기본 데이터 전송
작업 | rclone | AWS CLI |
---|---|---|
업로드 | rclone copy [src] elicecloud:YOUR_BUCKET_NAME/[dest] --s3-no-check-bucket --progress | aws s3 cp [src] s3://YOUR_BUCKET_NAME/[dest] |
다운로드 | rclone copy elicecloud:YOUR_BUCKET_NAME/[src] [dest] --s3-no-check-bucket --progress | aws 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_NAME | aws s3 ls --summarize --human-readable --recursive s3://YOUR_BUCKET_NAME |
삭제 | rclone delete elicecloud:YOUR_BUCKET_NAME/[object] --s3-no-check-bucket | aws 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=128MTrade-off: 청크 사이즈 증가는 메모리 사용량 증가와 실패 시 재전송 비용 증가를 초래하므로 시스템 사양에 맞게 조정해야 합니다.
- 마운트 해제: 시스템 종료 전,
umount
명령어로 안전하게 마운트를 해제해야 합니다.umount /path/to/mount/point