AWS S3에서 카카오클라우드 Object Storage로 데이터 이관
클라우드 스토리지를 지원하는 오픈소스 커맨드라인 도구인 Rclone을 사용하여 AWS S3의 데이터를 카카오클라우드 Object Storage로 이관할 수 있습니다. 이 문서에서는 Rclone의 일부 사용 예제를 설명합니다. Rclone의 기능에 대한 자세한 설명은 Rclone Reference 문서를 참조하세요.
- 예상 소요 시간: 30분
- 사용자 환경
- 권장 운영 체제: rocky, Ubuntu
- Region: kr-central-2
- 권장 운영 체제: rocky, Ubuntu
- 사전 준비 사항
- 카카오클라우드
- AWS
- AWS S3
- AWS S3 액세스 키
시나리오 소개
이번 시나리오에서는 AWS S3의 데이터를 카카오클라우드 Object Storage로 이관하는 방법을 소개합니다. 데이터 이관 작업에는 다양한 클라우드 저장소 간 데이터 전송을 지원하는 Rclone을 사용합니다. 이 시나리오의 주요 내용은 다음과 같습니다.
- Rclone 패키지 설치: 클라우드 스토리지를 관리할 수 있도록 Rclone을 설치합니다.
- Rclone 설정: AWS S3와 카카오클라우드 Object Storage 관리를 할 수 있도록 Rclone을 설정합니다.
- 데이터 이관: AWS S3에서 카카오 클라우드 Object Storage로 데이터를 이관하고 정합성을 검토합니다.
데이터 이관은 모두 인터넷망을 통해 이루어지므로, 데이터 이관용 VM 인스턴스와 Object Storage 간의 인터넷 연결이 가능해야 합니다.
Step 1. 데이터 이관용 VM 인스턴스 접속하기
데이터 이관용 VM 인스턴스에 Rclone 패키지를 설치하기 위하여 SSH로 접근합니다.
chmod 400 ${PRIVATE_KEY}.pem # 읽기 권한 부여
ssh -i ${PRIVATE_KEY}.pem ubuntu@${VM_PUBLIC_IP}
환경변수 | 설명 |
---|---|
PRIVATE_KEY🖌︎ | 키 파일 이름 |
VM_PUBLIC_IP🖌︎ | Virtual Machine > 인스턴스 탭에서 퍼블릭 IP 확인 |
Step 2. Rclone 설치하기
데이터 이관을 위해 중계용 VM 인스턴스에 Rclone 패키지를 설치합니다. 자세한 설명은 Rclone Install 문서를 확인하시기 바랍니다.
## Rclone 설치
curl https://rclone.org/install.sh | sudo bash
## Rclone 설치 확인
rclone --version
Step 3. Rclone 설정하기
중계용 VM 인스턴스에서 Rclone으로 카카오클라우드 Object Storage와 AWS S3를 관리할 수 있습니다. 이를 위해 Rclone 설정이 필요합니다. 자세한 설명은 Rclone config 문서를 확인하시기 바랍니다.
-
rclone.conf 파일에 카카오클라우드와 AWS 설정 정보를 입력합니다.
cat <<EOL > ~/.config/rclone/rclone.conf
# 카카오클라우드 Object Storage 설정
[kakaocloud-obj]
type = s3
provider = Ceph
env_auth = True
access_key_id = ${CREDENTIAL_ACCESS_KEY}
secret_access_key = ${CREDENTIAL_SECRET_ACCESS_KEY}
region = kr-central-2
endpoint = https://objectstorage.kr-central-2.kakaocloud.com
# AWS S3 설정
[aws-s3]
type = s3
provider = AWS
access_key_id = ${AWS_ACCESS_KEY}
secret_access_key = ${AWS_SECRET_ACCESS_KEY}
region = ${AWS_REGION}
EOL환경변수 설명 CREDENTIAL_ACCESS_KEY🖌︎ S3 API 사용에 필요한 액세스 키 CREDENTIAL_SECRET_ACCESS_KEY🖌︎ S3 API 사용에 필요한 비밀 액세스 키 AWS_ACCESS_KEY🖌︎ AWS 액세스 키 AWS_SECRET_ACCESS_KEY🖌︎ AWS 비밀 액세스 키 AWS_REGION🖌︎ AWS 리전 정보카카오클라우드 Object Storage 설정값에는 S3 API 사용에 필요한 Credential 발급 정보를 발급받아야 합니다.
자세한 방법은 S3 API 사용에 필요한 Credential 발급 문서를 참고하시기 바랍니다. -
lsd 명령어를 사용하여 Object Storage의 모든 버킷을 나열합니다. 이를 통해 Rclone이 Object Storage와 정상적으로 연결되었는지 확인할 수 있습니다.
Rclone과 Object Storage 연결 확인# 카카오클라우드 Object Storage 연결 확인
rclone lsd kakaocloud-obj:/
# AWS S3 연결 확인
rclone lsd aws-s3:/
Step 4. 데이터 이관하기
sync
명령어를 사용하여 출발지와 목적지의 데이터를 동기화합니다. 이를 통해 AWS S3특정 버킷 데이터를 카카오클라우드 Object Storage로 이관할 수 있습니다. 자세한 설명은 Rclone sync 문서를 참조하세요.
# AWS S3를 카카오클라우드 Object Storage로 이관 전 테스트
rclone sync aws-s3:/"${AWS_BUCKET}" kakaocloud-obj:/"${KAKAO_BUCKET}" --progress -v \
--create-empty-src-dirs --metadata --log-file "${LOGFILE}" --log-format date,time,KST,longfile --dry-run
# AWS S3를 카카오클라우드 Object Storage로 이관
rclone sync aws-s3:/"${AWS_BUCKET}" kakaocloud-obj:/"${KAKAO_BUCKET}" --progress -v \
--create-empty-src-dirs --metadata --log-file "${LOGFILE}" --log-format date,time,KST,longfile
환경변수 | 설명 |
---|---|
AWS_BUCKET🖌︎ | AWS Bucket 이름 |
KAKAO_BUCKET🖌︎ | 카카오클라우드 Bucket 이름 |
LOGFILE🖌︎ | 로그 파일명 |
sync
명령어를 사용하여 데이터 이관 시, 목적지의 데이터가 변경됩니다. 따라서 데이터 이관을 진행하기 전에 출발지와 목적지가 올바른지 반드시 확인해야 합니다. 출발지와 목적지가 뒤바뀔 경우, 데이터 손실이 발생할 수 있습니다.
- 출발지 : AWS S3
- 목적지 : 카카오클라우드 Object Storage
위 sync
예제의 --metadata 옵션은 Rclone 1.66부터 지원됩니다.
Step 5. 데이터 이관 정합성 확인
데이터의 정합성을 검토하여 정상적으로 이관이 되었는지 확인할 수 있습니다.
# 데이터 정합성 확인
rclone check aws-s3:/"${AWS_BUCKET}" kakaocloud-obj:/"${KAKAO_BUCKET}" --progress -v
# 두 Object Storage의 Object 수와 용량 확인
rclone size aws-s3:/"${AWS_BUCKET}"
rclone size kakaocloud-obj:/"${KAKAO_BUCKET}"
환경변수 | 설명 |
---|---|
AWS_BUCKET🖌︎ | AWS S3 Bucket 이름 |
KAKAO_BUCKET🖌︎ | 카카오클라우드 Object Storage Bucket 이름 |