IBM Cloud Object Storage (S3)에서 다운로드하는 테스트를 다양한 도구로 시도했습니다.

Reference



이 기사에 나와 있는 도구를 중심으로 IBM Cloud Object Storage(S3)에서 다운로드할 수 있습니다.

Moving data from COS to File or Block Storage - developerWorks Recipes

Overview



도쿄 DC의 베어메탈(VMware) 상에 있는 CentOS7에서 다운로드를 하여, 어느 정도의 속도로 전송할 수 있는지를 확인합니다.



1. rclone



버전


rclone --version
rclone v1.43-116-g22ac80e8-beta
- os/arch: linux/amd64
- go version: go1.11

설정


cat /root/.config/rclone/rclone.conf 
[icos]
type = s3
provider = IBMCOS
env_auth = false
access_key_id = ACCESS_KEY_ID
secret_access_key = SECRET_ACCESS_KEY
endpoint = s3.tok-ap-geo.objectstorage.service.networklayer.com
location_constraint = ap-flex
acl = private

Download



61.036MB/s입니다.
rclone copy icos:khayama-test2/temp_300GB_file . -vv
2018/09/28 13:50:42 DEBUG : rclone: Version “v1.43-116-g22ac80e8-beta” starting with parameters [“rclone” “copy” “icos:khayama-test2/temp_300GB_file” “.” “-vv”]
2018/09/28 13:50:42 DEBUG : Using config file from “/root/.config/rclone/rclone.conf”
2018/09/28 13:50:42 DEBUG : pacer: Reducing sleep to 0s
2018/09/28 13:50:43 DEBUG : temp_300GB_file: Couldn’t find file - need to transfer
…

2018/09/28 14:01:42 INFO :
Transferred: 38.756G / 300 GBytes, 13%, 60.059 MBytes/s, ETA 1h14m14s
Errors: 0
Checks: 0 / 0, -
Transferred: 0 / 1, 0%
Elapsed time: 11m0.7s
Transferring:
temp_300GB_file: 12% /300G, 61.036M/s, 1h13m2s

요주의사항



rclone을 사용하는 경우, 2018/10/3 시점에서는, ICOS로부터 300GB 이상의 파일을 다운로드할 때에, 10%%당으로 다운로드가 멈춰 버리는 버그가 있습니다.
대용량 파일을 다룰 때는 버그가 해결되었는지 확인한 후에 사용하십시오.

Cannot download over 300GB file with rclone - rclone forum

2. s3fs



버전


s3fs --version
Amazon Simple Storage Service File System V1.84(commit:c5af62b) with OpenSSL
Copyright (C) 2010 Randy Rizun <[email protected]>
License GPL2: GNU GPL version 2 <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

설정


echo ACCESS_KEY_ID:SECRET_ACCESS_KEY >  ~/.passwd-s3fs
chmod 600  ~/.passwd-s3fs
s3fs khayama-test2 /mnt/bucket -o passwd_file=~/.passwd-s3fs -o allow_other,url=https://s3.tok-ap-geo.objectstorage.service.networklayer.com

Download



54.6 MiB/s이므로 57.25 MB/s입니다.
cp /mnt/bucket/temp_300GB_file . -v
 '/mnt/bucket/temp_300GB_file' -> './temp_300GB_file'
1 files (300.0 GiB) copied in 5630.5 seconds (54.6 MiB/s).

MB(단위)란? MiB란? | GMO 클라우드 아카데미

3. aws cli



버전


aws --version
aws-cli/1.16.25 Python/2.7.5 Linux/3.10.0-862.el7.x86_64 botocore/1.12.15

설정


cat ~/.aws/credentials
[default]
aws_access_key_id = ACCESS_KEY_ID
aws_secret_access_key = SECRET_ACCESS_KEY
cat ~/.aws/config
[default]
output = json
region = ap-flex

Download



128.1 MiB/s이므로 134.32 MB/s입니다.
aws --endpoint-url https://s3.tok-ap-geo.objectstorage.service.networklayer.com s3 cp s3://khayama-test2/temp_300GB_file /home/
Completed 274.8 GiB/300.0 GiB (128.1 MiB/s) with 1 file(s) remaining

4. s3cmd



버전


s3cmd --version
s3cmd version 2.0.2

설정


s3cmd --configure
...
New settings:
  Access Key: ACCESS_KEY_ID
  Secret Key: SECRET_ACCESS_KEY
  Default Region: ap-flex
  S3 Endpoint: s3.tok-ap-geo.objectstorage.service.networklayer.com
  DNS-style bucket+hostname:port template for accessing a bucket: %(bucket).s3.tok-ap-geo.objectstorage.service.networklayer.com
  Encryption password: ******
  Path to GPG program: /usr/bin/gpg
  Use HTTPS protocol: True
  HTTP Proxy server name: 
  HTTP Proxy server port: 0

Test access with supplied credentials? [Y/n] y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)

Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)

Save settings? [y/N] y
Configuration saved to '/root/.s3cfg'

Download



중간에 재 시도가 발생했지만 61.67MB/s입니다.
s3cmd get s3://khayama-test2/temp_300GB_file
download: 's3://khayama-test2/temp_300GB_file' -> './temp_300GB_file'  [1 of 1]
  47244640256 of 322122547200    14% in  750s    60.02 MB/s  failed
WARNING: Retrying failed request: /temp_300GB_file (('The read operation timed out',))
WARNING: Waiting 3 sec...
download: 's3://khayama-test2/temp_300GB_file' -> './temp_300GB_file'  [1 of 1]
 322122547200 of 322122547200   100% in 4250s    61.67 MB/s  done

요약



IBM Cloud Object Storage(S3)에서 다운로드할 때
aws cli를 사용하여 다운로드가 우수하다는 것을 알았습니다.
꼭 참고해 주셨으면 합니다.


도구
속도


aws cli
134.32 MB/s

s3cmd
61.67 MB/s

rclone
61.036MB/s

s3fs
57.25 MB/s


다른 곳에서도 비슷한 결과에서 aws cli를 사용하는 것이 좋습니다.

s3cmd가 아니라 awscli s3을 사용합시다 ~ IDCF 클라우드 객체 스토리지에서도 | 이나바 서버 디자인

또, aws cli 로 여러가지 옵션을 시험해 보고 싶은 분은 이하의 기사가 참고가 됩니다.

AWS CLI S3 명령의 병렬 처리 설정 - Qiita

좋은 웹페이지 즐겨찾기