Oct 27, 20267 min read

The Best AWS Deployment Tools for Side Projects in 2026

Encore, Lightsail, ECS Express Mode, Amplify Hosting, Kamal on EC2 and SST compared by monthly floor cost, upkeep and how far each one grows with the project.

A side project rarely dies from traffic. It dies from the bill that keeps arriving while nobody uses it, and from the evening spent patching a server instead of building the feature. Picking an AWS deployment tool for one is mostly a question of what it costs to keep alive for a year with no users, and how much upkeep it asks for in that time.

The second question is what happens if the project works. Some of these tools stay small forever, and some grow into a production setup without a move. The right one depends on which outcome you are planning for.

What a side project on AWS needs:

  • A monthly floor you know before the first deploy.
  • Little or no server upkeep.
  • A database and scheduled jobs without a separate project to set them up.
  • A path to a bigger setup if users show up.

AWS deployment tools for side projects at a glance

ToolMonthly floorUpkeepDatabase and jobsGrowth path
EncoreAWS resources in your accountLowPostgres, Pub/Sub, cron, buckets in codeECS or EKS in your account
LightsailFixed bundles from $5, or $3.50 IPv6-onlyOS patches on instancesManaged databases from $15Move to EC2 or ECS later
ECS Express ModeFargate tasks plus a shared load balancerLowSeparateFull ECS
Amplify HostingFree allowance, then per build minute and GBLowAmplify backend, separateFrontend focused
Kamal on EC2One EC2 instanceOS and Docker upkeepAccessories you runMore hosts behind a load balancer
SSTUsage of Lambda and other servicesMediumComponentsAWS resources you own
Compare what each tool handles for a side project
CapabilityEncoreLightsailECS Express ModeAmplify HostingKamal on EC2SST
Servers to patchNoneInstancesNoneNoneYesNone
DatabaseDeclared in codeAdd-onSeparateSeparateContainer you runComponent
Scheduled jobsDeclared in codeYou set upSeparateNoYour cronComponent
Local developmentencore run with local infrastructureYour ownYour ownFramework dev serverYour ownLive mode against AWS
Agent workflowAgent rules and MCP serversConsole or CLIECS MCP serverConsole or CLIdeploy.yml editsConfig edits

Encore: a side project that can grow into a product without a move

Encore

Encore combines an open source infrastructure SDK for TypeScript and Go with a platform that deploys into your own AWS account. The database, the queue and the scheduled job are declared in the code, run locally with encore run, and are provisioned in the account on deploy. There are no servers to patch and no infrastructure project next to the app.

Application code passes through Encore and infrastructure guardrails to resources provisioned in your own AWS or GCP account.
Encore provisions the infrastructure your application needs in your own AWS or GCP account.

The nightly report every side project ends up with is a few lines:

import { api } from "encore.dev/api"; import { CronJob } from "encore.dev/cron"; import log from "encore.dev/log"; export const dailyReport = api({ expose: false }, async (): Promise<void> => { log.info("building the daily report"); }); // Runs on schedule in deployed environments, not locally. const _ = new CronJob("daily-report", { title: "Build the daily report", schedule: "0 6 * * *", endpoint: dailyReport, });

For a side project, the upkeep is the point. The cron docs cover schedules, and during development you call dailyReport directly since cron jobs do not run locally. Adding a database later is another declaration in the same code. You connect your AWS account once, Encore provisions each service on ECS with an IAM role for the service, and the bill comes from AWS for the resources in your account. If the project grows, environment configuration changes instance sizes and the same code keeps deploying. Preview environments give each pull request its own copy.

Key features

  • Postgres, Pub/Sub, cron jobs and buckets declared in code.
  • Local infrastructure with encore run.
  • Deploys to ECS or EKS in your AWS account, or to GCP.
  • Built-in tracing and logs.
~/orders — claude
Claude Code
Claude Code v2.1.180Opus 5.5~/orders
An agent adds receipt storage to an orders service and tests it locally with encore run. The same bucket declaration is used in preview environments and production.

Good to know

Encore apps use its TypeScript or Go SDK. The resources it provisions are billed by AWS at normal rates, so set an AWS Budgets alert before the first deploy and check what the database and networking cost while idle.

Get started
brew install encoredev/tap/encore &&
encore app create
Copy

Run in your terminal to get started locally.

Lightsail: the lowest fixed price, with a server to look after

Lightsail

Lightsail sells fixed monthly bundles. Linux instances start at $5 a month with a public IPv4 address, or $3.50 IPv6-only, the nano container service is $7 with 500 GB of transfer, managed databases start at $15 and a load balancer is $18. AWS's own example of a small app with an instance, database and load balancer totals $40 a month. Nothing on the bill surprises you.

The price includes a server you maintain. Instances need OS updates and backups, and moving to ECS or RDS later is a migration rather than a setting change.

ECS Express Mode: one container to a URL, billed per second

ECS Express Mode

ECS Express Mode takes a container image, a task execution role and an infrastructure role and gives back a running Fargate service with an HTTPS URL. It works from the console, CLI, SDKs, CloudFormation, Terraform and the ECS MCP server. Express Mode has no extra charge, Fargate bills per second with a one-minute minimum, and up to 25 services share one load balancer.

The database, queues and scheduled jobs are separate AWS resources you create yourself, which is fine for a single API and more work once the project needs storage.

Amplify Hosting: free for a frontend, separate for the backend

Amplify Hosting

Amplify Hosting builds and serves static and server-rendered frontends from Git. The free allowance covers 1,000 build minutes, 5 GB stored, 15 GB served, 500,000 SSR requests and 100 GB-hours of compute a month, and after that a build minute costs $0.01 and a GB served $0.15. A mostly frontend side project can stay at zero. Backend resources come through Amplify's own backend tooling, separate from hosting.

Kamal on EC2: one instance you fully control

Kamal

Kamal deploys Docker containers to servers over SSH. gem install kamal, kamal init and an edited config/deploy.yml set it up, and kamal setup installs Docker on the host and starts kamal-proxy on ports 80 and 443, which checks GET /up before switching traffic. The floor is the EC2 instance. You patch the OS, run the database as an accessory and back it up, and more than one server needs a load balancer in front.

SST: near zero at low traffic, with Lambda's limits

SST

SST deploys serverless and container apps to AWS from a TypeScript config, and a mostly Lambda setup can cost close to nothing at low traffic. Components cover functions, sites, queues and cron. Lambda functions have cold starts and a 15-minute time limit, and live mode needs AWS credentials on your laptop.

Watch the idle costs

Set an AWS Budgets alert before the first deploy and check free tier usage in the billing console. Since February 2024, AWS charges for every public IPv4 address by the hour, which adds up on idle instances and load balancers. The FinOps Foundation describes the same habit at team scale: make cost visible early and review it often.

How to choose

  • Encore when you want a database and scheduled jobs from code, no servers to patch, and a project that can grow into production in your own AWS account.
  • Lightsail for a fixed, predictable bill on a small server.
  • ECS Express Mode for one container behind HTTPS, billed per second.
  • Amplify Hosting for frontends that fit the free allowance.
  • Kamal on EC2 for full control of one instance.
  • SST for Lambda-based apps that cost little at low traffic.

Frequently asked questions

What is the cheapest way to deploy a side project on AWS?

Lightsail has fixed monthly bundles, with container services starting at 7 dollars a month, and Amplify Hosting has a free allowance for builds and SSR requests. Setups with a load balancer and a NAT gateway cost more each month, even with little traffic.

Is AWS overkill for a side project?

Not if you pick a tool that matches the size of the project. Lightsail or Amplify keep costs and setup small, and tools such as Encore or ECS Express Mode suit side projects you expect to grow into a production service.

How do I add a scheduled job to a side project on AWS with Encore?

Declare a CronJob from encore.dev/cron that points at an API endpoint. Encore runs it on the schedule in deployed environments. Cron jobs do not run locally, so call the endpoint directly while developing.

Deploy to your cloud on AWS and Google Cloud
without managing infrastructure

Encore lets developers and agents define application infrastructure directly in code, then automatically provisions it from local development to production in your AWS or GCP account.

~/orders — claude
Claude Code
Claude Code v2.1.180Opus 5.5~/orders