본문으로 건너뛰기

타사 S3 데이터 iwinv Object Storage로 이관하기

S3데이터 iwinv migrate 가이드

타사 S3 Object Storage의 bucket 내부에 있는 파일 및 디렉토리 등의 데이터를 iwinv Object Storage로 이관하는 방법에 관해 소개합니다.
진행하는 방법은 아래와 같습니다.

이관 전 준비 사항

설명

Rclone는 다양한 클라우드 저장소를 다룰 수 있는 프로그램으로 각 bucket 간에 동기화 작업을 할 수 있는 sync 옵션을 지원합니다.
이 기능으로 타사 S3 데이터를 쉽게 이관하는 방법에 관해 설명하겠습니다.

rclone가이드

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_KEYiwinv S3 ACCESS KEY
IWINV_SECRET_ACCESS_KEYiwinv 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_BUCKETiwinv 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_2iwinv bucket 이름