Google Cloud Storage(GCS)의 데이터를 AWS S3로 이전하려면 Google Cloud SDK와 AWS CLI를 활용하는 방법이 가장 일반적입니다. 또한, gsutil과 AWS S3 Sync를 조합하여 GCS에서 S3로 데이터를 자동으로 복사할 수 있습니다.
1. GCS → S3로 전송하는 방법
GCS에서 S3로 데이터를 전송하는 주요 방법은 다음과 같습니다:
방법설명
gsutil + AWS CLI | GCS 데이터를 로컬에 다운로드한 후 S3로 업로드 |
gsutil rsync + AWS S3 Sync | GCS 데이터를 AWS S3로 직접 동기화 |
Storage Transfer Service | GCP 내장 기능으로 S3로 직접 전송 (비용 발생 가능) |
rclone | 오픈소스 툴을 이용하여 간편하게 전송 |
2. gsutil과 AWS CLI를 이용한 수동 전송
📌 사전 준비
- Google Cloud SDK 설치 (gsutil 포함)
- AWS CLI 설치 (aws s3 명령어 사용)
- Google Cloud 인증 (gcloud auth)
- AWS CLI 인증 (aws configure)
✅ 2.1 GCS에서 로컬로 데이터 다운로드
gsutil -m cp -r gs://YOUR_GCS_BUCKET_NAME /local/path
🔹 설명:
- -m : 병렬 다운로드 활성화 (속도 향상)
- cp -r : 폴더 전체를 복사
- gs://YOUR_GCS_BUCKET_NAME : GCS 버킷 경로
- /local/path : 로컬 저장 경로
✅ 2.2 로컬에서 AWS S3로 업로드
aws s3 cp /local/path s3://YOUR_S3_BUCKET_NAME --recursive
🔹 설명:
- --recursive : 폴더 내 모든 파일을 업로드
- s3://YOUR_S3_BUCKET_NAME : S3 버킷 경로
🎯 최적화된 동기화 방법
aws s3 sync /local/path s3://YOUR_S3_BUCKET_NAME
- sync를 사용하면 변경된 파일만 전송하여 속도와 비용을 줄일 수 있음.
3. GCS에서 S3로 직접 전송 (gsutil + aws s3 sync)
GCS와 S3 간 직접 전송을 자동화하려면 gsutil rsync와 aws s3 sync를 활용하면 됨.
gsutil -m rsync -r gs://YOUR_GCS_BUCKET_NAME /tmp/gcs_data
aws s3 sync /tmp/gcs_data s3://YOUR_S3_BUCKET_NAME
🔹 설명:
1. gsutil rsync를 사용하여 GCS 데이터를 /tmp/gcs_data로 다운로드
2. aws s3 sync를 사용하여 S3로 동기화
3. GCS → S3 데이터 이전이 자동화됨
4. Storage Transfer Service 활용 (GCP에서 직접 전송)
Google Cloud의 Storage Transfer Service를 사용하면 GCS에서 S3로 직접 전송할 수 있습니다.
✅ 설정 방법
- GCP 콘솔 → Storage Transfer로 이동
- 새로운 전송 생성
- 소스: GCS 버킷 선택
- 대상: S3 버킷 선택 (IAM 권한 필요)
- 스케줄 설정: 한 번만 실행 또는 정기적 실행 설정
- 전송 시작
🔹 장점
- 자동화 가능
- IAM 역할 설정을 통해 보안 유지
- UI 기반 설정이 가능하여 간단
🔹 단점
- 사용량에 따라 비용 발생 (GCP에서 AWS로 데이터 전송 시 인터넷 아웃바운드 요금 부과)
5. rclone 사용 (간편한 방법)
오픈소스 툴 rclone을 사용하면 CLI에서 쉽게 GCS와 S3 간 데이터를 동기화할 수 있습니다.
✅ rclone 설치
curl https://rclone.org/install.sh | sudo bash
✅ GCS와 S3 설정
rclone config
- GCS 및 S3 스토리지 추가 (Google Cloud & AWS 설정)
✅ GCS → S3 동기화
rclone sync gcs:YOUR_GCS_BUCKET_NAME s3:YOUR_S3_BUCKET_NAME
🔹 장점
- 빠르고 간단한 전송 가능
- 크로스 클라우드 데이터 이동에 최적화
6. 비용 고려 사항
GCS → S3 전송 시 비용이 발생할 수 있음. 주요 비용 요소는 다음과 같음.
비용 항목설명
GCS 아웃바운드 비용 | GCS에서 AWS로 데이터 전송 시 인터넷 전송 비용 부과 |
AWS S3 PUT 요청 비용 | AWS S3로 데이터를 업로드할 때 요청당 비용 발생 |
S3 저장 비용 | S3에 데이터를 저장하는 비용 (Standard, Infrequent Access 등) |
📌 비용 절감 방법
1. S3 Glacier 또는 Infrequent Access 스토리지 사용
2. gzip 압축 후 전송하여 데이터 크기 줄이기
3. Cloud Storage Transfer Service 예약 사용 (시간대 설정)
7. 최적의 방법 선택
방법사용 사례비용
gsutil + AWS CLI | 수동으로 데이터 전송할 경우 | 저렴 (인터넷 전송 비용) |
gsutil rsync + AWS S3 sync | 자동화 및 스크립트 기반 전송 | 저렴 (인터넷 전송 비용) |
Storage Transfer Service | 정기적으로 GCS에서 S3로 동기화할 때 | 유료 (GCP 네트워크 비용) |
rclone | 크로스 클라우드 데이터 전송이 필요한 경우 | 저렴 |
8. 결론
- GCS 데이터를 S3로 이전하는 방법은 여러 가지가 있으며, 목적과 비용에 따라 방법을 선택해야 합니다.
- 간단한 전송 → gsutil cp + aws s3 sync
- 자동화 → gsutil rsync + aws s3 sync
- 정기적인 동기화 → Storage Transfer Service
- 고급 사용 → rclone
✅ 가장 최적화된 방법은 gsutil rsync와 AWS S3 sync를 조합하는 것입니다.
🚀 실제 운영 환경에서는 비용 절감과 전송 속도를 고려하여 최적의 방법을 선택하세요!