Nhảy tới nội dung

Cleanup and Important Note

CDK Destroy

# Destroy all stacks
cdk destroy --all

Alternative way (manual)

# Delete Campaign
personalize.delete_campaign(campaignArn=campaign_arn)

# Delete Solution
personalize.delete_solution(solutionArn=solution_arn)

# Delete Dataset
personalize.delete_dataset(datasetArn=dataset_arn)

# Delete Schema
personalize.delete_schema(schemaArn=schema_arn)

# Delete Dataset Group
personalize.delete_dataset_group(datasetGroupArn=dataset_group_arn)
Important Note - Billing

For Campaigns:

When you create a campaign, you set minProvisionedTPS (minimum provisioned transactions per second). Default value (minimum): 1 TPS.

You are billed for whichever is greater:

  • Your minimum provisioned capacity (1 TPS = 3,600 requests/hour).
  • Your actual GetRecommendations API calls.

For Recommenders:

When you create a recommender, you set minRecommendationRequestsPerSecond. Default value (minimum): 1 request per second and same billing logic applies.

My Billing

In this project, my bill shows 291,300 requests and charged $6.18 (111,300 requests and 180,000 in free tier).

The Key Point

Even if you make ZERO GetRecommendations API calls, you still get billed for the minimum provisioned capacity as long as your campaign/recommender is ACTIVE.

How to Avoid This

  • Set minProvisionedTPS/minRecommendationRequestsPerSecond to 1 (minimum allowed).
  • Delete campaigns/recommenders when not in use.
  • Use batch recommendations instead if you don't need real-time responses.