- Newest
- Most votes
- Most comments
Hello,
AWS Backup makes approximately 8 S3 GET API calls per new object to verify metadata, versioning, encryption, and access controls necessary for backup purposes.
To distinguish API requests made by AWS Backup from other services:
Enable AWS CloudTrail: Logs S3 API calls with the caller identity, helping identify calls from "aws.backup". This adds some cost.
Use AWS Cost Explorer: While it doesn't show service-specific calls, it can help identify cost trends related to S3 API usage before and after implementing AWS Backup.
Monitor with AWS CloudWatch: Create metrics and alarms to monitor specific API request types, which can help in tracking and differentiating the API calls.
Hi,
AWS Backup Pricing for S3: Key Points
=>Why 8 GET API Calls per Object? Metadata Retrieval: Multiple calls for object metadata. Integrity Checks: Ensuring data integrity. Versioning: Handling multiple versions. Large Objects: Breaking down large objects. Cost Components Storage Cost: Cost of storing backups.
S3 API Calls: $0.004 per 10,000 GET requests. Example: 8 GET calls per object * 100 million objects = $320. EventBridge Costs: For triggering and monitoring events. Differentiating API Requests
AWS CloudTrail: Logs all API calls. Filter by AWS Backup service.
S3 Access Logs: Detailed request logs. AWS Cost and Usage Reports (CUR): Breakdown of API requests and costs by service. Steps to Enable Logging
CloudTrail for S3: Create a Trail in CloudTrail. Enable logging for S3 data events.
S3 Access Logs: Configure logging in the S3 bucket properties. Specify a target bucket for storing logs. Using these tools, you can accurately monitor and differentiate API requests to optimize your backup costs and strategy.
Hello Prashant,
AWS Backup uses several S3 GET calls (around 8) per new object to check metadata, versioning, encryption, and access for backup purposes.
Unfortunately, there's no direct way within S3 to distinguish API requests by service (Backup vs. others). Here are two options to consider:
Enable CloudTrail:
This logs S3 API calls with caller identity, allowing you to identify calls from the "aws.backup" service principal. However, it adds extra cost.
Analyze Costs with Cost Explorer:
While not showing service-specific calls, it can reveal trends in S3 API costs. This helps establish a baseline before and after using AWS Backup.
Use AWS CloudWatch:
Create metrics and alarms in CloudWatch to monitor specific types of API requests. CloudWatch can aggregate and report the number of GET requests.
Relevant content
- asked 3 months ago
- asked 8 months ago
Note, however, that considering that the question is about costs, logging all S3 object-level operations with CloudTrail automatically increases costs even further. All data event logging in CloudTrail is separately billed. I'd suggest considering S3 server access logs instead, which are free to produce and deliver to your S3 log bucket, and only storing and accessing the logs afterwards is billed as per normal S3 pricing. There's a more complete comparison on S3 server access logs vs. CloudTrail logging for S3 here: https://docs.aws.amazon.com/AmazonS3/latest/userguide/logging-with-S3.html