AWS - Pricing
Against common conception, AWS is in fact generally cheaper than equal data center if you take into account the time and money you have to spend maintaining the hardware, network and security. Especially if you use spot instances and minimize resource overhead.
It's hard to give good estimates how much AWS usage is going to cost when you are using multiple AWS services as they are usually billed by usage. Here are some examples what kind of sums you might expect per month.
Assume that a serious, well built, scalable and fault tolerant web server
infrastructure starts from $100 / month, depending on traffic.
Serving 500,000 users costs around $550 / month.
EC2: $10 - $10 000, will be your highest cost point, prefer 1-year prepaid.
Elastic IPs: free if attached to a resource with only 1 Elastic IP.
Cost $0.005 / hour if not attached to anything or if multiple.
ELB: ~$20 / month if running the whole month (250GB, ~500,000 visitors).
SQS: $2, 3 000 000+ queued messages used inside AWS
SNS: $0.2, 5 000+ emails
Route 53: $0.75 - $25, from low traffic to massive traffic (60m queries)
S3: $30 - $100, from 1 terabyte to 2 400 terabytes
CloudFront: $10, 1 terabytes of content served
CloudWatch: $0, logging will probably stay be free for most use cases
Redshift: $3 000+, active data analytics
RDS: $50, decent PostgreSQL database with failure protection
1 decent server + decent database with all the goodies: ~ 50$ / month
RDS prices with 1 year plan:
db.t2.micro - 100 - $10.51 month - 1 GB memory, 1 core
+$11.5 for 100GB storage
db.t2.small - 100 - $21.02 month - 2 GB memory, 1 core
+$11.5 for 100GB storage
db.t2.medium - 100 - $42.34 month - 4 GB memory, 2 core
+$11.5 for 100GB storage
db.m3.medium - 100 - $51.83 month - 3.75 GB memory, 1 core
+$11.5 for 100GB storage
db.m3.large - 100 - $105.12 month - 7.5 GB memory, 2 core
+$11.5 for 100GB storage
- General Purpose (SSD) is good for most databases, medium price.
- Provisioned IOPS (SSD) is for very active databases, higher price.
- Magnetic is for small and rarely accessed databases, cheapest.
Backups: Don't cost anything if less than the allocated storage on an active database. Otherwise it's $0.095 per GB-month.
Data Transfer: They have costs but they are marginal for small and medium databases.
Multi-AZ Deployment: Maintains standby replica of the database in different availability zone. Is automatically made master on maintenance, failure or zone crash. Doubles the database cost, so db.t2.micro
would be $44 / month in total.
Read Replica: Read only databases that are behind the master by a small degree but allow horizontal scaling.
At a minimum, I'd recommend having memory equal to the amount of space your database occupies on disk + requirement of other services on the server. db.t2.micro
should be ok for most starter databases, especially if you have no idea about the volume.