I was reviewing our AWS bill last month and noticed something odd: Reserved Instances purchased in our main account weren’t being applied to usage in our development account, and promotional credits seemed to only benefit the management account. After digging into the Organizations billing settings, I realized three critical features weren’t configured correctly. In this post, I’ll walk through exactly what causes this and how to fix it.
The Problem
Your AWS Organizations is set up with consolidated billing, but costs behave unexpectedly:
- Reserved Instances (RIs) purchased in one account don’t discount usage in another account
- Savings Plans credits don’t share across linked accounts
- Promotional credits only apply to the management account
- Cost Explorer shows confusing allocation across accounts
- You’re paying full price for compute in some accounts despite RIs in others
Why Does This Happen?
- RI sharing is disabled or misconfigured: RI sharing is enabled by default in most cases, but can be disabled per-account or misconfigured during organization setup. Without it, RIs only benefit the purchasing account.
- Default credit application: AWS credits and promotional offers apply to the management account by default. To use them across the organization, you must configure sharing.
- Cost allocation tags not activated: Cost allocation tags are defined but not activated at the management account level. They won’t appear in Cost Explorer until activated.
- Cost Explorer shows old data: When accounts join AWS Organizations, it takes up to 24 hours for linked account costs to appear in Cost Explorer. You may be looking at incomplete data.
- Savings Plans don’t share appropriately: Savings Plans require compatible compute resources. If your SP purchasing account has no EC2/compute usage, the SP’s benefit won’t apply elsewhere—or won’t apply efficiently.
The Fix
Step 1: Enable RI Sharing Across Accounts
First, verify RI sharing is enabled for your organization. This setting is in the management account:
# Check the current organization details
aws organizations describe-organization \
--query 'Organization.{MasterAccount:MasterAccountId,Arn:Arn}'
In the AWS Management Console, go to Billing and Cost Management → Preferences:
- Under Consolidated billing, ensure Share Reserved Instance Discount is enabled
- Ensure Share Savings Plans Discount is enabled
You can also manage this per-linked-account in the console, but organization-level is simplest.
Step 2: Check RI Coverage Per Account
If RI sharing is enabled but RIs still aren’t discounting, check which accounts are covered:
# In the management account, view EC2 Reserved Instances
aws ec2 describe-reserved-instances \
--query 'ReservedInstances[*].{InstanceType:InstanceType,Scope:Scope,State:State}' \
--output table
Look for Scope: Regional (shared across accounts) vs. Scope: Availability Zone (single account only). Regional RIs share; AZ RIs don’t.
To modify an RI’s scope:
aws ec2 modify-reserved-instances \
--client-token $(uuidgen) \
--reserved-instances-ids ri-0123456789abcdef0 \
--target-configurations InstanceType=m5.large,Scope=Region
Step 3: Activate Cost Allocation Tags
Tags define cost centers. Activate them at the management account so they appear in Cost Explorer:
# List all cost allocation tags
aws ce list-cost-allocation-tags \
--status Inactive \
--query 'CostAllocationTags[*].{TagKey:TagKey,Status:Status}'
In the console, go to Billing and Cost Management → Cost Allocation Tags. Select tags and click Activate.
Or via CLI:
aws ce update-cost-allocation_tags_status \
--cost-allocation-tags-status TagKey=Environment,Status=Active \
TagKey=CostCenter,Status=Active
Step 4: View Consolidated Costs by Linked Account
Once activated, use Cost Explorer to see per-account breakdown:
# Query costs grouped by linked account (requires activated tags)
# This returns JSON, so formatting is key
aws ce get-cost-and_usage \
--time-period Start=2026-01-01,End=2026-01-31 \
--granularity MONTHLY \
--metrics UnblendedCost \
--group-by Type=DIMENSION,Key=LINKED_ACCOUNT \
--query 'ResultsByTime[*].[TimePeriod.Start,Groups[*].{Account:Keys[0],Cost:Metrics.UnblendedCost.Amount}]'
This shows which linked accounts are incurring costs and whether RIs are reducing them.
Step 5: Verify Savings Plans Sharing
For Savings Plans, ensure they’re set to REGION scope:
# List all Savings Plans
aws savingsplans describe-savings-plans \
--query 'SavingsPlans[*].{SavingsPlanId:SavingsPlanId,Scope:Scope,State:State}' \
--output table
Look for Scope: REGION (shared). Scope: ACCOUNT RIs are isolated.
How to Run This
- Log into the management account of your AWS Organization
- Run
aws organizations describe-organizationto confirm you’re in the right account - In the Billing Console, verify Share Reserved Instance Discount and Share Savings Plans Discount are enabled
- Check EC2 Reserved Instances and ensure scope is
Regional - Activate cost allocation tags in Cost Allocation Tags
- Run the Cost Explorer query to see per-account cost breakdown
- Verify Savings Plans are set to
REGIONscope
Is This Safe?
Completely safe. These are read-only queries and configuration changes in billing settings. No resources are created or deleted.
Key Takeaway
RI and Savings Plans sharing must be enabled at the organization level, and RI scope must be set to Regional for cross-account benefits. Always activate cost allocation tags and verify scope in Cost Explorer to ensure billing behaves as expected.