4

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!

3 Answers 3

2

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

1

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.

0

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .