Hi everyone,
We are currently using PHP as our server scripting language and MySQL as our database backend.<p>We have read about the benefits of Amazon Elastic Compute Cloud (EC2) service. I was wondering if anyone in this forum has used this service? What are your thoughts on switching from a shared hosting plan to this service? Any resources explaining how it all works (e.g: is there MySQL support, how do you communicate with one database if you are running many instances etc?)<p>Thanks
Ok, I was in your situation a month ago, and dove in. EC2 is great. It's easy to setup.<p>I suggest starting with ubuntu, as there is a plethora of resources for it if you are new to system administration<p>(start with this AMI <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1425&categoryID=101" rel="nofollow">http://developer.amazonwebservices.com/connect/entry.jspa?ex...</a> )<p>Doesn't really matter if you are on osx, linux or windows once you are setup really, but get elasticfox for firefox, it does all the trivial things (starting an instance, etc) for you. very cool extension.<p>Just make sure you have a good backup plan for your data, as in any crash, your data is lost.<p>It is much more like getting a dedicated virtual account at a regular provider, so if you are used to control panels and everything like that, you'll have to install them yourself.
(webmin and usermin)<p>getting started with LAMP for ubuntu:
<a href="http://www.ubuntugeek.com/ubuntu-710-gutsy-gibbon-lamp-server-setup.html" rel="nofollow">http://www.ubuntugeek.com/ubuntu-710-gutsy-gibbon-lamp-serve...</a>
Although I use S3 I don't currently use EC2 and the limited research I've done on it may mean that some of what I'm about to say is incorrect. Hopefully others with more experience can jump in and correct any errors.<p>Firstly, when you talk about a shared hosting plan I assume you don't need to set up the server, you just drop your files in the htdocs folder and your site is ready to go. EC2 instances are analogous to a vps system. You're responsible for setting up the operating system, installing apache, php and mysql. There are 'images' (not sure that's the correct term) set up with everything ready to go but that still leaves you responsible for a lot more of your site than you may be currently.<p>My understanding is that MySQL is problematic. Currently each instance is given a certain amount of hard drive space but if that instance crashes for any reason all the data is lost. The intention is that S3 is used for your permanent storage but it isn't suitable for running a database on. Permanent drives have been announced but they will only be available later in the year. Until then you are left with work-a-rounds, frequent backups to S3, mirroring drives across instances in the hopes that you'll only ever lose one instance.<p>Connecting multiple web servers to a single backend database server is handled in the same way it would be with any other vps service or indeed dedicated servers.
If you're coming from Windows it's a pretty long learning curve. Seek out the videos on the site, they're buried but worth searching out. Finding someone with Linux experience to help you is recommended as well.<p>But AWS is pretty amazing and in my case it was worth the journey. Still struggling with re-architecting apps into SOA but the scaling dividends should be worthwhile.
EC2 is like co-location in a cloud, so you will need to handle all sysadmin tasks yourself (however, you can select an image that already has LAMP installed). A single small EC2 instance is around $75 per month + bandwidth.<p>You can also go with a platform on top of EC2, like RightScale, which gives you some support, including MySQL, but it's expensive ($500 per month!). I don't have experience with other services but I do use the RightScale dashboard for creating/restarting/terminating instances.<p>There are many advantages to going with EC2 though, if you can absorb the admin work. For example, if you need to do some heavy crunching you can run another instance only for the time of the crunching, say 12 hours, and that's all you pay for (12 * $0.80, if you were to use an extra large instance).
We use EC2 for everything but monitoring, email, and DNS. The key factor for us to switch from our more traditional hosting arrangements? The fact we could deploy a new server in seconds instead of weeks. Amazon's non-premium support via the forum is about the same speed as our previous hosting providers.<p>The only downside is that disk writes are much slower than on a normal dedicated server. We had do spread out the application over more servers to compensate for reduced CPU available as well. But even going from 4 servers to 25, we pay less than half what we used to.<p>I highly recommend EC2.
A nice thing is that it is elastic and cheap to answer your own question. It is not like a shared hosting plan specifically in that there are no contract terms or hassle to get started. Before you spend too much time, just fire up an instance. If, between the docs and getting your hands dirty, it starts to make sense - great. If not, you've "wasted" $0.10/hour (plus your own, more valuable time) for a neat experience.
I've heard that there is too much latency to use EC2 as a host. Certainly xforwarding is not great. Check out the creators of "Friends for Sale": <a href="http://omnisio.com/sdforum/siqi-chen" rel="nofollow">http://omnisio.com/sdforum/siqi-chen</a>
There are several platforms already existing that can help you get up and running faster: GigaSpaces and Appistry both come to mind, but they are geared toward Java, .Net, and C++.
I think going directly from shared hosting to EC2 is a bad idea unless you're an experienced sysadmin. Try shared -> (managed) VPS -> dedicated server -> EC2.