AWS S3
Required AWS S3 Attributes
To calculate costs for S3 operations, provide the following cost calculation tags in your traces:
Always Required Fields
These fields are always required for S3 request cost calculation:
| Attribute Name | Example Value | Allowed Values |
|---|---|---|
aws.s3.bucket_name | my-application-bucket | Valid S3 bucket name |
aws.region | us-east-1 | Supported AWS regions |
aws.s3.request_operation | PutObject | Supported S3 operations (see below) |
Optional Fields
These fields have default values and only need to be provided when the default does not apply:
| Attribute Name | Example Value | Allowed Values | Default |
|---|---|---|---|
aws.s3.storage_class | STANDARD | See storage classes below | STANDARD |
Supported Request Operations
S3 request operations are grouped into pricing tiers:
| Tier | Operations | Description |
|---|---|---|
| Tier 1 | PutObject, CopyObject, PostObject, ListObjects | Higher per-request cost (write/list operations) |
| Tier 2 | GetObject, SelectObject | Lower per-request cost (read operations) |
| Free | DeleteObject, CancelObject | No per-request cost |
S3 API calls are priced per request. Each operation (PutObject, GetObject, etc.) costs money as a discrete transaction, with no duration-based component.
Supported Storage Classes
| Storage Class | Description |
|---|---|
STANDARD | General-purpose storage (default if not specified) |
INTELLIGENT_TIERING | Automatic cost optimization for data with unknown access patterns |
STANDARD_INFREQUENT_ACCESS | Lower-cost for infrequently accessed data with rapid retrieval |
ONE_ZONE_INFREQUENT_ACCESS | Lowest-cost for infrequently accessed data in a single zone |
GLACIER_INSTANT_RETRIEVAL | Archive storage with immediate access |
GLACIER | Archive storage with retrieval time in hours |
DEEP_ARCHIVE | Lowest-cost archive storage with retrieval time in 12 hours or more |
EXPRESS_ONEZONE | High-performance single-zone storage |
Supported Regions
The following AWS regions are supported for S3 cost calculation:
| Region | Location |
|---|---|
us-east-1 | N. Virginia |
us-east-2 | Ohio |
us-west-1 | N. California |
us-west-2 | Oregon |
ca-central-1 | Canada (Central) |
sa-east-1 | Sao Paulo |
eu-west-1 | Ireland |
eu-west-2 | London |
eu-west-3 | Paris |
eu-central-1 | Frankfurt |
eu-central-2 | Zurich |
eu-north-1 | Stockholm |
eu-south-1 | Milan |
eu-south-2 | Spain |
ap-northeast-1 | Tokyo |
ap-northeast-2 | Seoul |
ap-northeast-3 | Osaka |
ap-southeast-1 | Singapore |
ap-southeast-2 | Sydney |
ap-southeast-3 | Jakarta |
ap-southeast-4 | Melbourne |
ap-south-1 | Mumbai |
ap-south-2 | Hyderabad |
ap-east-1 | Hong Kong |
me-south-1 | Bahrain |
me-central-1 | UAE |
af-south-1 | Cape Town |
Visualization with Mermaid
The diagram below shows which attributes are required and optional for S3 cost calculation.
Instrumenting S3 Operations
Add the required attributes to your OpenTelemetry spans when making S3 API calls.
We will be releasing SDKs for various languages to make it easier to send these attributes to Beakpoint Insights. Stay tuned for updates!
Attribute Mapping
The following table shows how to obtain the required attribute values:
| Beakpoint Insights Attribute | Source | Notes |
|---|---|---|
aws.s3.bucket_name | S3 client call | Target bucket name |
aws.region | AWS SDK config | Bucket region |
aws.s3.request_operation | S3 client call | Operation name (e.g., PutObject, GetObject) |
aws.s3.storage_class | Object metadata | Required only if not STANDARD |
AWS CLI Examples
You can verify your bucket's region and storage class:
# Get bucket location
aws s3api get-bucket-location --bucket my-application-bucket
{
"LocationConstraint": "us-east-1"
}
# Check an object's storage class
aws s3api head-object --bucket my-application-bucket --key my-object-key
{
"ContentLength": 1048576,
"ContentType": "application/octet-stream",
"StorageClass": "STANDARD",
"LastModified": "2026-01-15T10:30:00+00:00"
}