ConceptsService Types

Supported Service Types on AWS

Flightcontrol provides a better developer experience for you to deploy and manage your services on Amazon Web Services (AWS).

We deploy several different types of AWS services for you:

If you want to use AWS Services that are not supported - you can configure these in your own AWS account. For instance, you may have an existing ElasticSearch cluster that you want to use with your Flightcontrol services. You could set the URL to the ElasticSearch cluster in your flightcontrol.json config file or in the Flightcontrol dashboard, and everything will work as expected, running in the same AWS acccount.

The type you see next to each service is the corresponding Flightcontrol type, relevant for setting up the flightcontrol.json config file. For more about configuring Flightcontrol see the Using Code or Using the Dashboard pages.

Web Server

type: web

The most common type that you’ll use for most apps and APIs including Next.js, Rails, FastAPI, Express, etc.

Architecture

  • Runs as a container via AWS ECS using Fargate or EC2
  • Load balancer with public IP address
  • CloudFront CDN in front of the load balancer

Features

  • Custom domains
  • Automatic HTTPS certificates
  • Autoscaling, zero downtime deploys, self-healing

For production use, we recommend running a minimum of two instances for high availability. We also recommend using an instance size with at least 1 vCPU and 2+ GB of memory. Otherwise, you may see performance issues. This does depend on your application and workload, so you may need to experiment with different instance sizes.

Private Web Server

type: web-private

For internal services that cannot be accessed from the internet.

Architecture

  • Runs as a container via AWS ECS using Fargate or EC2
  • Load balancer with private IP address
  • Cannot be accessed from outside the environment’s VPC

Features

  • Automatic HTTPS certificates
  • Autoscaling, zero downtime deploys, self-healing

Background Worker Server

type: worker

For background jobs using frameworks like Sidekiq, BullJS, or Inngest

Architecture

  • Runs as a container via AWS ECS using Fargate or EC2
  • Does not expose an HTTP endpoint

Features

  • Autoscaling, zero downtime deploys, self-healing

Job Scheduler (Cron)

type: scheduler

For running jobs in isolated containers. Can run via a cron schedule, started via API, or started via the Flightcontrol dashboard

Architecture

  • Runs as a temporary container via AWS ECS using Fargate or EC2
  • Each job execution runs as an isolated container. It shuts down once the start command exits.
  • Does not expose an HTTP endpoint

Features

  • Configure schedules in cron-like format or to run on demand (manually)
  • Unlimited concurrency
  • Unlimited duration
  • Cheaper, more performant replacement for Lambda jobs

Lambda Function

type: lambda-function

Architecture

  • Single Lambda with function url support
  • No API gateway

Features

  • Can expose function URL, to be triggered by an external party
  • Supports both zip and container lambda functions
  • Supports all native Lambda runtimes

Static Websites

type: static

For serving a static frontend website like a Vite React app or Redwood.js frontend

Architecture

  • S3 for static files
  • CloudFront CDN to serve those static files

Features

  • Blazing fast load times globally
  • Supports both Single Page Apps and Multi Page Apps

Database

type: rds

Architecture

  • RDS instance
  • Single or dual availability zones

Features

  • Supports Postgres, Mysql, and MariaDB
  • Automatically adds the DATABASE_URL connection string to other services
  • Daily backups enabled by default with 35 day backup retention
  • Encryption at rest
  • Automatically upgrade minor versions

Redis

type: elasticache

Architecture

  • ElastiCache Redis cluster
  • 2 availability zones for High Availability
  • Private, cannot be accessed outside the environment’s VPC

Features

  • Encryption at rest
  • Automatically upgrade minor versions
  • Automatically adds the REDIS_URL connection string to other services
  • Can customize eviction policy