GCS 데이터를 S3로 전송하는 방법
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를 조합하는 것입니다.
🚀 실제 운영 환경에서는 비용 절감과 전송 속도를 고려하여 최적의 방법을 선택하세요!