Move from AWS ECS, Lambda, or EC2 to RaidFrame — same power, zero ops.
AWS gives you infinite flexibility. It also gives you infinite complexity. Moving to RaidFrame means keeping the production-grade infrastructure while eliminating the IAM policies, VPC configurations, CloudFormation templates, and $500/mo DevOps engineer time.
| AWS Service | RaidFrame Equivalent |
|---|---|
| ECS / EKS / Fargate | rf deploy (containers) |
| Lambda | Web/worker services or cron jobs |
| RDS (PostgreSQL) | rf add postgres |
| ElastiCache (Redis) | rf add redis |
| S3 | rf add storage (S3-compatible) |
| SQS / SNS | rf add queue |
| CloudWatch | Built-in (rf logs, rf metrics) |
| CloudFront | Built-in CDN |
| Route 53 | rf domains add |
| ACM (SSL) | Automatic SSL |
| ALB / NLB | Built-in load balancer |
| IAM | rf teams + roles |
| CodePipeline / CodeBuild | Built-in CI/CD |
| Secrets Manager | rf secrets set |
| OpenSearch | rf add search |
| SES | rf add email |
curl -fsSL https://get.raidframe.com | sh
rf auth login
If you're running ECS, your task definition maps directly:
// AWS ECS task definition (simplified)
{
"containerDefinitions": [{
"name": "api",
"image": "123456.dkr.ecr.us-east-1.amazonaws.com/api:latest",
"cpu": 512,
"memory": 1024,
"portMappings": [{"containerPort": 8080}],
"environment": [
{"name": "DATABASE_URL", "value": "postgresql://..."},
{"name": "REDIS_URL", "value": "redis://..."}
]
}]
}
Becomes:
# raidframe.yaml
services:
api:
type: web
build:
dockerfile: Dockerfile
port: 8080
resources:
cpu: 1
memory: 1GB
scaling:
min: 2
max: 10
# Export from RDS
pg_dump -h your-rds-endpoint.amazonaws.com -U postgres -d mydb > backup.sql
# Import to RaidFrame
rf add postgres --plan pro
rf db import main backup.sql
rf add redis --plan standard
# Redis data is ephemeral/cache — repopulate from your app on first requests
rf add storage
# Sync from S3
aws s3 sync s3://my-bucket ./local-copy/
rf storage sync ./local-copy/ s3://my-app-uploads/
| Lambda Pattern | RaidFrame |
|---|---|
| API Gateway + Lambda | Web service (type: web) |
| Scheduled Lambda | Cron job (type: cron) |
| SQS-triggered Lambda | Worker with queue (type: worker) |
| Event-driven Lambda | Worker with pub/sub |
# Lambda cron → RaidFrame cron
services:
nightly-cleanup:
type: cron
schedule: "0 3 * * *"
command: node cleanup.js
timeout: 300s
# Export from AWS Systems Manager Parameter Store
aws ssm get-parameters-by-path --path /myapp/prod --with-decryption \
--query "Parameters[*].[Name,Value]" --output text | \
awk '{split($1,a,"/"); printf "%s=%s\n", a[length(a)], $2}' > .env
# Import to RaidFrame
rf env push
rf deploy
Typical AWS bill for a small SaaS vs RaidFrame:
| Component | AWS Monthly Cost | RaidFrame |
|---|---|---|
| ECS Fargate (2 tasks) | $65 | |
| RDS db.t3.medium | $65 | |
| ElastiCache t3.small | $25 | |
| ALB | $22 | |
| NAT Gateway | $35 | |
| CloudWatch | $15 | |
| S3 (50 GB) | $3 | |
| Route 53 | $2 | |
| ACM | $0 | |
| Total | $232/mo | $57/mo |
And that's before you count the 20+ hours/month managing it all.
All of this is handled automatically on RaidFrame.
AWS apps often rely on VPC private networking. On RaidFrame, all services in a project share a private network automatically. Replace AWS VPC endpoints with service.internal hostnames.
If your services authenticate with other AWS services via IAM roles, you'll need to switch to API keys or credentials stored in rf secrets set.
rf regions add us-west-1
rf regions add eu-west-1
Simpler than managing multiple ECS clusters, RDS read replicas, and Route 53 failover policies across regions.