If you avoid the gotchas and keep a close eye on resource consumption, you can have a useful server in the Amazon cloud for free
The best way to think of the free tier to Amazon Web Services is as a stepping-stone. It allows you to get your feet wet with the basic mechanisms of AWS and EC2; to understand Amazonโs handling of virtual machine instances, storage, data, and networking; and to create an item that can eventually be hosted on a full-blown, for-pay AWS instance. It also lets you learn how to manage and constrain AWS usage. If youโre not careful, you may end up paying for your โfreeโ AWS usage after all.
In this article, weโll look at what the free tier offers and on what terms, then take a closer peek at whatโs possible or practical within those constraints. In the long run, any serious AWS user will want to take fuller advantage of what the Amazon cloud has to offer โ but why not make the most of the free resources in the meantime? With the free tier, you can find your legs with AWS, start some projects, and maybe even build a functional application or three.
As a side note, check out one of the more ominous statements in Amazonโs documentation about the free tier: โWe may stop accepting new registrations for the Offer at any time.โ This may be boilerplate CYA on Amazonโs part, but if youโre thinking about setting up a free-tier account, you might as well do it now and get in on the action while itโs available.
What do you get for your $0 a month?
Theย AWS Free Usage Tierย provides just enough access to many AWS components to get up and running. But even if it doesnโt give you all the resources you might want or need to assemble the server of your dreams, you can certainly create something useful. But donโt expect it to scale well for unrestricted public use. Hereโs a rundown of some of the most useful AWS components and what you get with them on the free tier.
Compute.ย You can run aย t2.micro instanceย of a Linux or Windows Server machine on EC2, configured with 1GB of RAM, for 750 hours per month. Thatโs an entire month of free, continuous CPU usage.
Amazon maintains a catalog of Amazon Machine Images (AMIs), which let you run a slew of different Linux and Windows systems โ among them Ubuntu Server 12.04 and 14.04, Microsoft Windows Server 2008 and 2012, container-oriented microdistributions likeย RancherOS, and Amazonโs own Amazon Linux AMI.
Not every AMI is eligible to run on the free tier (even when you use a micro instance), but the ones that can are clearly marked. Theย AWS Marketplaceย also features tons of third-party application appliances and servers available as AMI instances โ but again, not all can be run on the free tier.
A broad range of machine instances is available for AWS. Click the check box in the sidebar to filter on images eligible for the free tier.
Storage.ย An EC2 instance isnโt much use without storage space. On the free tier youโre allowed 30GB of Elastic Block Storage, 5GB of Amazon S3 storage, and 50GB of outbound data transfer from Amazon CloudFront. However, note that Amazon limits I/O usage for each service, charging you when you exceed them. S3 allows 20,000 GET and 2,000 PUT requests. EBS allowsย 2 million I/Os. CloudFront allows 2 million requests.
I/O charges can end up as one of the biggest stealth costs. With EBS, for instance, Amazon has varying per-gigabyte and sometimes per-million-I/O-request charges, depending on which flavor of EBS youโre using. (We offer tips on managing I/O utilization below.)
Databases.ย Among Amazonโs Relational Database Services (RDS), you have your pick of MySQL/MariaDB, PostgreSQL, Oracle BYOL, or Microsoft SQL Server, each with 750 hours of usage per month, 20GB of storage, 10 million I/Os, and 20GB of backup storage.
For those who preferย NoSQL, Amazon offers DynamoDB, with 25GB of storage and 25 units of read and write capacity. Amazonโs ElastiCache and Redshift products are also available, each offering 750 hours of use on the free tier โ albeit on specific machine types.
As with storage, estimating I/O for databases can be tricky, but more than enough is available to experiment with a low-traffic, database-driven site and not run into major overage.
Analytics.ย Amazon Elasticsearch can run for 750 hours on the free tier, with 10GB of optional EBS storage. AWS Data Pipeline provides three low-frequency preconditions and five low-frequency activities free each month on the free tier.
Mobile services.ย A number of freebies are available, but most striking is Amazon Simple Notification Service (SNS), which allows 1 million push deliveries, 100,000 HTTP/S deliveries, and 1,000 emails in the free tier. Best of all, these freebies donโt expire at the end of the free period. For Amazon Cognito, you get an unlimited number of user authentications and ID generations, and for Amazon Mobile Analytics, 100 million free events per month. Less generous is the AWS Device Farm; you get a one-time free trial of 250 device minutes.
Internet of things.ย Amazonโs free tier for itsย IoT servicesย provides 250,000 messages, either published or delivered, per month for 12 months.
Developer tools.ย Those using GitHub for open source projects are by now accustomed to having little or no limit on storage or usage. AWSโs code tools on the free tier have limits, but they are relatively high: 50GB per month of storage and 10,000 Git requests per month. Unfortunately, AWS provides only one active CodePipeline per month and only five active CodeCommit users per month.
Management tools.ย Amazon CloudWatch provides a generous 1 million API requests, 5GB of log ingestion and archiving, and 10 custom metrics and 10 alarms for the duration of the free tier, plus three dashboards with up to 50 metrics each per month. AWS Trusted Advisor offers only four best-practice checks.
Key management.ย Up to 20,000 free requests per month can be made with Amazonโsย encryption-key management service.
Application services.ย A number of freebies is available under this general umbrella:
- API Gateway:ย 1 million API calls per month. Useful as a front end for application creation services likeย AWS Lambda.
- AppStream:ย Windows applications can be delivered to any device, for up to 20 free hours per month.
- Elastic Transcoder:ย 20 minutes of audio and SD video transcoding, as well as 10 minutes of HD transcoding, are included per month.
- Simple Email Service:ย Amazonโs email services provide 62,000 outbound and 1,000 inbound messages per month.
- Simple Queue Service:ย The scalable queuing system provided by Amazon gives you 1 million requests during the free tier.
- Simple Workflow Service:ย The task coordination and state management service in Amazonโs cloud provides 10,000 Activity Tasks, 30,000 Workflow Days, and 1,000 Initiated Executions.
Data transfer.ย This part is easy. You get 15GB of outbound bandwidth across all of AWS, period. For perspective, my personal site with 5,000 visitors per month consumes about 1.2GB of bandwidth in that time. For a relatively simple โ or nonpublic โ website, 15GB should be more than enough.
Restrictions beyond the limits
Now the bad news: Amazon has attached a number of strings to the free tier. Aside from the usage limits outlined above, you should be aware of these other restrictions.
Core services are free for only 12 months.ย Most of the key AWS options โ including EC2, S3, and RDS โ are restricted to 12 months of free use after your initial sign-up. After that, itโs pay as you go at the usual rates. On the plus side, some of the other services โ DynamoDB, Simple Workflow, Simple Queue Service, Simple Notification Service, Amazon Elastic Transcoder, and CloudWatch, among many โ are still eligible for the free tier after the first year.
Expect your CPU (and bandwidth) to be throttled.ย Micro instances areย designedย to supply maximum CPU in intermittent bursts. They donโt supply a full, continuous instance of what Amazon calls a โcompute unitโ โ you need to move up to the M1 Small instance for that. This makes a micro instance โwell suited for lower throughput applications and websites that require additional compute cycles periodically,โ per Amazonโs documentation.
If you run applications that occasionally spike the CPU at 100 percent, they should be fine. Apps that peg the CPU at 100 percent for long periods of time will run briefly at 100 percent, then theyโre throttled. Note that the internal statistics for a throttled machine will still report the CPU as running at 100 percent, so donโt be fooled.
You can monitor usage statistics through Amazonโs EC2 Dashboard, but youโll get better granularity of stats from inside the running machine.
Windows Server instances on the free tier may be a tight fit.ย Depending on what you plan to do, the amount of memory apportioned to a Windows Server instance may not be enough to run an ambitious project. If youโre doing no more than serving up static Web pages, it should be fine. Back when instances on the free tier provided only 613MB of RAM, I was able to install MySQL/Apache instances on such a machine (via theย AMPPS Web stack) and run it with about 20 percent RAM free. With 1GB of RAM, youโll likely do a little better, but you still wonโt be able to run anything too industrious.
On the plus side, if youโre using a database via an AWS-hosted database instance (RDS), the database is launched entirely apart from the machine youโre running. With RDS, you donโt have to worry about running a database server on the EC2 instance youโre using (and thus gobbling up more memory with it).
You donโt get a consistent IP address by default.ย Because of the way AWS provisions addresses, instances do not come with a static IP address or a consistent private DNS name automatically. Thus, itโs tough to host a free site for use by the outside world without DNS trickery, as resetting the EC2 instance will cause its IP address to reset.
Fortunately, this limitation is easy to overcome. If you want a machine to be consistently reachable by the general public, you can useย EC2 Elastic IP Addressesย to provision a static IP for a free instance. Bear in mind that if you reserve an address and donโt associate it with an instance, youโll be charged a small fee.
Best practices with the free tier
Clearly, the free tier has many gotchas. Because of resource limits, itโs too easy to run up charges if youโre not careful. As you strive to make the most of your micro instance, keep these guidelines in mind.
Keep an eye on your billing.ย It should go without saying, but regularly check your AWS account activity page to see if youโre running up charges. Amazon doesnโt warn you if youโve exceeded the free tier; instead, youโre silently billed for any usage that isnโt covered. If you want to track your estimated usage or create alarms to warn you if you might exceed your budget, you need to look into Amazonโs billing alert system. However, the number of alarms and notifications you can generate is limited by the free tier.
Keep an eye on your I/O usage.ย If youโre using the server for yourself, youโre not likely to run up a big I/O usage bill. But if you make your server public, that could change everything โ dramatically.
Figuring out I/O usage for your instances isnโt difficult, but it requires diligence and scrutiny. The EC2 management console provides monitoring tools, although the ones in the free tier arenโt as granular as the for-pay counterparts. You canโt poll a free instance at more than five-minute intervals, whereas you get one-minute polling with for-pay instances.
You can also poll I/O usage from within the instance, using the OSโs tools. Hereโsย one way to do it on Linux. In Windows you can use the Disk Transfers/Sec performance counter.
You can track your service charges through Amazonโs reporting system, which also allows you to download the gory details in CSV/XML formats.
Assign an elastic address to save yourself a headache. Anย elastic addressย doesnโt add a significant amount to your bill, and it allows for easier connections to your system. This goes double for Windows instances because the Remote Desktop connection tool stores the connection address and password together. Each time your site is provisioned with a new IP address, you have to create an entirely new Remote Desktop connection to reach it.
Back up items in the cloud.ย You never know when the server youโll be working with may bomb or have to be reinitialized. Itโs better to have pertinent data already in Amazonโs cloud instead of needing to be tediously reuploaded. Anย EBS Snapshotย is one convenient way to do this, though you get only 1GB of snapshot storage on the free tier. Alternatively, you can attach an EBS volume and back up files directly to it, in the same manner youโd perform backups from a conventional system to an external drive. Note that you get 30GB of general-use EBS storage on the free tier, which is much more than you get for snapshots, but the backup and restore process is entirely manual.
Where from here?
Once you have the hang of AWS in the free tier, youโll probably be itching to climb the Amazon food chain. The next steps up from the micro instances are the T2 Small, T2 Medium, and T2 Large instances, which provide 2GB to 8GB of memory and one or two of Amazonโs โvirtual CPUโ units. A T2 Small instance starts at around $18.72 a month.
If youโre a penny-pincher who doesnโt need a server running 24/7, consider a spot instance, wherein you bid for computing capacity by specifying a maximum price youโre willing to pay per hour. If the current price per hour for spot instances rises above that amount (rates fluctuate based on supply and demand), your instance will stop running.
Finally, if you want to run something sporadically, such as a backup server, check out the reserved instances. A reserve instance lets you pay a one-time fee for a fixed windows โ one to three years โ and obtain a significantly discounted hourly usage fee. As of this writing, a single T2 Small reserved instance on Linux can be had for $151 per year, plus an hourly rate of 2.6 cents โ around $170 for the whole year assuming 100 percent utilization.
T2 Smalls, spot instances, and reserved instances โ theyโre all pretty affordable. And by the time you graduate from the free tier, you will have accumulated plenty of practice using Amazonโs tools and keeping your costs in line.
Spot instances let you run a machine on unused capacity by bidding for it. Itโs a useful option to run a machine intermittently for little money.


