Overview
Migrating from AWS Batch to SaladCloud enables you to reduce batch processing costs by up to 90% while maintaining robust job orchestration and scaling capabilities. If you’re currently running batch jobs on AWS Batch compute environments, you’ll find that SaladCloud offers similar patterns for job queuing, automatic scaling, and distributed processing — but at a fraction of the cost. What Stays Exactly the Same:- Your application code and processing logic remain unchanged
- Same containerized workloads (Docker/ECS task definitions convert easily)
- Job submission and monitoring patterns
- Automatic retry logic for failed jobs
- Queue-based job distribution
- No complex compute environment configuration
- Simplified job definitions (just containers and resources)
- Straightforward pricing without EC2/Fargate complexity
- Built-in global distribution without multi-region setup
- SaladCloud uses distributed consumer GPUs instead of EC2/Fargate
- Job processing through HTTP endpoints rather than AWS Batch agents
- Cloud storage patterns instead of EBS volumes
- Slower cold starts but dramatically lower costs
💡 New to SaladCloud? Check out our getting started guide for an introduction to deploying on SaladCloud, or explore our job queue documentation to understand how SaladCloud handles batch processing.
Why Migrate from AWS Batch to SaladCloud?
AWS Batch has served as a reliable batch processing solution, but its costs can quickly escalate, especially for GPU-intensive workloads. SaladCloud offers a compelling alternative that addresses common AWS Batch pain points: Cost Advantages:- 90% Lower Compute Costs: GPU + CPU + RAM combined cost a fraction of EC2 instances
- RTX 4090 setup: $0.30/hr at high priority vs P3.2xlarge: $3.06/hr
- Transparent Component Pricing:
- **GPU Containers:**GPU hourly rate
- CPU-only Containers: - $0.004/vCPU/hour + $0.001/GB RAM/hour
- Per-Second Billing: Hourly rates tracked per second for running containers
- No Hidden Costs: No charges for VPC endpoints, NAT gateways, or data transfer between AZs
- Simplified Management: No compute environment configuration or AMI management
- Automatic Global Distribution: Access to 11,000+ GPUs worldwide without multi-region complexity
- Built-in Resilience: Automatic failover and retry logic included
- No Infrastructure Overhead: Focus on your batch jobs, not EC2 fleet management
- Long-running batch jobs where startup time is less critical
- GPU-intensive workloads (ML training, rendering, simulations)
- Cost-sensitive batch processing
- Non-time-critical workloads (batch priority adds 40-50% savings on top of base 90% savings)
- Globally distributed data processing
- Development and testing environments
- Cold Start Times: Container startup takes minutes vs. seconds on pre-warmed EC2 instances
- Storage Model: No EBS volumes; use cloud storage APIs instead
- Service Integration: Fewer native AWS service integrations
- Job Complexity: Better suited for containerized workloads than complex multi-step pipelines
Product Comparison: AWS Batch vs. SaladCloud
Core Component Mapping
Feature Comparison
Migration Requirements
Technical Requirements
- Containerization: Jobs must run in Docker containers (you likely already have this with ECS task definitions)
- HTTP Interface: Jobs receive work via HTTP endpoints instead of AWS Batch job parameters
- Cloud Storage: Replace EBS/EFS with S3-compatible storage (Cloudflare R2 recommended for no egress fees)
- Queue Worker: Add the Salad Job Queue Worker binary to your container (handles job distribution)
Architectural Shifts
- From Agent-Based to Queue Worker: AWS Batch agents pull jobs; SaladCloud Queue Worker receives and forwards jobs locally
- From EC2 Fleets to Distributed Nodes: No direct control over compute instances
- From VPC Networking to No Networking: Job Queues eliminate networking configuration entirely
- From IAM Roles to API Keys: Different authentication model
Before You Begin: Key Concepts
Understanding the Job Processing Model
AWS Batch Model:Container Startup Behavior
AWS Batch: Containers start when jobs are assigned, run the job, then terminate. SaladCloud: Containers run continuously and process multiple jobs. You can use Job Queue Autoscaling to automatically scale to zero when you have no jobs left to process. Your application should:- Start an HTTP server to receive jobs
- Process jobs when received
- Return results via HTTP response
- Stay running to process more jobs
Storage Patterns
Since SaladCloud doesn’t support mounted volumes, you’ll need to adapt your storage strategy. Important: Use Egress-Free Storage We strongly recommend using egress-free storage providers like Cloudflare R2 instead of AWS S3. SaladCloud’s distributed nodes are not in datacenters, so egress fees from traditional cloud storage can add up quickly.Step-by-Step Migration Process
Step 1: Prepare Your SaladCloud Environment
Account Setup
- Create account at portal.salad.com
- Set up organization and project
- Generate API key for programmatic access
Install SaladCloud SDK (Optional)
Step 2: Convert AWS Batch Job Definitions
Transform ECS Task Definitions
AWS Batch Job Definition:Adapt Job Input/Output Patterns
AWS Batch Job Script:Step 3: Choose Your Job Queue Solution
These patterns can be implemented with any job queue, including those not on the Salad platform, but these two have
platform integration with SaladCloud.
Salad Job Queues vs. Kelpie
SaladCloud offers two job queue solutions, each optimized for different use cases: Salad Job Queues (Recommended for most AWS Batch migrations):- Best for jobs that complete in minutes to a few hours
- Built-in retry logic (3 retries, 4 total attempts)
- Simple HTTP-based job distribution
- Native autoscaling based on queue depth
- No additional setup required
- Designed for jobs running many hours or days (ML training, simulations)
- Built-in checkpointing and resumption capabilities
- Automatic cloud storage integration for progress saves
- Handles node interruptions gracefully
- Ideal for workloads that need to survive node failures
- Jobs that run longer than 30 minutes
- ML model training or fine-tuning
- Molecular dynamics simulations
- Any workload where losing progress would be costly
- Jobs that need to save and resume from checkpoints
Create a Salad Job Queue
Job Queues can only be created via the API (not available in the portal):Step 4: Deploy Container Group with Queue
Container Group Configuration
Step 5: Submit and Monitor Jobs
Job Submission
AWS Batch Pattern:Job Monitoring
Step 6: Implement Autoscaling
Queue-Based Autoscaling
Custom Metrics Autoscaling
Migration Patterns for Common AWS Batch Scenarios
Pattern 1: Simple Batch Processing
AWS Batch Approach:- Submit jobs with parameters
- Process in container
- Write results to S3
Pattern 2: Array Jobs
AWS Batch Array Jobs:Pattern 3: Long-Running Jobs with Kelpie
AWS Batch Long-Running Jobs:- Multi-hour ML training jobs
- Risk of spot instance termination
- Manual checkpointing required
- Automatic checkpoint upload to S3-compatible storage
- Resume from last checkpoint after interruption
- No data loss from node failures
- Built-in integration with SaladCloud
Pattern 4: GPU-Accelerated ML Training
AWS Batch with GPU:Pattern 5: Dependent Jobs
AWS Batch with Dependencies:Monitoring and Logging
Replace CloudWatch with External Logging
Configure Axiom Logging (Recommended):Cost Optimization Strategies
1. Use Batch Priority for Non-Time-Sensitive Workloads
SaladCloud offers four priority tiers, with each tier offering additional savings on top of our already competitive base pricing (which is typically 80-90% less than AWS). For batch processing that isn’t time-critical, the “batch” priority tier offers the deepest discounts:
Example pricing for comparable GPU workload (24 GB VRAM, 8 vCPU, 32 GB RAM):
AWS P4d.24xlarge (8x A100 40GB):
- Total: ~$32.77/hour
- Per GPU: ~$4.10/hour
- Includes: 96 vCPUs, 1152 GB RAM (massive overkill for most batch jobs)
- Total: ~$3.06/hour
- Per GPU: $3.06/hour
- Includes: 8 vCPUs, 61 GB RAM
- High Priority: $0.30/hour GPU + $0.032/hour (8 vCPU) + $0.032/hour (32 GB RAM) = $0.364/hour total (88% less than P3.2xlarge)
- Medium: $0.26 + $0.032 + $0.032 = $0.324/hour
- Low: $0.22 + $0.032 + $0.032 = $0.284/hour
- Batch: $0.18 + $0.032 + $0.032 = $0.244/hour (92% less than P3.2xlarge!)
2. Scale to Zero During Off-Hours
3. Optimize Container Size
4. Batch Small Jobs
Migration Checklist
Pre-Migration
- Inventory AWS Batch job definitions and compute environments
- Identify storage dependencies (EBS, EFS volumes)
- Document job dependencies and workflows
- Review IAM roles and permissions needed
- Estimate monthly job volumes and compute requirements
Container Preparation
- Convert job scripts to HTTP endpoints
- Add Salad Queue Worker to containers
- Update to use cloud storage instead of mounted volumes
- Test containers locally with IPv6 binding
- Push containers to accessible registry
SaladCloud Setup
- Create SaladCloud account and organization
- Generate API keys
- Create job queues
- Deploy container groups with queue connections
- Configure autoscaling policies
Testing
- Submit test jobs to queues
- Verify job processing and retries
- Test autoscaling behavior
- Validate logging and monitoring
- Compare performance with AWS Batch baseline
Production Migration
- Migrate batch jobs gradually (start with non-critical)
- Monitor costs and performance
- Adjust autoscaling based on actual usage
- Update job submission scripts/applications
- Decommission AWS Batch resources once stable
Common Challenges and Solutions
Challenge: No Step Functions Equivalent
Solution: Use external workflow orchestratorsChallenge: Job Scheduling
Solution: Implement cron-based job submissionChallenge: Large Data Transfer
Solution: Use pre-signed URLs and streamingPerformance Optimization
Minimize Cold Starts
Optimize Job Distribution
What You’ll Gain
Migrating from AWS Batch to SaladCloud provides:Immediate Benefits
- 90% Cost Reduction: Dramatically lower compute costs for batch processing
- Simplified Operations: No compute environment or AMI management
- Global Scale: Access to 11,000+ GPUs worldwide
- Transparent Pricing: Simple per-second billing without complex EC2 pricing tiers
Operational Improvements
- Automatic Failover: Built-in retry logic and node replacement
- Flexible Scaling: Scale to zero or thousands of instances
- No Infrastructure Management: Focus on your batch jobs, not EC2 fleets
- Unified Job Processing: Same patterns for CPU and GPU workloads
Trade-offs Accepted
- Longer cold start times (minutes vs. seconds)
- Different storage patterns (cloud APIs vs. mounted volumes)
- Fewer AWS service integrations
- HTTP-based job distribution instead of agent-based
Getting Help
SaladCloud Resources
- Documentation: docs.salad.com
- API Reference: SaladCloud API Documentation
- Portal: portal.salad.com
- Support: Contact cloud@salad.com
Migration Support
- Job Queue Setup Guide
- Queue Worker Configuration
- Autoscaling Documentation
- Container Troubleshooting
Related Resources
Job Processing Patterns
- Job Queue Overview
- Kelpie for Long-Running Jobs - Checkpointing and resumption
- SQS Integration - For existing SQS workflows
- Long-Running Tasks
- Build Redis Queue