Amazon SNS Pricing: Complete Guide + Calculator

Amazon SNS pricing broken down by topic type, endpoint, and SMS. Includes hidden costs, worked examples, and a free pricing calculator for your workload.

March 13th, 2026
0 views
--- likes

Amazon SNS pricing looks deceptively simple: $0.50 per million API requests. But then you discover that a 256KB message counts as four requests, FIFO topics bill you three different ways, and SMS costs vary by country, carrier, and origination identity type. The official pricing page lists every rate, but it doesn't answer the question that actually matters: what will SNS cost for my specific workload?

This guide breaks down every Amazon SNS pricing component with current numbers, walks through real-world cost scenarios, and exposes the billing gotchas that catch teams off guard. If you want a quick estimate, the SNS pricing calculator lets you model your workload in minutes.

All prices are for US East (N. Virginia) as of March 2026. Prices vary by region.

Amazon SNS Pricing at a Glance

Amazon SNS is fully pay-as-you-go. No upfront fees, no minimum commitments, no long-term contracts. Your bill depends on what you publish, where you deliver, and which optional features you enable.

Here's the full pricing summary for quick reference:

Pricing DimensionCostFree Tier (Monthly)
API Requests (Standard)$0.50 per 1M requestsFirst 1M requests
HTTP/S Deliveries$0.06 per 100KFirst 100K
Email Deliveries$2.00 per 100KFirst 1,000
Mobile Push$0.50 per 1MFirst 1M
SQS / Lambda / Firehose Deliveries$0 (no delivery charge)Always free
SMS DeliveriesVaries by countryNo free tier
FIFO Published Messages$0.30 per 1MNone
FIFO Subscribed Messages$0.30 per 1MNone
FIFO Payload Data$0.11 per GBNone
Payload-Based Filtering$0.06 per GB scannedNone
Message Archiving (FIFO)$0.10 per GB-monthNone
Data Protection Scanning$0.12 per GBNone
Data Transfer Out$0.09 per GB (up to 10 TB)First 1 GB/month

The SNS free tier is permanent. It doesn't expire after 12 months like some AWS services. For dev/test and low-volume production workloads sending to SQS or Lambda, SNS can effectively cost nothing.

One gotcha to keep in mind: Standard topic billing uses 64KB chunks. A 256KB message counts as 4 API requests and 4 deliveries per endpoint. I'll explain the full cost impact later.

For a custom estimate based on your volumes, try the SNS pricing calculator.

How Amazon SNS Pricing Works

Before diving into per-component rates, it helps to understand how SNS meters charges. There are four cost dimensions: API requests (publishing messages), notification deliveries (varies by endpoint type), data transfer, and optional features (filtering, archiving, data protection). The endpoint you deliver to has the biggest impact on your per-message cost.

SNS supports two topic types, and they use fundamentally different billing models.

Standard Topics

Standard topics are the default choice for most workloads. They deliver messages with high throughput and best-effort ordering, and they support all endpoint types (SQS, Lambda, HTTP, email, push, SMS). Billing is based on 64KB chunks: each 64KB of published or delivered data counts as one request or one delivery. A 10KB message is one request. A 256KB message is four.

FIFO Topics

FIFO (First In, First Out) topics provide strict message ordering and exactly-once deduplication. The trade-off: they only deliver to SQS queues, and they use a triple-billing model. You pay separately for published messages, subscribed messages (multiplied by the number of subscriptions), and payload data per GB. This makes FIFO topics more expensive at scale, but they're required when message ordering matters.

Standard Topic Pricing

Standard topics are the most commonly deployed SNS configuration. The pricing has two components: what you pay to publish messages, and what you pay to deliver them.

API Request Costs

Every Publish, PublishBatch, topic owner operation, and subscription owner operation counts as an API request. The rate is $0.50 per 1 million requests, with the first 1 million per month free.

The critical detail is the 64KB chunking model. Each 64KB of published data counts as a separate request:

Message SizeBilled RequestsEffective Cost per Message
10 KB1$0.0000005
64 KB1$0.0000005
100 KB2$0.000001
256 KB (max)4$0.000002

The PublishBatch API lets you send up to 10 messages in a single request (max 256KB total). Since you're billed per request, batching 10 small messages into one call reduces API costs by up to 90%.

Notification Delivery Costs by Endpoint

Delivery costs also follow the 64KB chunking model (except SMS). Each 64KB chunk of delivered data counts as one delivery.

Endpoint TypeCost per DeliveryFree Tier (Monthly)
HTTP/HTTPS$0.06 per 100KFirst 100K
Email / Email-JSON$2.00 per 100KFirst 1,000
Amazon SQSNo chargeAlways free
AWS LambdaNo chargeAlways free
Amazon Data FirehoseNo chargeAlways free
Mobile Push (APNs, FCM)$0.50 per 1MFirst 1M
SMSVaries by countryNo free tier

The zero delivery cost for SQS, Lambda, and Firehose is a big deal. If you're building event-driven architectures where SNS fans out to SQS queues or Lambda functions, you're only paying for the publish side (plus data transfer, which I'll cover separately). Keep in mind that the SQS side still incurs per-request charges, so check the Amazon SQS pricing breakdown before estimating your total messaging costs.

Standard Topic Cost Example

Let's say you're running an event-driven microservice that publishes 5 million messages per month (average 10KB each) to a Standard topic with 3 SQS subscribers and 1 HTTP webhook.

Line ItemCalculationMonthly Cost
API Requests5M - 1M free = 4M x $0.50/1M$2.00
SQS Deliveries (3 subs)No delivery charge$0.00
HTTP Deliveries5M - 100K free = 4.9M x $0.06/100K$2.94
Total$4.94

Under five dollars a month for 5 million messages to 4 endpoints. That's the power of using SQS as your primary delivery target. If all four subscribers were HTTP endpoints instead, delivery costs alone would jump to roughly $12.

FIFO Topic Pricing

FIFO topics use a completely different billing model than Standard topics, and it's where I see the most billing confusion. The costs look low on paper ($0.30 per million) until you realize the subscription multiplication effect.

How FIFO Billing Differs from Standard

Standard topics have two cost components: API requests and deliveries. FIFO topics have three:

  1. Published messages ($0.30 per 1 million): What you send to the topic
  2. Subscribed messages ($0.30 per 1 million): Published messages multiplied by the number of subscriptions
  3. Payload data ($0.11 per GB): Charged for both published and subscribed payload

Each message from 1KB to 256KB counts as one message (anything under 1KB rounds up to 1KB). Also note that API requests for topic management (CreateTopic, Subscribe) are still charged at the standard rate of $0.50 per million.

FIFO Cost Calculation Example

Publishing 10 million messages (average 2KB each) to a FIFO topic with 3 SQS subscriptions:

Line ItemCalculationMonthly Cost
Published Messages10M x $0.30/1M$3.00
Published Payload10M x 2KB = 20 GB x $0.11/GB$2.20
Subscribed Messages10M x 3 subs = 30M x $0.30/1M$9.00
Subscribed Payload30M x 2KB = 60 GB x $0.11/GB$6.60
Total$20.80

That's $20.80 for the same type of workload that would cost about $5 on a Standard topic with 3 SQS subscribers. The subscription multiplication is what gets you: each additional subscriber multiplies both the subscribed message count and the subscribed payload cost.

Standard vs FIFO: When Is FIFO Worth the Premium?

Here's the same 10 million messages (2KB average) with 3 SQS subscribers on both topic types:

Cost ComponentStandardFIFO
API/Publish Costs$4.50$3.00
Delivery Costs$0 (SQS)$9.00 (subscribed msgs)
Payload Costs$0$8.80
Total$4.50$20.80

FIFO costs roughly 4.6x more for this workload. That premium is justified when you need strict message ordering (financial transactions, order processing), exactly-once deduplication, or message grouping for parallel ordered processing.

If your workload tolerates best-effort ordering and at-least-once delivery, Standard topics save you significant money, especially as subscriber count grows.

SMS Messaging Costs

SMS is by far the most expensive component of Amazon SNS pricing. Unlike other endpoints where pricing is straightforward per-delivery, SMS costs stack up from three different sources: the SNS API request, the per-message SMS delivery fee, and monthly origination identity leases.

There's no SMS free tier, and you're charged even for failed delivery attempts to invalid phone numbers.

Per-Message SMS Costs

SMS delivery rates vary by destination country, carrier, and message type. AWS doesn't publish a flat per-message rate. Instead, costs depend on:

  • Destination country and carrier: US rates differ from India rates, and T-Mobile rates may differ from AT&T
  • Message type: Transactional messages (MFA codes, OTPs) cost more than promotional messages in countries that support promotional routes
  • SNS API request: You still pay $0.50 per million requests on top of the SMS delivery charge

For US destinations, expect roughly $0.00581 per SMS segment for transactional messages. For exact rates by country, check the AWS SMS pricing page.

One more thing to watch: the default SMS spend threshold is $1.00 per account. You'll need to request an increase through AWS Support before sending any meaningful SMS volume.

Multi-Part Message Billing

Each SMS can carry up to 140 bytes of data. Messages exceeding this limit are automatically split into multiple segments, and you pay for each one:

EncodingSingle SMS LimitMulti-Part Segment Size
GSM-7 (standard text)160 characters~153 characters
ASCII140 characters~134 characters
UCS-2 (Unicode/emoji)70 characters~67 characters

A 320-character GSM-7 message splits into 3 segments (ceil(320/153)), so you're billed for 3 SMS deliveries. If your messages include emoji or non-Latin characters, UCS-2 encoding kicks in and a 150-character message becomes 3 segments instead of 1.

Origination Identity Costs (10DLC, Toll-Free, Short Codes)

For US destinations, you must purchase a dedicated origination identity. This is a monthly recurring cost on top of per-message fees.

10DLC (10-Digit Long Code) is the standard option for most use cases:

FeeCost
Company registration$4 one-time
Campaign registration$10/month per campaign
Phone number lease$1/month per number

Toll-free numbers work for lower-volume use cases:

FeeCost
Number lease$2/month
Carrier fee (US destinations)$0.0025 per message

Dedicated short codes are the enterprise high-throughput option:

FeeUSCanadaUK
Setup$650$3,000$0
Monthly$995$995$1,500
Provisioning time12 weeks16 weeks16 weeks

For most teams, 10DLC at $11/month (campaign + number) is the right starting point. Short codes at $995/month only make sense when you need the throughput and brand recognition of a 5-6 digit number.

The November 2024 Billing Change

Starting November 1, 2024, SMS charges appear under AWS End User Messaging on your AWS bill, not under Amazon SNS. This affects how you track SMS costs in Cost Explorer and how you set up cost allocation tags.

If you're wondering why your SNS line item dropped while a new "End User Messaging" charge appeared, this is why. Your actual costs didn't change, just the billing label.

Message Filtering, Archiving, and Data Protection Costs

SNS offers three add-on features that each have their own pricing model. The key thing to know upfront: attribute-based message filtering is free, which makes it the default recommendation over payload-based filtering.

Message Filtering (Free vs Paid)

SNS message filtering lets subscribers receive only a subset of messages published to a topic. There are two types, and the cost difference is significant:

Attribute-based filtering: Free. Filter policies evaluate message attributes (key-value metadata attached to the message). No additional charge beyond standard publish and delivery costs.

Payload-based filtering: $0.06 per GB scanned. Filter policies evaluate the message body content. Both filtered (rejected) and delivered messages count toward the scanned data volume, with a minimum billing unit of 1KB per outbound message.

Here's what that looks like in CDK with cost annotations:

// Attribute-based filtering: FREE
topic.addSubscription(
  new subscriptions.LambdaSubscription(fn, {
    filterPolicy: {
      eventType: sns.SubscriptionFilter.stringFilter({
        allowlist: ['order_placed', 'order_cancelled'],
      }),
    },
  })
);

// Payload-based filtering: $0.06 per GB scanned
topic.addSubscription(
  new subscriptions.LambdaSubscription(fn, {
    filterPolicyWithMessageBody: {
      order: sns.FilterOrPolicy.policy({
        type: sns.FilterOrPolicy.filter(
          sns.SubscriptionFilter.stringFilter({
            allowlist: ['premium', 'enterprise'],
          })
        ),
      }),
    },
  })
);

The takeaway: always put filtering criteria in message attributes instead of the message body when possible. It's a free optimization that requires minimal code changes.

Message Archiving and Replay (FIFO Only)

FIFO topics support message archiving with configurable retention from 1 to 365 days. Pricing:

ComponentCost
Storage$0.10 per GB-month
Minimum billing1 day per archived message
ReplayBilled at FIFO API and payload rates

The minimum billing of 1 day per message is a gotcha for high-volume topics. Even if you set a 1-day retention period, each message is charged for at least 1 full day of storage.

Standard topics don't have built-in archiving. The workaround is subscribing an Amazon Data Firehose delivery stream to route messages to S3, but that comes with Firehose and S3 charges.

Message Data Protection

Message data protection scans messages in transit to audit, mask, redact, or block sensitive data (PII, PHI). Available for Standard topics only.

ComponentCost
Payload data scanned$0.12 per GB
Audit report data generated$0.08 per GB
Minimum billing1KB per message scanned

Three operations are supported: audit (sample and log findings), de-identify (mask or redact sensitive data), and deny (block delivery if sensitive data is detected). All three are charged at the same scanning rate.

Data Transfer Costs

Data transfer is the cost dimension that surprises people most with AWS SNS pricing. Here's the counterintuitive part: even though SQS and Lambda deliveries have no per-notification charge, data transfer from SNS to these services is charged at internet data transfer rates. If your SNS consumers include ECS services, factor in the ECS pricing as well.

DirectionCost
Data IN to SNSFree
SNS to EC2 (same region)Free
SNS to SQS / Lambda / FirehoseInternet data transfer rates
First 1 GB/month out to internetFree
Up to 10 TB/month$0.09 per GB
Next 40 TB/month$0.085 per GB
Next 100 TB/month$0.07 per GB

New AWS customers get 15 GB of free data transfer out per month for the first 12 months, aggregated across all AWS services including SNS. Data transfer tiers aggregate across services, so understanding how DynamoDB pricing and other services contribute helps with total cost estimation.

For most workloads with small messages (under 10KB), data transfer costs are negligible. But if you're publishing large payloads at high volume to SQS or Lambda, this adds a cost layer you might not expect. This is another reason to keep messages small and use references (S3 keys, database IDs) instead of embedding full payloads.

Amazon SNS Free Tier

The SNS free tier is one of the most generous among AWS messaging services, and it never expires. This isn't the "12-month new customer" free tier. It's permanent.

ComponentMonthly Allowance
API Requests1 million
HTTP/HTTPS Deliveries100,000
Email Deliveries1,000
Mobile Push Notifications1 million
SQS / Lambda / Firehose DeliveriesAlways free (no delivery charge)
SMS DeliveriesNo free tier
Data Transfer Out (new customers)15 GB/month for first 12 months

Free tier usage is calculated monthly across all regions and automatically applied to your bill. It doesn't accumulate from month to month.

For development, testing, and low-volume production workloads that deliver to SQS or Lambda, SNS can run at $0/month indefinitely. The combination of 1 million free API requests and zero-cost SQS/Lambda deliveries means you're only paying for data transfer, which is also free for the first GB per month.

The notable gap: no SMS free tier at all. Every SMS message is billed from the first one.

Billing Gotchas and Hidden Costs

This is where SNS pricing gets tricky. I've seen teams get surprised by these charges because they're not obvious from the standard rate tables.

The 64KB Chunking Multiplier

Standard topic billing counts each 64KB chunk as a separate request (publish side) and a separate delivery (delivery side). This applies to both directions.

Here's the real cost impact of a 256KB message delivered to 3 HTTP subscribers:

ComponentNaive CalculationActual (64KB Chunking)
API Requests1 request4 requests
HTTP Deliveries3 deliveries12 deliveries (4 chunks x 3 subs)
Total billing units416

What looks like 4 billing events is actually 16. At scale, this 4x multiplier on large messages can be a meaningful cost driver. The fix is straightforward: keep messages small. Send a reference (S3 key, database ID, event ID) and let subscribers fetch the full payload when needed.

KMS Encryption Cost Multiplication

When you enable server-side encryption with AWS KMS on an SNS topic, each API interaction generates KMS calls:

  • Each Publish call = 1 GenerateDataKey KMS call
  • Each delivery to each subscriber = 1 Decrypt KMS call

For a topic with 5 subscribers, a single publish generates 6 KMS calls (1 encrypt + 5 decrypt). At $0.03 per 10,000 KMS requests:

VolumeKMS CallsMonthly KMS Cost
1M publishes, 5 subs6M calls$18.00
10M publishes, 5 subs60M calls$180.00

$180/month just for encryption on a high-volume topic. Consider whether you need encryption at rest, or if the AWS-managed SNS key (aws/sns) works for your compliance requirements (it has lower costs than customer-managed keys).

Data Transfer from SNS to SQS/Lambda Is Not Free

This trips people up because the pricing page clearly states no per-notification delivery charge for SQS and Lambda. That's true. But in the same section, it also states that data transfer from SNS to these services is charged at internet data transfer rates, even within the same region.

For small messages (1-10KB) at moderate volumes, this cost is negligible - maybe a few cents. But at 100 million 10KB messages per month (roughly 1 TB of transfer), that's $90 in data transfer costs that you might not have budgeted.

Failed SMS Delivery Charges

You can be charged for SMS delivery attempts to invalid phone numbers. If the destination carrier reports the attempt, AWS bills for it. The mitigation is simple: validate phone numbers before sending, and use the phone number validation APIs to catch bad numbers before they cost you money.

Archive Minimum Billing and Payload Filtering Costs

Two smaller gotchas worth knowing:

  • Archive minimum billing: Each archived FIFO message has a minimum storage charge of 1 day, regardless of your retention period or when the message expires.
  • Payload filtering double-counting: Both filtered (rejected) and successfully delivered messages count toward the payload data scanned. If you're filtering 90% of messages, you're still paying for scanning 100% of the data.

How to Optimize Your SNS Costs

Here are the Amazon SNS pricing optimization strategies sorted by impact. Most of these take minutes to implement.

1. Use PublishBatch for Standard topics. Batching 10 messages per API call reduces request costs by up to 90%. Publishing 10 million messages individually costs $5.00 in API fees. Batching them in groups of 10 costs $0.50. This is the single biggest lever for most workloads.

2. Choose Standard over FIFO when strict ordering isn't required. As the comparison above showed, FIFO can cost 4-5x more for the same workload. Unless you need exactly-once deduplication or strict ordering, Standard topics are the cost-effective default.

3. Deliver to SQS, Lambda, or Firehose whenever possible. These endpoints have zero per-notification delivery charges. HTTP endpoints cost $0.06 per 100K, and email costs $2.00 per 100K. When you have flexibility in endpoint choice, SQS or Lambda subscriptions give you the lowest total delivery cost.

4. Use attribute-based filtering instead of payload-based. Attribute-based filtering is free. Payload-based costs $0.06 per GB. Move your filtering criteria from the message body into message attributes. It's a code change, not an architecture change.

5. Keep messages small. Send references instead of full payloads. For Standard topics, every 64KB chunk is a separate billing event for both publishing and delivery. A 256KB message costs 4x what a 10KB message costs.

6. Minimize SMS costs. Use 10DLC ($11/month) instead of short codes ($995/month) unless you need high throughput. Set the account-level SMS spend limit to prevent runaway charges. Validate phone numbers before sending. Use the promotional message type for non-critical messages in countries where it's supported.

7. Evaluate KMS encryption costs. If you have high-volume topics with multiple subscribers, KMS costs can add up fast. Use the AWS-managed aws/sns key for lower costs, or assess whether encryption at rest is a compliance requirement for your specific topics.

8. Right-size archiving retention. FIFO topic archiving at $0.10 per GB-month with a minimum 1-day billing per message adds up on high-volume topics. Set the retention period to the minimum your replay requirements need, not the maximum 365 days.

9. Leverage the perpetual free tier. The free tier covers 1 million requests and 1 million push notifications every month, permanently. Architect dev/test environments and low-volume production workloads to stay within these limits.

10. Monitor with CloudWatch and AWS Budgets. Track NumberOfMessagesPublished, NumberOfNotificationsDelivered, NumberOfNotificationsFailed, and PublishSize metrics. Set up AWS Budgets alerts for SNS spending to catch cost anomalies early. You can even test CloudWatch alarms via CLI to verify your alerting pipeline works.

For a broader framework on reducing AWS spending beyond SNS, check out the AWS cost optimization best practices guide.

Real-World Cost Scenarios

These three scenarios cover the most common SNS deployment patterns. All calculations use US East (N. Virginia) pricing with free tier deductions applied.

Event-Driven Microservices (Standard Topic Fan-Out)

Architecture: Standard topic with 5 SQS queue subscribers and 1 HTTP webhook, publishing 10 million messages per month at an average size of 5KB.

Line ItemCalculationMonthly Cost
API Requests10M - 1M free = 9M x $0.50/1M$4.50
SQS Deliveries (5 subs)No delivery charge$0.00
HTTP Deliveries (1 sub)10M - 100K free = 9.9M x $0.06/100K$5.94
Data Transfer (est.)~50 GB x $0.09/GB (after 1 GB free)$4.41
Total$14.85

Optimization: Using PublishBatch to send 10 messages per API call would reduce the API request line from $4.50 to $0.45, bringing the total under $11.

Mobile Push Notification System

Architecture: Standard topic with mobile push delivery (APNs and FCM) for a consumer app sending 2 million notifications per month at an average size of 4KB.

Line ItemCalculationMonthly Cost
API Requests2M - 1M free = 1M x $0.50/1M$0.50
Push Deliveries2M - 1M free = 1M x $0.50/1M$0.50
Data Transfer (est.)~8 GB x $0.09/GB (after 1 GB free)$0.63
Total$1.63

For apps with under 1 million monthly active users sending one push notification per month, the free tier covers the entire cost. This workload is nearly free.

SMS Verification Service

Architecture: Standard topic with SMS delivery to US destinations, sending 50,000 verification codes per month via 10DLC.

Line ItemCalculationMonthly Cost
API Requests50K (within free tier of 1M)$0.00
SMS Delivery50K x ~$0.00581/msg$290.50
10DLC Campaign Fee1 campaign$10.00
10DLC Number Lease1 number$1.00
Company RegistrationOne-time ($4), amortized~$0.33
Total~$301.83

SMS dominates the cost at over 96% of the total. The SNS infrastructure itself is nearly free because the API request volume stays within the free tier. This is why SMS cost optimization (validating numbers, using toll-free for lower volumes, setting spend limits) matters far more than optimizing the messaging layer for SMS-heavy workloads.

For a precise estimate with your specific volumes, use the SNS pricing calculator.

Key Takeaways

Amazon SNS pricing is pay-as-you-go with a generous permanent free tier that covers most development and low-volume production workloads. Standard topics are simpler and cheaper. Only use FIFO when you need strict message ordering or exactly-once deduplication, because the subscription multiplication in FIFO billing can drive costs 4-5x higher for the same message volume.

SQS and Lambda endpoints have no per-notification delivery charge, making them the most cost-effective delivery targets. Watch for hidden costs: 64KB chunking multiplies billing on large messages, KMS encryption generates N+1 calls per publish (where N is your subscriber count), and data transfer from SNS to SQS/Lambda is charged at internet rates even within the same region.

PublishBatch is the single biggest optimization lever for Standard topics, cutting API costs by up to 90%. For SMS workloads, the per-message delivery fee dwarfs everything else, so phone number validation and spend limits matter more than messaging infrastructure optimization. If your architecture involves SNS with SQS, model the SQS side using the SQS pricing calculator.

Run your workload through the SNS pricing calculator to estimate your specific monthly cost. For teams adopting a shift-left FinOps approach, catching these SNS costs during code review is more effective than discovering them on your monthly bill. Deploy SNS infrastructure via CDK or Terraform following AWS CDK best practices and estimate your AWS costs before deploying.

What's driving your SNS costs? Have you hit any billing surprises beyond what's covered here? Drop your experience in the comments.

Stop Deploying Blind: Get Cost Visibility in Every PR

CloudBurn analyzes your infrastructure changes and posts cost estimates directly in pull requests. Works with AWS CDK and Terraform. Free during beta.

Frequently Asked Questions

Is Amazon SNS free?
Yes, with limits. Amazon SNS has a permanent free tier that includes 1 million API requests, 100,000 HTTP deliveries, 1,000 email deliveries, and 1 million mobile push notifications per month. Deliveries to SQS, Lambda, and Firehose are always free. There is no free tier for SMS.
How much does SNS cost per message?
It depends on the endpoint type. Publishing costs $0.50 per million API requests for Standard topics. Delivery to SQS and Lambda is free. HTTP delivery costs $0.06 per 100,000. Email costs $2.00 per 100,000. Mobile push costs $0.50 per million. SMS varies by destination country and carrier.
Does SNS charge for deliveries to SQS or Lambda?
There is no per-notification delivery charge for SQS, Lambda, or Firehose endpoints. However, data transfer from SNS to these services is charged at internet data transfer rates ($0.09/GB for the first 10 TB), even within the same AWS region.
What is the difference between Standard and FIFO topic pricing?
Standard topics cost $0.50 per million API requests plus endpoint-specific delivery charges. FIFO topics use a triple-billing model: $0.30 per million published messages, $0.30 per million subscribed messages (multiplied by the number of subscriptions), and $0.11 per GB of payload data. FIFO is typically 4-5x more expensive at scale.
What is cheaper for email: SNS or SES?
Amazon SES is significantly cheaper for email delivery at $0.10 per 1,000 emails, compared to SNS at $2.00 per 100,000 ($0.02 per 1,000). Use SNS when you need fan-out notifications to multiple endpoint types. Use SES for dedicated email sending, marketing campaigns, or transactional email at scale.
How do I reduce my SNS bill?
The biggest wins are: use PublishBatch to reduce API costs by up to 90%, deliver to SQS or Lambda instead of HTTP or email (no delivery charge), use attribute-based filtering instead of payload-based (free vs $0.06/GB), and keep messages small to avoid the 64KB chunking multiplier. For SMS, use 10DLC instead of short codes and validate phone numbers before sending.

Share this article on ↓

Subscribe to our Newsletter