Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

EC2 Small vs Amazon RDS - which is faster for MySQL?

(I have one database, well-indexed and tuned. About 10,000 rows on each table.)

How's the performance like?

share|improve this question
1  
RDS is still classed by instance type, so in terms of computing you get the same thing. The difference comes down to 'configuration' - you have much more control over an instance you have setup than over RDS. The appeal of RDS is supposed to be that it requires less intervention (e.g. updates are applied automatically, etc). I believe quite a few people have noted that a well tuned custom setup can outperform RDS - afterall, RDS is a general solution - it is not tailored to each individual's specific use case –  cyberx86 Feb 19 '12 at 8:36
1  
@cyberx86 Perhaps put the above as an answer. –  gekkz Feb 19 '12 at 9:09

1 Answer 1

up vote 10 down vote accepted

Firstly, I don't use RDS - so don't take this as an absolute. As with EC2, RDS is classed by instance type, so in terms of computing you get the same thing. The difference comes down to 'configuration' and the degree to which the hardware is dedicated.

RDS advantages:

  • Hardware is dedicated to only running RDS - not shared with 'general purpose' instances
  • Possibly better network I/O
  • Provides a good, general purpose, 'out of the box' configuration
  • Updates are managed for you
  • Potentially easier to setup basic replication
  • Good interface for configuring
  • Backup storage is included in cost

RDS disadvantages:

  • Higher cost than equivalent EC2 instance (~40% more)
  • Limited customization
  • Performance can be highly variable (especially disk I/O)
  • Required maintenance may result in downtime if using a single RDS instance (avoidable with multi-AZ deployments)
  • It's more out of your control

EC2 advantages:

  • Can setup RAID arrays to increase disk I/O
  • More flexibility in terms of customization (access to my.ini) and maintenance
  • Lower cost
  • Should be able to achieve equal or better performance if well tuned
  • Allows for more conventional replication and failover
  • Can setup custom monitoring/analysis - and deal with problems directly

EC2 disadvantages:

  • Requires more skill/effort to setup
  • 'Out of the box' performance is not as good as RDS
  • Less stable network I/O

I'd suggest the following:

  • If you don't want the bother and/or can't tune MySQL satisfactorily - go with RDS
  • If the network I/O is going to make a big difference (typically setups with many threads simultaneously in use) - RDS will offer more stable performance
  • If you need fine grained control (or don't need better performance) or are cost conscious - go with EC2
  • If you want to learn about MySQL as you grow - go with EC2

For any specific use case, the best option is probably to benchmark each and see how they stack up - performance will vary for each setup afterall.

Further reading:

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.