This is a Canonical Question about Cloud Hosting
When deploying my application to the Internet:
- Should I chose a dedicated server, cloud hosting or a VPS?
- What factors should I consider when choosing?
Originally posted by cyberx86. Please remove this notice once the post has been cleaned up.
This question seems to get asked a lot - usually with specific reference to Amazon's EC2 - but I think the general ideas still apply here.
Firstly, see this question and this question for an advantages/disadvantages comparison of cloud vs. vps/dedicated.
As to your specific scenario, you haven't given enough information to provide a definitive answer. All the points you have mentioned can be successfully implemented in the cloud (and really shouldn't be any more complicated than if you were using a dedicated server).
I will provide specific reference to Amazon's EC2 cloud - since that is what I am familiar with, but the concepts should generalize to other clouds as well.
The bottom line is going to come down to evaluate your resource requirements and then compare the cost of running dedicated vs. in the cloud. If you are just starting out, with few (couple thousand?) users and are not running computationally intensive scripts I would suggest that the cloud is likely less expensive.
To address a few common points:
'x services' and 'x cron jobs every 5 min' really don't describe the complexity or resource requirements. Look at your load averages, memory utilization, and bandwidth usage - these will determine whether or not the cloud would be cost effective for you. Typically for an initial setup the cloud offers a low cost, low risk investment, whereas dedicated servers have a higher start-up cost. On the other hand, if you have an application that consumes significant quantities of bandwidth, a dedicated server will probably work out less expensive.
PHP 5 and MySQL are really not significant considerations - cloud platforms allow you to customize everything from the operating system up - which means you will have no issues running either of these. The only consideration comes from the fact that these make for a dynamic application - which requires more processing power. The cloud can handle that, but with cloud computing you pay for what you use - greater processing requirements translate into greater costs. Keep in mind though, that depends on both the number of requests being processed and the complexity of each request. The smallest (EC2) server can easily handle several tens of thousands of Wordpress page requests a day, if reasonably optimized.
Codeigniter is reasonably efficient to my knowledge, but again, it is dependent on what exactly your application does (what kind of resources it requires). A cloud environment will have no problem running a Codeignitor app. In most cases, I would suggest it is less computationally expensive than running WordPress.
End result: estimate your resource consumption and determine the minimum plans required to meet those needs on various platforms. Then estimate your likely growth over the next few months/year, and decide how you would go about scaling up (would you start small and then upgrade, etc). Consider the difficulty in doing so on a dedicated server vs. on a cloud (as well as the projected costs on each).
Typically, for an 'average' application just starting out I would recommend 'the cloud'. On the other hand, if your application(s) are particularly resource intensive (especially bandwidth, but also CPU, disk I/O, memory, storage) then a dedicate package often works out better. The real advantage of the cloud is the ability to start small and easily scale up - the idea of pay for what you use, not what you think you might need (which only works out good if you need a lot less than you 'might need'). Even if you don't end up going with Amazon's EC2 - I'd start by looking at it. It is well known (meaning lots of people use it = easily available help), fairly mature (as far as cloud computing goes), and fairly inexpensive - it forms a good baseline to which you can compare other services. Rackspace, Joyent, GoGrid, and Linode are other popular choices.
Depending on where you live, certain legal aspects will be a relevant issue that could be more important than any technical or financial aspect of the decision.
I assume that for dedicated hosting it is more likely that a local company in the users own country is chosen. In this case, the whole operation is subject to only one jurisdiction.
In case of a cloud provider, this is often not the case, especially if you happen to live outside the USA (I am going to assume the provider is an US company). In this case, you have to deal with two jurisdictions, your own countries, and the US one, and this is also true if you choose a non-US tier of the service provider, as the US government considers every asset of a US based company to be subject to US law.
Why could that be a problem?
So, in the end, this might be totally irrelevant in your case or a deal breaker that makes it impossible.