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

I'm trying to understand how to architect an Amazon Web Services application. As I understand it, the whole point of using something like AWS is to make the eventual scaling easier, so I'm trying to understand how to do that.

I have an instance, running off of EBS (EBS-based instance, not a regular instance). My application (a Django app) uses MySQL as a back-end.

So the question is, where am I supposed to install the MySQL? Do I install it on the same instance? In which case, as far as I can tell, I can't simply create more server instances from that image.

Or am I supposed to simply spin up another server as a DB server, and run off of that?

Thanks for any help!

share|improve this question
add comment

3 Answers

up vote 2 down vote accepted

What you probably want to do is separate your application into discrete layers.

  1. Web Server

  2. Application Servers

  3. Database Servers

Then it becomes much easier to scale each as needs arise. However, by doing this your lower level size costs increase, since you need to start with 3 servers. If you do not separate the layers out, if you are scaling off load on the application layer, you will need to bring up additional overhead when you launch new servers, since the DB is included as well.

For a MySQL db, I would go with Amazon RDS, since it is the same instance types (for the most part) as an EC2 instance you craft yourself, but it also has backups included, see this announcement

share|improve this answer
add comment

do it yourself: http://www.mysqlperformanceblog.com/2010/06/17/high-availability-for-mysql-on-amazon-ec2-part-1-intro/

or let amazon do it for you: http://aws.amazon.com/rds/

if you have to ask, it'll probably be easiest to start with AWS RDS and then do it yourself if you run into some special need.

share|improve this answer
add comment

You can install it wherever you like, including the same machine. Connect to it by hostname, and you can move it at a later time.

share|improve this answer
add comment

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.