Alternatives

AWS alternative for small apps

AWS Alternative for Small Apps

Updated

Resilis can be an alternative for a small application and database whose requirements fit a managed app platform. Start with the AWS services you actually use: AWS is a broad platform, and moving an app does not replace every dependency or remove every AWS charge.

Identify what is on your AWS bill

Separate app costs from shared infrastructure. Record region, resource, usage, billing period, and pricing terms for each line item. Allocate shared costs consistently. An account-wide invoice or promotional month may not represent one app’s recurring cost.

Check EC2/ECS/Fargate, RDS, EBS, load balancers, NAT, transfer, S3, CloudWatch, and Route 53 where present. Include EKS, queues, identity, and other dependencies actually used. This checklist does not assume your app uses every service.

AWS cost drivers — official sources checked October 17, 2026
Bill componentWhat to inventoryPricing source
ComputeRegion, instance/task size, hours, commitments, and idle capacityEC2 on-demand pricing; use your actual compute product
PostgreSQLInstance, storage, backup, topology, and transferRDS PostgreSQL pricing
Load balancingRunning hours and usage dimensionsElastic Load Balancing pricing
NAT and networkingGateway hours, processed data, egress, and paths between servicesVPC pricing; reconcile separate transfer charges

Compare a small app and PostgreSQL

Illustrative USD estimates before tax, for 30 days / 720 hours. Resilis app and PostgreSQL each average 0.25 billable vCPU and 0.5 GB RAM, with 10 GB database disk. Assumptions are not measurements or minimum sizes. Resilis uses binary GB; provider unit conventions can differ. Excludes app disk, egress, objects, build overage, HA, and outside infrastructure.

The Resilis row is a model for an app and one PostgreSQL database, not an equivalent EC2/RDS configuration or an AWS quote. A larger memory requirement, replicated database, or retained AWS service changes the comparison. Compare the same time period and include work required to operate each option.

Hobby: $10/month runtime credit, 200 build minutes. Pro: $50/month runtime credit, 500 build minutes. Pay the plan minimum plus eligible usage beyond credit; do not count usage twice. CPU: $0.004104/vCPU-hour; RAM: $0.00972/GB-hour; disk: $0.01/GB-day; database fee: $5/month Hobby or $10/month Pro. Build overage: $0.02/minute, separate from credit. Egress/object storage consume runtime credit. Raising database RAM to 1 GiB gives $19.98 Hobby or $24.98 Pro usage; Pro still bills $50.00.

Resilis billing source and current allowances — checked October 17, 2026.

Monthly estimates — prices checked October 17, 2026
Service / planCapacity and boundaryMonthly cost / official source
Resilis HobbyApp + PostgreSQL; 0.5 GB RAM each; 10 GB DB disk$16.48 usage and estimated bill; $10 credit floor
Resilis ProSame assumed resources; higher database service fee$21.48 usage; $50.00 estimated bill
Your AWS applicationActual region, capacity, topology, discounts, and retained servicesCalculate from the source-linked inventory above; no generic AWS total

Check the services Resilis does not replace

Map each dependency to a destination or an explicit decision to retain it. A managed PostgreSQL database is not a substitute for every RDS engine, topology, extension, or integration. Managed app deployment does not reproduce an AWS IAM policy graph, queue, event bus, or private-network architecture automatically. Test the required behavior before changing production.

Existing Amazon S3 buckets can be connected, as can external Cloudflare R2 or Backblaze B2 storage. Connection registers accessible storage; it does not provision a new bucket or migrate objects. If you retain S3, include its storage, operations, and transfer costs. Resilis managed object storage is a separate choice at $0.035/GiB-month, prorated hourly; it consumes runtime credit, as does egress at $0.10/GB.

Treat an app-to-database path across providers as an architecture decision. Verify connectivity, latency, access restrictions, and transfer charges. Removing a NAT gateway from a diagram is not evidence its cost disappears: confirm no remaining workloads require it before scheduling decommissioning.

Operating-model decisions
NeedAWS inventoryResilis scope
App hostingEC2, ECS, or other runtime actually usedRailpack/Dockerfile app deployment through GitHub or agent workspace
DataDatabase engine, topology, extensions, and recovery requirementsManaged PostgreSQL/MySQL; confirm configuration and restore needs
Object storageExisting bucket and access policyManaged storage tariff or external bucket connection
Infrastructure ownershipCurrent network and compute responsibilitiesManaged target or connected VPS/Kubernetes with retained infrastructure duties

Plan a migration from AWS

Rehearse with a disposable target and representative data. This checklist is not a completed app test. Assign a cutover owner and acceptance criteria.

  1. Inventory.

    Map each runtime, RDS dependency, IAM-integrated service, bucket, job, callback, and private-network dependency. Mark what stays on AWS, its owner, and its continuing bill. Identify database features and extensions before choosing the destination.

  2. Build and configure.

    Build the app from the selected repository with Railpack or a Dockerfile. Replace provider-specific configuration only after the replacement behavior has been tested. Set secrets through sensitive configuration and bind DATABASE_URL. Never commit connection strings, log credentials, or paste them into agent conversations.

  3. Rehearse data transfer.

    Check PostgreSQL versions, extensions, roles, encoding, and clients. Use pg_dump --format=custom --no-owner and pg_restore --no-owner --no-acl --exit-on-error into a new, empty test database. Resolve grants/ownership separately. Use protected PostgreSQL service and password files. Apply chmod 600 to the password file. Never use command-line passwords. Encrypt dumps and restrict access. Remove dumps under your retention policy after verification.

  4. Verify behavior.

    Compare row counts and key records. Test authentication, writes, uploads, jobs, callbacks, and connectivity. Rebuild and confirm persistence; inspect sanitized logs.

  5. Freeze writes and cut over.

    Pause all writers on AWS, including workers, jobs, and integrations. Repeat the final dump/restore and verify data before enabling destination writes. Prepare the managed-app domain and TLS. Lower the DNS TTL ahead of time where appropriate. Change DNS after serving checks. Keep one authoritative writer despite cached DNS.

  6. Bound rollback.

    Retain the source and a verified backup until acceptance. DNS can route back, but after destination writes begin, reconcile those writes before switching databases. App rollback does not restore data or reverse schema migrations. Agree on the data-loss boundary and recovery procedure before cutover; retire old resources only after approval.

Choose the compute and recovery boundary

Resilis offers managed compute or connected VPS/Kubernetes, with managed PostgreSQL/MySQL. External S3, R2, and B2 connections register existing buckets. They do not provision or migrate buckets. MCP setup needs no paid plan; authentication and operation entitlements apply. Connected infrastructure retains its bill and duties. Custom domains are unavailable on connected compute and S3-backed static sites.

Verify entitlements, backups, restore points, and a restore rehearsal. Lower estimates do not establish equivalent availability, support, recovery time, or capacity.

When AWS is the better fit

Stay when your application depends on AWS services, network controls, compliance requirements, or operational features that the proposed destination does not satisfy. Existing expertise, committed-use discounts, and shared infrastructure can also change the economics. Include migration engineering, duplicate operation during testing, and the risk of losing a required integration.

To reduce an AWS bill, first inspect unused resources, sizing, and retained dependencies within your current architecture. Migration is one option, not the only one. Request a workload estimate using a sanitized resource list and a complete comparable billing period; do not send account secrets or private application data.

Frequently asked questions

Will moving an app remove the entire AWS bill?

No. Retained databases, buckets, domains, monitoring, shared networks, and other services can keep generating charges. Decommission only after checking dependencies, data retention, and approval requirements.

Why is there no single AWS monthly price?

Region, resource selection, topology, usage, discounts, and shared infrastructure vary. A made-up small-app total would hide these choices. Use your actual AWS inventory and the linked official pricing pages.

Can I keep S3 while moving compute?

External S3 connections are supported for accessible existing buckets. Verify permissions and application behavior, and retain the S3 bill in the comparison. Connecting a bucket does not migrate its contents.

Evaluate your own workload