Service Tags
Service tags enable AWS resource tagging on your ECS tasks, allowing you to break down AWS billing data by Rack, App, and Service. When enabled, Convox propagates tags from ECS Services to all launched tasks, making them available in AWS Cost Explorer and billing reports.
Prerequisites
Before enabling Service tags:
-
Opt in to the new ARN and resource ID format in your AWS account. Amazon requires this for ECS tag propagation. See the AWS blog post on the new ARN format for instructions.
-
Activate user-defined cost allocation tags in the AWS Billing console. AWS does not include user-defined tags in billing reports until you explicitly activate them. See AWS documentation on activating tags.
Enabling Task Tags
Enable tag propagation on a per-App basis using the TaskTags App parameter:
$ convox apps params set TaskTags=Yes -a myapp
You can also set this in your convox.yml manifest:
params:
TaskTags: "Yes"
What Gets Tagged
When TaskTags is enabled, Convox configures two ECS properties on each Service:
| Property | Value | Effect |
|---|---|---|
EnableECSManagedTags |
true |
AWS applies its own managed tags (cluster, service name) to tasks |
PropagateTags |
SERVICE |
Tags on the ECS Service resource propagate to all tasks it launches |
This means every ECS task inherits the tags from its parent ECS Service, which include the App name, Service name, and other CloudFormation-generated tags.
Viewing Tags in AWS
After enabling TaskTags and deploying, tags appear on ECS tasks within a few minutes. You can verify them in the AWS Console:
- Navigate to ECS > Clusters > your cluster > Tasks
- Select a running task
- View the Tags tab
Using Tags for Cost Allocation
Once tags are propagating and activated in AWS Billing:
- Navigate to AWS Cost Explorer
- Group costs by the relevant tag key (e.g.,
aws:ecs:serviceName,App) - Filter and break down costs by Rack, App, or Service
This allows you to attribute infrastructure costs to specific applications and services for chargeback or budgeting purposes.
Limitations
- Task tags apply to Generation 2 Apps only. Generation 1 Apps do not support this feature.
- Timers do not support tag propagation. Tasks launched by timers will not inherit Service tags.
- Tag propagation applies to ECS tasks only. Other AWS resources (load balancers, S3 buckets) are tagged separately by CloudFormation.