타사 S3 데이터 iwinv Object Storage로 이관하기
타사 S3 Object Storage의 bucket 내부에 있는 파일 및 디렉토리 등의 데이터를 iwinv Object Storage로 이관하는 방법에 관해 소개합니다.
진행하는 방법은 아래와 같습니다.
- 권장 운영체제 : Ubuntu, Rocky
- 작업 전 필요한 사항
iwinv : 신규 API 인증키(액세스) 생성
타사 : S3 데이터 및 액세스 키
설명
Rclone는 다양한 클라우드 저장소를 다룰 수 있는 프로그램으로 각 bucket 간에 동기화 작업을 할 수 있는 sync 옵션을 지원합니다.
이 기능으로 타사 S3 데이터를 쉽게 이관하는 방법에 관해 설명하겠습니다.
rclone 설치 및 기본 사용방법은 아래 가이드를 참고하시기 바랍니다. rclone 설치 및 기본 사용 가이드
사전 확인 사항
- 데이터 이관은 타 사의 S3 데이터가 VM 또는 사용하는 Windows PC를 거쳐 다운로드 및 업로드 과정이 진행됩니다.
- 이관 중 네트워크의 속도 및 방화벽 등의 설정에 영향을 받을 수 있습니다.
- 가급적 임시 VM을 추가하여 데이터를 이관하는 것을 권장합니다.
설치 및 설정
Rclone 패키지 설치
VM을 통해 Ubuntu, Rocky에서 패키지 설치를 진행합니다.
curl https://rclone.org/install.sh | sudo bash
Rclone config 파일 설정
Rclone를 첫 사용 시 쉬운 설정을 위해 아래의 내용을 복사 후 config 파일을 생성하면 편리하게 사용할 수 있습니다.
cat <<EOL > ~/.config/rclone/rclone.conf
[iwinv-object]
type = s3
provider = Ceph
env_auth = True
access_key_id = ${IWINV_ACCESS_KEY}
secret_access_key = ${IWINV_SECRET_ACCESS_KEY}
endpoint = https://kr.object.iwinv.kr
[tasa-s3]
type = s3
provider = Ceph # 또는 타사의 provider 기재
env_auth = True
access_key_id = ${TASA_ACCESS_KEY}
secret_access_key = ${TASA_SECRET_ACCESS_KEY}
region = ${TASA_REGION}
EOL
아래의 환경 변수를 참고하여 위의 적힌 변수의 내용을 변경 후 명령어를 사용합니다.
환경변수 | 설명 |
---|---|
IWINV_ACCESS_KEY | iwinv S3 ACCESS KEY |
IWINV_SECRET_ACCESS_KEY | iwinv S3 SECRET ACCESS KEY |
TASA_ACCESS_KEY | 타 사의 ACCESS KEY |
TASA_SECRET_ACCESS_KEY | 타 사의 SECRET ACCESS KEY |
TASA_REGION | 타 사의 리전명 |
rclone lsd 명령어를 통해 Object Storage의 bucket이 나열되는지 확인합니다. 만약 내용이 없다면 방화벽 등의 확인을 진행해야합니다.
타 사의 S3 bucket 리스트 확인
rclone lsd TASA-s3:/
iwinv의 Object Storage bucket 리스트 확인
rclone lsd iwinv-object:/
데 이터 이관
rclone sync 명령어는 출발지의 데이터를 목적지로 동기화 하는 기능을 가지고 있습니다.
bucket를 올바르게 입력하지 않는 경우 데이터의 망실이 발생할 수 있어 주의해야 합니다.
타사 S3 bucket 데이터를 iwinv Object Storage의 bucket로 이관 하기 전 테스트
rclone sync TASA-s3:/"${TASA_BUCKET}" iwinv-object:/"${IWINV_BUCKET}" --progress -v \
--create-empty-src-dirs --metadata --log-format date,time,KST,longfile --log-file "${LOG_FILE}" --dry-run
타사 S3 bucket 데이터를 iwinv Object Storage의 bucket로 이관
rclone sync TASA-s3:/"${TASA_BUCKET}" iwinv-object:/"${IWINV_BUCKET}" --progress -v \
--create-empty-src-dirs --metadata --log-format date,time,KST,longfile --log-file "${LOG_FILE}"
아래의 환경 변수를 참고하여 위의 적힌 변수의 내용을 변경 후 명령어를 사용합니다.
환경변수 | 설명 |
---|---|
TASA_BUCKE | 타 사 bucket 이름 |
IWINV_BUCKET | iwinv bucket 이름 |
LOG_FILE | 로그 파일 이름 |
데이터 상태 확인
데이터 상태 확인
rclone check TASA-s3:/"${TASA_BUCKET}" iwinv-object:/"${IWINV_BUCKET}" --progress -v
타사 S3 bucket 데이터와 iwinv Object Storage의 bucket 데이터를 비교
rclone size TASA-s3:/"${TASA_BUCKET}"
rclone size iwinv-object:/"${IWINV_BUCKET}"
아래의 환경 변수를 참고하여 위의 적힌 변수의 내용을 변경 후 명령어를 사용합니다.
환경변수 | 설명 |
---|---|
TASA_BUCKET_2 | 타 사 bucket 이름 |
IWINV_BUCKET_2 | iwinv bucket 이름 |