Why Migrate?
If you're considering moving from AWS S3 to ElasticLake, you're likely looking for:
- More predictable pricing
- Lower egress costs
- Better value for your storage needs
The good news: migration is straightforward thanks to S3 compatibility.
Before You Start
1. Create Your ElasticLake Account
Sign up at elasticlake.com and create your account. You'll get:
- Access credentials (Access Key ID and Secret Key)
- Your endpoint URL
- A default Lake and Pond
2. Plan Your Migration
Consider:
- Data volume: How much data are you moving?
- Downtime tolerance: Can your application handle a brief switch?
- Verification needs: How will you confirm data integrity?
Migration Methods
Method 1: Using rclone (Recommended)
rclone is a powerful tool for cloud-to-cloud transfers.
# Configure AWS S3
rclone config create aws s3 \
provider AWS \
access_key_id YOUR_AWS_KEY \
secret_access_key YOUR_AWS_SECRET \
region us-east-1
# Configure ElasticLake
rclone config create elasticlake s3 \
provider Other \
access_key_id YOUR_EL_KEY \
secret_access_key YOUR_EL_SECRET \
endpoint https://api.elasticlake.com
# Sync your bucket
rclone sync aws:lake1--pond1--my-bucket elasticlake:lake1--pond1--my-bucket --progress
Method 2: Using AWS CLI with Custom Endpoint
# Copy from AWS to local
aws s3 sync s3://lake1--pond1--my-bucket ./local-copy
# Upload to ElasticLake
aws s3 sync ./local-copy s3://lake1--pond1--my-bucket \
--endpoint-url https://api.elasticlake.com
Method 3: Application-Level Migration
For live applications, you can implement a gradual migration:
import boto3
aws_s3 = boto3.client('s3')
el_s3 = boto3.client(
's3',
endpoint_url='https://api.elasticlake.com',
aws_access_key_id='YOUR_EL_KEY',
aws_secret_access_key='YOUR_EL_SECRET'
)
def migrate_object(bucket, key):
# Download from AWS
response = aws_s3.get_object(Bucket=bucket, Key=key)
data = response['Body'].read()
# Upload to ElasticLake
el_s3.put_object(Bucket=bucket, Key=key, Body=data)
Updating Your Application
Once data is migrated, update your application's S3 configuration:
# Before
s3 = boto3.client('s3')
# After
s3 = boto3.client(
's3',
endpoint_url='https://api.elasticlake.com',
aws_access_key_id='YOUR_EL_KEY',
aws_secret_access_key='YOUR_EL_SECRET'
)
Verification Checklist
After migration:
- Verify object counts match
- Spot-check random files for integrity
- Test application functionality
- Monitor for errors in logs
- Confirm billing is as expected
Need Help?
Our support team has helped hundreds of companies migrate. Contact us if you need assistance with your migration.
Ready to switch? Create your free account and start migrating today.