Skip to main content
Your production application runs on AWS ECS Fargate. Resources are defined in infra/prd_resources.py.

Prerequisites

Before deploying, complete these steps:

Deploy to AWS

Once prerequisites are complete:
This creates:
  • Docker image pushed to ECR
  • RDS PostgreSQL instance
  • ECS Cluster, Service, and Task Definition
  • Application Load Balancer with Target Group
  • AWS Secrets Manager entries
RDS takes about 5 minutes to provision. You can monitor progress in the AWS Console.

Verify Deployment

After deployment completes, verify everything is working:

Check the health endpoint

Get your load balancer DNS from the AWS Console (EC2 → Load Balancers), then:
Expected response:

Check CloudWatch logs

Look for Application startup complete to confirm the app started.

Check ECS service status

ECR Authentication

If you haven’t set up ECR yet, see Deploy - AWS Setup.
ECR tokens expire after 12 hours. Re-authenticate before pushing:
Or use the helper script:

Update Deployments

After making changes to your code or configuration:

Rebuild and push image

Update task definition

Required when you change: image, CPU, memory, or environment variables.

Update service

Triggers a new deployment with the latest task definition:
Shortcut: If you only rebuilt the image (no config changes), you can skip the task definition update and just patch the service.

Customize Your Deployment

Edit infra/prd_resources.py to customize: Example customization:
prd_resources.py
After changes, update the task definition and service:

Stop Deployment

To remove all AWS resources:
This deletes everything including the database. Back up your data first.