Introduction
Getting started with Judoscale on Amazon ECS (AWS)
Judoscale brings fast, reliable autoscaling to your Amazon ECS services. Once connected, Judoscale continuously monitors your workloads and automatically adjusts your ECS tasks to keep performance smooth without wasting money on over-provisioning.
There are two ways to set up the integration, and you can pick whichever fits your workflow best:
- CloudFormation – The fastest way to get started. Launch our ready-to-go template in your AWS account, no extra tooling required.
- Terraform – Perfect if your team manages infrastructure as code. Just add our configuration and
terraform apply.
Prerequisites
Before you dive in, make sure you’ve got:
- An AWS account with permissions to create ECS services and IAM roles.
- An existing ECS cluster.
- A Judoscale account (sign up for free).
Connect your AWS account to Judoscale
Choose your path to get started:
Migrating ECS clusters
You can link multiple ECS clusters to the same Judoscale team as long as they’re in the same AWS account. If you’re moving services between clusters during a VPC or infrastructure migration, link the new cluster to the existing team and set up autoscaling for the new services before your cutover.
If the migration means you’ll temporarily run both the old and new clusters at the same time, you may exceed your normal task limit. Contact support with the Judoscale team that’s impacted and the timeframe for your migration. We’ll raise your limits so you can proceed with the migration.
If the new cluster is in a different AWS account, create a separate Judoscale team for that account.
Complete the setup
You can scale on a schedule without installing anything into your application, but metrics-based autoscaling will require one of our Judoscale packages. The app will walk you through the installation, and you can find more information for your stack in the links below:
- 👉 Rails
- 👉 Django
- 👉 Flask
- 👉 FastAPI
- 👉 NodeJS (Express)
- 👉 Fastify
- 👉 Spring Boot
👀 Note
Judoscale currently supports metrics-based autoscaling for Ruby, Python, Node, and Java. Want to use Judoscale with another stack? Let us know!
AWS load balancers do not expose request queue time like most other PaaS do, so for metrics-based autoscaling on web services you’ll need to run an NGINX sidecar.
✅ Tip
If you can’t run the sidecar yet, switch your web autoscaling metric to utilization so you can still see data in the UI. Queue time is more consistent, but utilization is a better fallback than CPU or memory.
Autoscaling!
Once you have metrics flowing into Judoscale, you’re ready to autoscale! The default configuration is usually a great place to start, and you can turn on autoscaling with “one click” 😁.
👀 Note
Unlike Heroku, Amazon ECS doesn’t expose real-time webhooks when you change a service’s task count. Judoscale fetches the current scale on a regular cadence (and every time we trigger an autoscale event or you load the dashboard), so expect a short delay before manual changes in AWS are reflected in the app.
For a full tour of the available charts and configuration options, use the links below: