Cost Management and Support

This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production.

See the section bibliography for the reference material consulted while preparing these pages.

Commands and behaviour on this page are current for AWS CLI v2 (2.37 line) and the AWS Cost Management, Billing and Support user guides as checked on 2026-10-01. The budgets and ce command groups are generally available; the Pricing Calculator command group (bcm-pricing-calculator) is newer, so check aws bcm-pricing-calculator help for the flags your CLI version supports. Examples use the placeholder account ID 111122223333, an email address on example.com, and us-east-1. Billing and Cost Management is a global console, but the ce API endpoint is served from us-east-1, so run those commands with --region us-east-1 if your default Region is elsewhere. Every price-related claim on this page links to the official, dated source instead of quoting a number, because rates and plan fees change often.

Every other page in this section describes a service; this one describes what the Bookshelf stack costs to run and how to keep that under control. It covers the pricing dimensions behind an AWS bill, the ways to pay less for steady usage, the tools that show and cap spend (Cost Explorer, Budgets, Cost Anomaly Detection, cost allocation tags), how to estimate cost before deploying, a qualitative table of the hidden cost drivers, and the current AWS Support plans after the 2026 restructuring. The first budget alert is already on Getting Started with AWS; consolidated billing and tag policies are on Accounts and Organizations. For the Azure counterpart see Cost Management.

What drives an AWS bill

AWS has no single price list. Each service bills along its own meters, and the same few dimensions keep reappearing:

Dimension Where it shows up

Compute time

Instance-hours, Fargate vCPU and GB per second, Lambda requests and GB-seconds — see Amazon EC2 and Auto Scaling, ECS and Fargate, AWS Lambda.

Storage capacity and class

GB-months in S3, EBS, EFS and snapshots, multiplied by the storage class — see S3 Object Storage and Block and File Storage on AWS.

Requests and operations

S3 requests, API Gateway calls, SQS and SNS messages, DynamoDB read and write units.

Provisioned capacity

Database instance-hours, provisioned IOPS and throughput, provisioned concurrency, Aurora capacity units — see Amazon RDS and Amazon Aurora.

Data transfer

Outbound internet traffic, cross-Region and cross-Availability-Zone traffic, and NAT or load balancer data processing. Inbound traffic from the internet is generally free.

Always-on managed components

NAT gateways, load balancers, interface VPC endpoints, Client VPN endpoints, EKS control planes and public IPv4 addresses bill hourly whether or not traffic flows.

Observability and security add-ons

CloudWatch log ingestion and retention, custom metrics, GuardDuty, Config rules and KMS requests.

Lifecycle surcharges

Extended Support for old engine and Kubernetes versions, and Support plan fees.

The pricing model of the whole platform is pay as you go with no minimum, plus optional commitments that lower the rate. Almost every page in this section has its own pricing paragraph; the official entry points are the AWS pricing hub and each service’s pricing page.

Pricing models for compute

The same instance can be bought several ways; the choice only changes the price, not the behaviour.

On-Demand

Pay per second or hour with no commitment. The default, the most expensive per hour, and the right choice for new, short-lived or unpredictable workloads.

Savings Plans

A commitment to a steady hourly spend for one or three years, with No upfront, Partial upfront or All upfront payment. The discount applies automatically to eligible usage, and usage above the commitment bills On-Demand. Four types exist:

Type What it covers

Compute Savings Plans

The most flexible: EC2 regardless of family, size, OS, tenancy or Region, plus Fargate and Lambda. Moving a workload from EC2 to ECS on Fargate keeps the discount.

EC2 Instance Savings Plans

A commitment to one instance family in one Region; flexible on size, OS and tenancy within it. A deeper discount than Compute Savings Plans in exchange for less flexibility.

Database Savings Plans

Introduced in 2025-12 for managed databases: Aurora, RDS, DynamoDB, ElastiCache, DocumentDB, Neptune, Keyspaces, Timestream, DMS and OpenSearch Service. They apply across engines, sizes and Regions, including serverless usage.

SageMaker AI Savings Plans

Machine-learning instance usage regardless of family, size, component or Region.

The commitment cannot be changed after purchase; buy additional plans as usage grows. Savings Plans do not cover the EKS control-plane fee, but they do cover the EC2 instances in an EKS or ECS cluster.

Reserved Instances (RIs)

The older commitment model, tied to a specific instance configuration for one or three years. Standard RIs give the deepest discount for a fixed configuration; Convertible RIs can be exchanged for other configurations at a smaller discount. A regional RI applies across the Availability Zones of a Region; a zonal RI also reserves capacity in one zone. RIs also exist for RDS, ElastiCache, OpenSearch Service, Redshift and DynamoDB reserved capacity. For new EC2, Fargate and Lambda commitments Savings Plans are the simpler choice; RIs remain relevant for services that only support reservations and where Database Savings Plans do not apply.

Spot Instances

Spare EC2 capacity at a steep discount, reclaimed with a two-minute warning. Suitable for stateless, fault-tolerant work such as batch, CI runners and Fargate Spot or Spot node pools (see ECS Deployments, Scaling and Networking and EKS Clusters).

Capacity Reservations

Reserve EC2 capacity in a zone for any duration with no discount by itself; combine with a Savings Plan or regional RI to get both capacity and a lower rate.

Dedicated Instances and Dedicated Hosts

Single-tenant hardware for licensing or compliance. They carry a premium, and Dedicated Instances add a per-Region hourly fee that Savings Plans do not discount.

flowchart TD A["Workload to run"] --> B{"Tolerates interruption?"} B -- "Yes, stateless or batch" --> C["Spot Instances or Fargate Spot"] B -- "No" --> D{"Steady usage for 1 to 3 years?"} D -- "No or unknown" --> E["On-Demand"] D -- "Yes" --> F{"Shape may change: family, Region, compute service?"} F -- "Yes" --> G["Compute Savings Plan"] F -- "No, fixed family in one Region" --> H["EC2 Instance Savings Plan"] F -- "Managed database" --> I["Database Savings Plan or reserved nodes"]

Savings Plans and RIs are bought in the console under Billing and Cost Management > Savings Plans or Reservations, guided by the recommendations in Cost Explorer (see below) and in Cost Optimization Hub. The CLI can list and describe commitments (aws savingsplans describe-savings-plans, aws ec2 describe-reserved-instances) and purchase them (aws savingsplans create-savings-plan), but a purchase is a one-to-three-year financial commitment, so most teams buy through the console after reviewing the recommendation. A Free plan account cannot buy Savings Plans or Reserved Instances; upgrading to a Paid plan unlocks them.

The Billing and Cost Management console

Billing and Cost Management is a free, global part of the console (use the account menu, then Billing and Cost Management) and groups the tools below: the Home dashboard, Bills, Cost Explorer, Budgets, Cost Anomaly Detection, Cost Allocation Tags, Cost Categories, Data Exports, Free Tier, Savings Plans, Reservations, Cost Optimization Hub and Pricing Calculator. In an organization, the management account sees consolidated data for every member account (see consolidated billing); member accounts see only their own unless granted more. Console access to billing data is controlled by IAM permissions in the billing, ce, budgets and cur namespaces, and the root user or an administrator must first allow IAM principals to see billing information, as described in Controlling access to billing.

Accounts created on or after 2025-07-15 start on a credit-based Free plan (sign-up credits plus credits for completing activities, lasting up to six months or until the credits run out) before moving to a Paid plan; the Free Tier page tracks remaining credits and usage. The plan comparison is on Getting Started with AWS, and Choosing a plan holds the current terms, which AWS has changed before.

Cost Explorer

Cost Explorer visualises cost and usage for the last 13 months, forecasts the next 18 months, groups and filters by service, account, Region, usage type, tag or cost category, and shows Savings Plans and RI coverage, utilization and purchase recommendations. Using the console is free; each paginated API request is billed a small per-request fee, so scripts should not poll it in a tight loop. Data is refreshed at least once every 24 hours, and Cost Explorer cannot be disabled once enabled. Up to 300 reports can be saved per account.

In the AWS Management Console

  1. Open Billing and Cost Management > Cost Explorer (the first visit enables it; the current month appears within about 24 hours and the history a few days later).

  2. Set the date range to the last three months, Granularity to Daily and Group by to Service to see which services dominate.

  3. Add a filter on a tag such as project with the value bookshelf (once the tag is activated, see below), then group by Usage type to find individual meters such as NAT gateway hours or data processing.

  4. Open Savings Plans > Recommendations to see the suggested hourly commitment, term and payment option for your recent usage.

With the AWS CLI

aws ce get-cost-and-usage \
  --region us-east-1 \
  --time-period Start=2026-09-01,End=2026-10-01 \
  --granularity MONTHLY \
  --metrics UnblendedCost \
  --group-by Type=DIMENSION,Key=SERVICE \
  --filter '{"Tags":{"Key":"project","Values":["bookshelf"]}}' \
  --query 'ResultsByTime[0].Groups[].[Keys[0],Metrics.UnblendedCost.Amount]' \
  --output table

End is exclusive. Other useful calls are aws ce get-cost-forecast and aws ce get-savings-plans-purchase-recommendation --savings-plans-type COMPUTE_SP --term-in-years ONE_YEAR --payment-option NO_UPFRONT --lookback-period-in-days THIRTY_DAYS.

Cost allocation tags

A tag only reaches Cost Explorer and the cost reports after it is activated as a cost allocation tag; until then it exists on the resource but is invisible to billing. There are two kinds: user-defined tags (prefix user: in reports) and AWS-generated tags (prefix aws:, for example aws:createdBy), and each kind is activated separately. A tag can take up to 24 hours to appear after activation, and in an organization only the management account (or a standalone account) can activate them. Tags are not retroactive in reports unless you use the backfill option, and resources that were never tagged cannot be attributed. Never put sensitive data in a tag value. Defining and enforcing the tag scheme (project, owner, environment, cost-center) with tag policies is covered on tagging; Cost Categories then group accounts, tags and services into business units without re-tagging anything.

In the AWS Management Console

  1. Open Billing and Cost Management > Cost allocation tags.

  2. Select the user-defined tag keys project, environment and owner, then choose Activate.

  3. Optionally choose Backfill tags to apply the activation to earlier months.

With the AWS CLI

aws ce update-cost-allocation-tags-status \
  --region us-east-1 \
  --cost-allocation-tags-status TagKey=project,Status=Active TagKey=environment,Status=Active TagKey=owner,Status=Active

aws ce list-cost-allocation-tags --region us-east-1 --status Active

AWS Budgets

A budget is a threshold on cost, usage, or RI and Savings Plans utilization or coverage. It notifies by email or an SNS topic when actual or forecasted values cross a threshold, and optionally runs a budget action. By itself it never stops spending. Six budget types exist: COST, USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION and SAVINGS_PLANS_COVERAGE, over a DAILY, MONTHLY, QUARTERLY, ANNUALLY or CUSTOM period. Budget data refreshes up to three times a day, roughly every 8 to 12 hours, so an alert can lag the spend that triggered it.

Budget actions run on your behalf when a threshold is crossed, automatically or after manual approval: apply an IAM policy or a service control policy (SCP), or stop specific EC2 or RDS instances. Actions need an IAM role that AWS Budgets can assume. From a management account an SCP can target another account, but EC2 and RDS instances can only be targeted in the same account.

Quotas: each account gets two free budgets with actions, up to 10 actions per budget and 100 budget actions per account; a management account can hold up to 20,000 budgets. Budgets that follow the standard cost types are otherwise free. Check the quotas page and the pricing page before creating many action-enabled budgets.

In the AWS Management Console

  1. Open Billing and Cost Management > Budgets and choose Create budget.

  2. Choose Customize (advanced) and the Cost budget type (the simplified templates are enough for a first budget).

  3. Name it bookshelf-monthly, set the period to Monthly, the budget type to Fixed and the amount, and add a Tag filter project=bookshelf.

  4. Add an alert at 80 percent of Actual cost and another at 100 percent of Forecasted cost, with an email recipient and optionally an SNS topic.

  5. Optionally add an action at 100 percent: attach a deny IAM policy to the CI role, or apply an SCP in a sandbox account.

With the AWS CLI

ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)

cat > budget.json <<'JSON'
{
  "BudgetName": "bookshelf-monthly",
  "BudgetType": "COST",
  "TimeUnit": "MONTHLY",
  "BudgetLimit": { "Amount": "200", "Unit": "USD" },
  "CostFilters": { "TagKeyValue": ["user:project$bookshelf"] }
}
JSON

cat > notifications.json <<'JSON'
[
  {
    "Notification": {
      "NotificationType": "ACTUAL",
      "ComparisonOperator": "GREATER_THAN",
      "Threshold": 80,
      "ThresholdType": "PERCENTAGE"
    },
    "Subscribers": [{ "SubscriptionType": "EMAIL", "Address": "finops@example.com" }]
  },
  {
    "Notification": {
      "NotificationType": "FORECASTED",
      "ComparisonOperator": "GREATER_THAN",
      "Threshold": 100,
      "ThresholdType": "PERCENTAGE"
    },
    "Subscribers": [{ "SubscriptionType": "EMAIL", "Address": "finops@example.com" }]
  }
]
JSON

aws budgets create-budget \
  --account-id "$ACCOUNT_ID" \
  --budget file://budget.json \
  --notifications-with-subscribers file://notifications.json

aws budgets describe-budgets --account-id "$ACCOUNT_ID" \
  --query 'Budgets[].[BudgetName,BudgetLimit.Amount,CalculatedSpend.ActualSpend.Amount]' --output table

The tag filter format user:<key>$<value> is how Budgets expresses a cost allocation tag, so the tag must be activated first. A budget action is added afterwards with aws budgets create-budget-action; its JSON defines the trigger threshold, the action type (APPLY_IAM_POLICY, APPLY_SCP_POLICY or RUN_SSM_DOCUMENTS), the execution role and whether approval is AUTOMATIC or MANUAL. Print the exact input shape with aws budgets create-budget-action --generate-cli-skeleton.

Cost Anomaly Detection

Budgets catch a bill that crosses a number you chose; Cost Anomaly Detection catches spend that is unusual even when it is still under budget, using machine-learning models that account for weekly and monthly seasonality and natural growth. It is free to use. Each alert lists root causes ranked by dollar impact across service, account, Region and usage type.

A monitor defines what is evaluated: an AWS-managed monitor over each AWS service (the default), or a customer-managed monitor over specific member accounts, cost allocation tags or cost categories. A subscription defines who is told, how often and above what impact threshold: IMMEDIATE alerts are delivered only through SNS, while DAILY and WEEKLY are summaries by email or SNS. Detection runs about three times a day on Cost Explorer data, so an anomaly can take up to 24 hours to surface, a new monitor needs about 24 hours to start, and a newly used service needs about 10 days of history. Quotas include one AWS-managed services monitor per account, 500 customer-managed monitors and 100 subscriptions per account, and 10 email recipients per subscription. Marketplace charges (except third-party Bedrock models), AWS Support and a few other services are not analyzed; use Budgets for those.

In the AWS Management Console

  1. Open Billing and Cost Management > Cost Anomaly Detection and choose Cost monitors > Create monitor.

  2. Choose AWS services for the managed monitor, or Cost allocation tag and the project tag for a Bookshelf-only monitor.

  3. Open Alert subscriptions > Create alert subscription, attach the monitor, set a threshold (for example, a total impact of 50 USD or more), choose Daily summaries or an SNS topic for individual alerts, and add recipients.

With the AWS CLI

MONITOR_ARN=$(aws ce create-anomaly-monitor \
  --region us-east-1 \
  --anomaly-monitor '{"MonitorName":"bookshelf-services","MonitorType":"DIMENSIONAL","MonitorDimension":"SERVICE"}' \
  --query MonitorArn --output text)

aws ce create-anomaly-subscription \
  --region us-east-1 \
  --anomaly-subscription '{
    "SubscriptionName": "bookshelf-daily",
    "MonitorArnList": ["'"$MONITOR_ARN"'"],
    "Subscribers": [{"Address": "finops@example.com", "Type": "EMAIL"}],
    "Frequency": "DAILY",
    "ThresholdExpression": {
      "Dimensions": {
        "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
        "MatchOptions": ["GREATER_THAN_OR_EQUAL"],
        "Values": ["50"]
      }
    }
  }'

aws ce get-anomalies --region us-east-1 \
  --date-interval StartDate=2026-09-01,EndDate=2026-09-30 \
  --query 'Anomalies[].[AnomalyId,Impact.TotalImpact,RootCauses[0].Service]' --output table

Finding savings and exporting data

Cost Optimization Hub consolidates recommendations from AWS Compute Optimizer and the commitment recommenders across accounts and Regions into one list with estimated savings that account for your existing discounts. It covers rightsizing and idle-resource deletion for EC2 instances, Auto Scaling groups, EBS volumes, Lambda functions, ECS tasks on Fargate, RDS, Aurora, ElastiCache, MemoryDB, DynamoDB, DocumentDB, SageMaker endpoints and NAT gateways, plus Savings Plans and RI purchases. Enable it once from the management account with aws cost-optimization-hub update-enrollment-status --status Active; check its page for current pricing, and Compute Optimizer must be opted in for rightsizing results. Cost Optimization Hub also reflects the idle load balancers and unattached volumes that show up in the table below.

For analysis outside the console, Data Exports writes the Cost and Usage Report (CUR 2.0) or FOCUS-format data to an S3 bucket on a schedule, ready for Athena or a BI tool (see AI, Data and Analytics Services Overview). Create it under Billing and Cost Management > Data Exports, or with aws bcm-data-exports create-export. The destination bucket needs a bucket policy that allows the billing service principals to write, and it incurs normal S3 and Athena costs; see S3 Security and Static Hosting for bucket policies.

Estimating cost before you deploy

Estimate before building, because a diagram does not show NAT gateway hours or log ingestion.

AWS Pricing Calculator

A free estimator in two forms: the public calculator.aws (no account needed) and the in-console version under Billing and Cost Management > Pricing Calculator, which can produce workload estimates for a new architecture and bill estimates that apply your actual discounts, Savings Plans and credits. The in-console version is scriptable with aws bcm-pricing-calculator, and its quotas include 50 workload estimates a month and 2,000 usage lines per estimate. An estimate is only as good as its assumptions about request volume, data transfer and logging, so treat it as a sanity check rather than a forecast.

Total cost of ownership (TCO)

The comparison of running something on premises (hardware, space, power, staff, licences, refresh cycles) against running it on AWS (usage-based, no upfront hardware, plus migration effort). Cost comparisons should include the CapEx versus OpEx shift described on Cloud Concepts, the engineering time saved by managed services, and licensing choices such as bring-your-own-licence versus licence-included. For an existing estate, AWS provides migration evaluation tooling covered on Architecture, Migration, Hybrid and Disaster Recovery. The Pricing Calculator alone is not a TCO study because it prices only the AWS side.

Where the Bookshelf money goes

Bookshelf’s biggest surprises are rarely the compute you expected. This table lists the cost drivers that sit between the services, qualitatively, with the lever for each:

Driver Why it surprises Lever

NAT gateway

Bills hourly per gateway and per GB processed, so private subnets pulling container images or calling S3 and DynamoDB through NAT cost money on every byte.

Gateway VPC endpoints for S3 and DynamoDB, interface endpoints for ECR and Secrets Manager, one gateway per AZ only where resilience requires it — see VPC Networking.

Public IPv4 addresses

Since 2024-02-01 every public IPv4 address bills hourly, in use or idle, including those on load balancers and Elastic IPs.

Use IPv6 or private subnets, release unused Elastic IPs, front workloads with CloudFront or an ALB instead of per-task public IPs.

Cross-AZ traffic

Traffic between Availability Zones is billed in both directions, so a chatty orders-api to Aurora path across zones adds up.

Keep chatty tiers in the same zone where resilience allows, enable zone-aware routing and read replicas in the caller’s zone.

Idle or forgotten load balancers

An ALB bills per hour plus capacity units even with no traffic; a stack deleted without its load balancer keeps billing.

Delete test stacks completely, tag everything, review Cost Optimization Hub idle findings — see Load Balancers and Gateways.

CloudWatch Logs ingestion

Verbose application logging is billed per GB ingested before any retention cost, and often exceeds the compute bill.

Log at INFO, set retention on every log group, sample debug logs — see Monitoring and Observability.

Extended Support

Old RDS or Aurora engine versions and EKS Kubernetes versions that have left standard support incur an hourly surcharge.

Upgrade on the standard-support calendar, as described on Amazon RDS and EKS Clusters.

Always-on databases and clusters

An Aurora cluster, an EKS control plane or a Client VPN endpoint bills while idle.

Aurora Serverless v2 scaling, stop non-production databases, delete dev clusters nightly, schedule scale-in.

Unattached storage and snapshots

EBS volumes outliving their instance, old snapshots and versioned S3 objects keep billing.

Lifecycle policies, snapshot retention, S3 noncurrent-version expiry — see Block and File Storage on AWS and S3 Object Storage.

Data egress

Outbound internet and cross-Region transfer bill per GB.

Serve static content through CloudFront, keep data in the Region where it is used — see CloudFront and CDN Delivery.

Free plan and trial expiry

Resources created under credits keep billing on a Paid plan.

Track the Free Tier page and set a budget alert on day one.

Compute choice matters too: the ARM-based Graviton instance families and Lambda and Fargate on ARM64 generally cost less for the same work, and rightsizing is a recurring task rather than a one-off. The cost pillar of the Well-Architected Framework (see Architecture, Migration, Hybrid and Disaster Recovery) turns these levers into a review checklist.

AWS Support plans

Every account has Basic support at no charge: account and billing help, the service quota increase process, support forums and documentation, and the Health Dashboard. Technical support is sold as monthly plans with no long-term contract, billed as a percentage of monthly usage with a minimum fee (see the plan comparison for the current figures, which this page deliberately omits).

The line-up changed during 2026; the current plans are:

Plan What it provides

Basic

Included with every account. Account and billing questions, forums, documentation, service health information and the core Trusted Advisor checks.

Business Support+

24x7 phone, web and chat access to Cloud Support Engineers, AI-assisted contextual responses, a human engagement target of under 30 minutes for business-critical system-down cases, the full set of Trusted Advisor checks, the Support API, third-party software support and an unlimited number of cases opened by any permitted user.

Enterprise

Everything in Business Support+, plus a designated Technical Account Manager (TAM), a 15-minute response target for production-critical cases, access to AWS Security Incident Response, strategic business reviews and AWS Countdown event management. The minimum monthly fee was lowered when the plan was restructured.

Unified Operations

The highest tier for mission-critical workloads: application architecture guidance, infrastructure event management, a designated TAM and a Domain Specialist Engineer, a recurring Countdown Premium subscription, critical workload reviews and personalised runbooks.

Recent changes:

  • Developer Support and Business Support are discontinued on 2027-01-01. Existing customers can keep their plan until then or move to Business Support+ at any time before that date.

  • Enterprise On-Ramp is also discontinued on 2027-01-01. During 2026 On-Ramp customers are being upgraded automatically to Enterprise Support at contract renewal or in periodic batches, with an email notice a month before.

  • Developer, Business and Enterprise On-Ramp remain available in the AWS GovCloud (US) Region.

  • Older guides and tutorials still describe the Developer, Business and Enterprise On-Ramp plans as the standard choices; treat those descriptions as legacy for commercial Regions.

Practical choice for Bookshelf: Basic while experimenting, Business Support+ once there are paying users and production data, Enterprise or Unified Operations only when a TAM, event management or a formal security-incident partner is worth the minimum fee. Support is configured per account, so in an organization it is worth choosing which accounts need it (production, shared services) instead of subscribing every sandbox. A support plan is changed from Support Center > Change plan in the console; there is no CLI command to subscribe. The AWS Support API (aws support) is available on the paid plans to open and manage cases and to read Trusted Advisor results.

Opening a case and getting help

  1. In the console, choose Support > Support Center, then Create case.

  2. Pick Account and billing (available on every plan), Service quota increase or Technical, and fill in the service, category, severity and description.

  3. Follow the case from Support Center > Your support cases.

Other help channels exist beside paid plans: AWS re:Post (the community Q and A that replaced the older AWS forums), the AWS Knowledge Center of common resolutions, AWS Trusted Advisor (checks across cost optimization, performance, security, fault tolerance, service limits and operational excellence), the AWS Health Dashboard for service events and account-specific events, and the AWS Partner Network and partner-led support for customers who work through a partner.

# Technical cases and Trusted Advisor via the Support API require a paid plan.
aws support describe-cases --region us-east-1 --include-resolved-cases false \
  --query 'cases[].[caseId,subject,status]' --output table

# Trusted Advisor recommendations are also exposed through a dedicated API.
aws trustedadvisor list-recommendations --region us-east-1 \
  --query 'recommendationSummaries[].[name,pillars[0],status]' --output table

Limits and quotas

Feature quotas are summarised on the Cost Management quotas page: two free action-enabled budgets, 10 actions per budget and 100 actions per account; 300 saved Cost Explorer reports; 500 customer-managed anomaly monitors; and 50 Pricing Calculator workload estimates per month. Cost Explorer retains 13 months of history and forecasts 18 months; use Data Exports to keep longer history. Savings Plans and RI commitments are a firm commitment for the full term; confirm the current cancellation and return rules in the Savings Plans guide before purchase.

Clean up

Cost tooling is cheap, but remove what you created for experiments, in this order:

ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)

# Budget (and its notifications and actions)
aws budgets delete-budget --account-id "$ACCOUNT_ID" --budget-name bookshelf-monthly

# Anomaly subscription first, then the monitor
SUB_ARN=$(aws ce get-anomaly-subscriptions --region us-east-1 \
  --query "AnomalySubscriptions[?SubscriptionName=='bookshelf-daily'].SubscriptionArn" --output text)
aws ce delete-anomaly-subscription --region us-east-1 --subscription-arn "$SUB_ARN"
aws ce delete-anomaly-monitor --region us-east-1 --monitor-arn "$MONITOR_ARN"

# Optional: deactivate cost allocation tags
aws ce update-cost-allocation-tags-status --region us-east-1 \
  --cost-allocation-tags-status TagKey=project,Status=Inactive

Also delete any Data Exports and the S3 bucket that receives them, any Pricing Calculator estimates you no longer need, and any budget action roles. A Savings Plan or Reserved Instance purchase cannot be deleted; check the plan’s terms before buying.