> For the complete documentation index, see [llms.txt](https://docs.north.cloud/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.north.cloud/docs/features/rightsize/ecs.md).

# ECS

Learn how Rightsize sizes ECS services on Fargate.

On AWS accounts, Rightsize sizes ECS services that run on Fargate. It recommends the CPU and memory configuration that a service's tasks need, based on how the tasks use CPU and memory.

## What Rightsize Covers

Rightsize sizes Fargate tasks on Linux and x86. It sizes each ECS service as a whole, using the cluster and service names in the tasks' billing tags. A task without a service tag is not sized.

ECS tasks that run on EC2 instances are billed as EC2, so Rightsize sizes those instances on the EC2 tab. See [EC2](/docs/features/rightsize/ec2.md).

## How Rightsize Sizes a Service

Rightsize reads the ECS CPU utilization and memory utilization metrics over the lookback window. It measures both at the **CPU percentile** setting, which is P99 by default. It then recommends the cheapest valid Fargate CPU and memory configuration where both measured values fit under the sizing target:

```
base target = 100% − headroom
target      = base target × max(volatility floor, 1 − volatility sensitivity × CoV)
```

CoV is the coefficient of variation of the usage: its standard deviation divided by its mean. A spiky workload has a higher CoV. A higher CoV lowers the target, so the recommended configuration has more spare capacity.

You can change the CPU percentile, the headroom, and the volatility values in [ECS Settings](/docs/features/rightsize/ecs.md#ecs-settings), below.

Rightsize recommends a larger configuration when daily average usage exceeds the base target on at least 25% of observed days. This must happen on at least two days. A smaller configuration is not recommended when it saves less than **Min savings percent**, which is 5% by default. Rightsize does not recommend a stop for an ECS service.

## Using the ECS Tab

The summary metrics on the ECS tab are Available Savings, Idle, Over provisioned, Under provisioned, Tagged, and Untagged. The Idle tile always shows 0, because Rightsize does not mark an ECS service as idle.

Click a row's **AI Suggestion** button to open the service's panel:

* **Current State** - the service name, and its current CPU and memory configuration.
* **Noros Recommendation** - the recommended CPU and memory configuration.
* **Monthly Savings** - the estimated saving.
* **Findings** - the reasons behind the recommendation, as chips.

Below the panel sections, a chart shows the service's CPU and memory history.

## ECS Settings

In **Settings**, open **Per-service overrides** and select **ECS**. An empty field uses the account default.

* **CPU percentile** - the usage percentile Rightsize sizes against. P99 excludes the highest 1 percent of readings. The Balanced default is P99.
* **CPU headroom** - spare CPU kept above CPU usage at the CPU percentile. The Balanced default is 20%.
* **Memory headroom** - spare memory kept above memory usage at the CPU percentile. The Balanced default is 20%.
* **Volatility sensitivity** - how much variable usage lowers the sizing target. 0 does not lower it. 1 lowers it the most. The default is 0.5.
* **Volatility floor** - the lowest value the target can be lowered to. 0.5 keeps at least half of the base target. The default is 0.5.
* **Min savings percent** - Rightsize does not recommend a smaller configuration that saves less than this share of what the service costs today. The Balanced default is 5%.

## ECS Finding Reasons

Rightsize lists the reasons behind each finding. Check these before you act on a recommendation, to understand what it is based on.

* **CPU Overprovisioned / Underprovisioned** - the finding is based on CPU usage.
* **Memory Overprovisioned / Underprovisioned** - the finding is based on memory usage.
* **Volatile usage** - CPU usage varies, so Rightsize lowered the sizing target.
* **Untagged task — tag the service for utilization** - the task has no service tag, so Rightsize cannot attribute its usage to a service and does not size it.

When a task has no service tag, the **AI Suggestion** column shows "Tag this task's service to get its utilization."


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.north.cloud/docs/features/rightsize/ecs.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
