What does Amazon SES free tier mean? Why am I charged?

I recently got some bill from Amazon SES service. I thought I was in the free tier limit which means I can send 62,000 messages per month to any recipient:

https://aws.amazon.com/ses/pricing/

I am ok with the fee, however I don't quite understand why. Is it because I am not using EC2 instance?

You can send 62,000 messages per month to any recipient when you call Amazon SES from an Amazon EC2 instance directly

If I am not using EC2 instance, they charge $0.1 per 1000 emails I sent out? I use the email settings for one of my sites (not using EC2) that sends out email after a user submits a form. What does it mean I shall call Amazon SES from an EC2 instance directly?


Solution 1:

It's written in the first paragraph

send 62,000 messages per month to any recipient when you call Amazon SES from an Amazon EC2 instance directly or through AWS Elastic Beanstalk.

You need to use an Amazon EC2 instance to issue the request, either from the EC2 server its self directly (meaning that the EC2 server IP would show up in their logs) or from the EC2 server via Elastic Beanstalk.

If you're not using an EC2 instance to make the SES call you will be charged

Email messages are charged at $0.10 per 1,000.

Plus data usage

Data Transfer Out: See the table for "Data Transfer OUT From Amazon EC2 To Internet" on the EC2 Pricing Page.

NOTE: The email header and attachments are included in the data size used for billing. Attachments (applicable only to messages you send) $0.12 per GB of attachments sent.


If you don't want to move your existing server:

  • You could set up a free-tier EC2 instance (free for the first year of your account) and set up a proxy to pipe all of your SES requests from your non-EC2 servers.
  • You could use other services like Mandrill, etc.
  • You could set up a task scheduler of some kind have your SES jobs handled on the EC2 instance.