r/aws • u/dubidub_no • 2d ago
billing Does SES attachment data get double-billed as generic Data Transfer Out once you exceed the 100GB free tier?
I only use SES (+SNS for events), no EC2/S3. My bill shows two line items that appear to track the same outbound bytes:
- Simple Email Service → "Cost per GB of attachments"
- Data Transfer → "data transfer out under the monthly global free tier"
The GB figures on both lines line up closely, suggesting they're both counting the same SES traffic.
AWS's EC2 pricing page footnote says DTO rate tiers are calculated on aggregate usage across EC2, S3, RDS, SES, SNS, etc. combined — so SES bytes clearly count toward the shared 100GB/month free tier pool.
My question: once your account's aggregate DTO usage crosses 100GB, do SES-originated bytes get billed again on the generic Data Transfer line — on top of the SES-specific attachment charge — or are they excluded from that line since SES already has its own data transfer pricing?
AWS docs don't say either way, and their AI support agent couldn't confirm it either. Has anyone actually crossed 100GB with SES traffic and can confirm from a real bill?
5
u/Fatel28 2d ago
Don't email with attachments. Use s3 and presigned URLs. email is not a storage system.
1
u/dubidub_no 1d ago
Yes, but this question is about how billing works.
There are situations where attachments are expected. All attractions I ordered tickets for in London sent the tickets as attachments, for example.
2
u/matiascoca 1d ago
Yes, once your aggregate DTO crosses 100 GB for the month, SES-originated bytes get charged the standard DTO rate on top of the SES per-GB attachment fee. The two are separate line items because they price different things: the attachment fee covers SES processing, the DTO tier covers network egress. They stack.
The footnote you cited is the correct read of the pooling. It is deliberately buried on the EC2 pricing page rather than surfaced on SES pricing, which is why almost nobody knows until they cross the threshold and see two line items growing in lockstep.
Practical read for an SES-only account: 100 GB is roughly a million emails at reasonable attachment sizes. Approaching that volume, right-sizing the attachment strategy pays back fast. Hosting large attachments in S3 and sending signed URLs instead of raw bytes, or using SES for the notification and a CDN for the payload, both shift the egress off the aggregate pool onto S3 or CloudFront pricing which curves differently.
1
u/dubidub_no 1d ago
Thank you for confirming this :)
1
u/dubidub_no 1d ago
On the SES pricing page the footnotes says "You might incur additional data transfer charges for using EC2." Does that mean ypu can be charged three times if the emails originate from EC2? (EC2 -> SES attachment -> DTO)
1
u/Circle_Dot 1d ago
Docs specifically state $0.12 per GB of attachment data sent. You might incur additional data transfer charges for using EC2.
Ec2 isn’t going to know what data is email body and which is attachment. So if you are sending email with attachments I would expect data charges for both.
1
1
u/Pissd_Tdn 1d ago
Look at the actual cost on the Data Transfer row once the free tier is gone and if the line starts charging, CUR will show it clearly
1
u/stewartjarod 1d ago
Not a confirmation from a real bill, so take it as a way to check rather than an answer.
The two line items you're seeing are almost certainly different usage types, not the same bytes twice. Pull Cost Explorer, set granularity to daily, filter to Service = "Amazon Simple Email Service", then group by Usage Type. SES attachment bytes show up under a region-prefixed SES usage type. Generic DTO shows up as a DataTransfer usage type and is grouped under the service that originated it. If SES bytes were being counted on both lines you'd see the same daily byte total appear under two usage types with the same shape, which is easy to eyeball once it's daily.
Worth checking the AWS free tier page too, since the 100GB DTO allowance is account-aggregate across services and resets monthly, so if SES is genuinely your only traffic then crossing it at all means you're moving a lot of attachment weight.
If it does turn out to be double-counted, that's a billing bug and support will refund it, but I'd get the daily usage-type breakdown first so you have something concrete to open the case with.
1
u/dubidub_no 1d ago
Pull Cost Explorer, set granularity to daily, filter to Service = "Amazon Simple Email Service", then group by Usage Type. SES attachment bytes show up under a region-prefixed SES usage type. Ge
I can only get the cost explorer to show dollar amounts, not bytes. Since I'm not over the 100 GB free tier, it is showing $0. Her is a screenshot: https://postimg.cc/G4wftqyJ
Since both attachment bytes and transfer out bytes are increasing in unison right now when I'm under the 100 GB transfer free tier, I am looking for a clear answer on what will happen if I exede the free tier.
•
u/AutoModerator 2d ago
Try this search for more information on this topic.
Comments, questions or suggestions regarding this autoresponse? Please send them here.
Looking for more information regarding billing, securing your account or anything related? Check it out here!
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.