Migrate from Cloudflare R2 to AWS S3
Complete guide to migrating your data from Cloudflare R2 to Amazon S3 using Cloney.
Overview
Migrating from Cloudflare R2 to AWS S3 may be necessary when you need AWS's extensive ecosystem, advanced features like S3 Select, or compliance with specific AWS-based workflows. This guide provides a comprehensive walkthrough of the migration process using Cloney.
While R2 offers zero egress fees, AWS S3 provides industry-leading durability, extensive integrations, and advanced features like Glacier for archival.
Prerequisites
- A Cloney account with an active subscription
- Cloudflare R2 bucket with data to migrate
- AWS S3 bucket created (destination)
- Appropriate credentials for both services
Setup Access Credentials
Before proceeding, ensure you have configured least privilege access for both services:
Cloudflare R2: Least Privilege AccessAWS S3: Least Privilege Access SetupStep 1: Add Your Cloudflare R2 Source
- Log in to your Cloney dashboard
- Navigate to Jobs → Create New Job
- Select Cloudflare R2 as your source provider
- Enter your R2 credentials:
- Account ID: Your Cloudflare account ID
- Access Key ID: Your R2 API token access key
- Secret Access Key: Your R2 API token secret key
- Bucket Name: The name of your source R2 bucket
- Click Validate Connection to verify access
Step 2: Configure Your AWS S3 Destination
- Select AWS S3 as your destination provider
- Enter your AWS credentials:
- Access Key ID: Your IAM user access key
- Secret Access Key: Your IAM user secret key
- Region: The AWS region where your bucket is located
- Bucket Name: The name of your destination S3 bucket
- Click Validate Connection to verify access
Step 3: Configure Migration Options
Customize your migration with these options:
| Option | Description | Recommendation |
|---|---|---|
| Prefix/Path Filter | Migrate only objects matching a specific prefix | Use for partial migrations |
| Preserve Metadata | Copy object metadata along with data | Enable for full fidelity |
| Storage Class | Set the S3 storage class for migrated objects | Standard for frequent access |
| Overwrite Existing | Replace objects that already exist in destination | Enable for sync operations |
Step 4: Start the Migration
- Review your migration configuration
- Click Start Migration
- Monitor progress in the Jobs dashboard
- Cloney will provide real-time updates on:
- Objects transferred
- Data volume migrated
- Transfer speed
- Any errors encountered
Once finished, verify your data in the AWS S3 console and update your applications.
Storage Class Recommendations
Choose the appropriate AWS S3 storage class based on your access patterns:
| Access Pattern | Recommended S3 Class | Use Case |
|---|---|---|
| Frequent access | S3 Standard | Active data, frequently accessed files |
| Unknown pattern | S3 Intelligent-Tiering | Automatic cost optimization |
| Infrequent access | S3 Standard-IA | Backups, disaster recovery |
| Archive | S3 Glacier | Long-term archival, compliance |
Cost Considerations
Understand the cost implications of migrating from R2 to S3:
| Cost Component | Cloudflare R2 | AWS S3 Standard |
|---|---|---|
| Storage (per GB/month) | $0.015 | $0.023 |
| Egress (per GB) | $0.00 | $0.09 |
| PUT requests (per 1K) | $0.0045 | $0.005 |
| GET requests (per 1K) | $0.00036 | $0.0004 |
AWS S3 charges for egress while R2 doesn't. Factor this into your cost calculations if your workload has significant outbound traffic.
Best Practices
- Enable Versioning: Turn on S3 versioning for data protection and recovery.
- Configure Lifecycle Rules: Set up automatic transitions to optimize storage costs.
- Use Transfer Acceleration: For large datasets, consider S3 Transfer Acceleration.
- Update Application Config: Update your application to use AWS SDK and S3 endpoints.
Ready to Start Your Migration?
Create your Cloney account and begin migrating your data securely today.